파이썬으로 기계 학습 모델 재학습하는 방법
안녕하세요, mj입니다! 오늘은 기계 학습 모델을 재학습하는 방법에 대해 알아보도록 하겠습니다. 기계 학습 모델은 시간이 지남에 따라 데이터와 환경의 변화로 인해 성능이 저하될 수 있습니다. 따라서 주기적으로 모델을 재학습시키는 것이 중요합니다.
기계 학습 모델 재학습이 필요한 이유
기계 학습 모델은 다음과 같은 이유로 재학습이 필요합니다:
- 새로운 데이터가 추가될 때
- 기존 데이터의 분포가 변화할 때
- 모델의 성능이 저하될 때
- 새로운 알고리즘이나 기술이 개발될 때
- 비즈니스 요구사항이 변경될 때
파이썬에서 모델 재학습하기
이제 파이썬을 사용하여 모델을 재학습하는 방법을 알아보겠습니다. 예제로는 Scikit-learn 라이브러리를 사용할 것입니다.
1. 데이터 준비하기
우선, 데이터를 준비해야 합니다. 예를 들어, 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
2. 모델 훈련하기
기본 모델을 훈련시킵니다. 여기서는 로지스틱 회귀 모델을 사용합니다.
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)
3. 모델 성능 평가하기
모델의 성능을 평가합니다.
from sklearn.metrics import accuracy_score
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"모델 정확도: {accuracy:.2f}")
4. 모델 재학습하기
새로운 데이터를 추가하고 모델을 재학습시킵니다. 예를 들어, 다음과 같은 새로운 데이터를 추가한다고 가정합니다.
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)
5. 재학습 후 성능 평가하기
재학습 후 성능을 다시 평가합니다.
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"재학습 후 모델 정확도: {accuracy:.2f}")
결론
오늘은 파이썬에서 기계 학습 모델을 재학습하는 방법에 대해 알아보았습니다. 데이터의 변화에 따라 모델을 재학습시켜 성능을 유지하는 것이 중요합니다. 이 글이 도움이 되었길 바랍니다!
감사합니다!