안녕하세요, mj입니다! 오늘은 기계 학습 모델을 재학습하는 방법에 대해 알아보도록 하겠습니다. 기계 학습 모델은 시간이 지남에 따라 데이터와 환경의 변화로 인해 성능이 저하될 수 있습니다. 따라서 주기적으로 모델을 재학습시키는 것이 중요합니다.
기계 학습 모델은 다음과 같은 이유로 재학습이 필요합니다:
이제 파이썬을 사용하여 모델을 재학습하는 방법을 알아보겠습니다. 예제로는 Scikit-learn 라이브러리를 사용할 것입니다.
우선, 데이터를 준비해야 합니다. 예를 들어, Iris 데이터셋을 사용해보겠습니다.
import pandas as pd
from sklearn.datasets import load_iris
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target
기본 모델을 훈련시킵니다. 여기서는 로지스틱 회귀 모델을 사용합니다.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
X = df[data.feature_names]
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
모델의 성능을 평가합니다.
from sklearn.metrics import accuracy_score
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"모델 정확도: {accuracy:.2f}")
새로운 데이터를 추가하고 모델을 재학습시킵니다. 예를 들어, 다음과 같은 새로운 데이터를 추가한다고 가정합니다.
new_data = pd.DataFrame({
'sepal length (cm)': [5.0, 6.0],
'sepal width (cm)': [3.5, 2.5],
'petal length (cm)': [1.5, 4.5],
'petal width (cm)': [0.2, 1.5],
'target': [0, 2]
})
df = pd.concat([df, new_data], ignore_index=True)
X = df[data.feature_names]
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model.fit(X_train, y_train)
재학습 후 성능을 다시 평가합니다.
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"재학습 후 모델 정확도: {accuracy:.2f}")
오늘은 파이썬에서 기계 학습 모델을 재학습하는 방법에 대해 알아보았습니다. 데이터의 변화에 따라 모델을 재학습시켜 성능을 유지하는 것이 중요합니다. 이 글이 도움이 되었길 바랍니다!
감사합니다!