[python] scikit-learn을 사용한 모델 평가
scikit-learn은 파이썬에서 머신러닝을 위한 툴킷으로 널리 사용되고 있습니다. 이제 scikit-learn을 사용하여 모델을 평가하는 방법에 대해 알아보겠습니다.
평가 지표
모델의 성능을 평가할 때, 다양한 지표를 사용할 수 있습니다. scikit-learn에서 제공하는 평가 지표의 몇 가지 예제를 살펴보겠습니다.
- 정확도 (Accuracy): 모델이 예측한 값과 실제 값이 얼마나 일치하는지를 측정합니다.
from sklearn.metrics import accuracy_score
- 정밀도 (Precision): 모델이 True로 예측한 것 중 실제 True인 비율을 측정합니다.
from sklearn.metrics import precision_score
- 재현율 (Recall): 실제 True 중 모델이 True로 예측한 비율을 측정합니다.
from sklearn.metrics import recall_score
- F1 스코어 (F1 score): 정밀도와 재현율의 조화 평균으로 모델의 성능을 평가합니다.
from sklearn.metrics import f1_score
사용 예제
다음은 이진 분류 모델의 성능을 평가하는 scikit-learn 예제입니다.
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 데이터셋을 로드하고 features와 target으로 분리합니다.
X, y = load_data()
# 데이터를 train set과 test set으로 나눕니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 모델을 학습합니다.
model = LogisticRegression()
model.fit(X_train, y_train)
# 예측 결과를 얻습니다.
y_pred = model.predict(X_test)
# 평가 지표를 계산합니다.
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
# 결과를 출력합니다.
print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
print("F1 score:", f1)
위의 예제에서, 데이터셋을 로드하고 train set과 test set으로 나누었습니다. LogisticRegression 모델을 사용하여 학습을 진행하고, 예측 결과를 얻습니다. 그 후, 평가 지표를 계산하고 출력합니다. 이렇게 간단하게 모델의 성능을 평가할 수 있습니다.
참고 자료
- scikit-learn documentation: Evaluation metrics
- scikit-learn documentation: sklearn.metrics.accuracy_score
- scikit-learn documentation: sklearn.metrics.precision_score
- scikit-learn documentation: sklearn.metrics.recall_score
- scikit-learn documentation: sklearn.metrics.f1_score