[파이썬][scikit-learn] scikit-learn에서 모델 평가

scikit-learn은 파이썬에서 머신러닝 모델을 구축하고 평가하는 강력한 도구입니다. 이번 블로그 포스트에서는 scikit-learn을 사용하여 모델을 평가하는 방법에 대해 배워보겠습니다.

1. 데이터 준비하기

모델을 평가하기 위해 먼저 데이터를 준비해야 합니다. 이를 위해 scikit-learn에서 제공하는 데이터셋을 사용하거나, 직접 데이터를 불러와야 합니다.

import pandas as pd
from sklearn.model_selection import train_test_split

data = pd.read_csv('data.csv')
X = data.drop('target', axis=1)
y = data['target']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2. 모델 학습하기

데이터를 준비한 후, 모델을 학습시켜야 합니다. scikit-learn에서는 다양한 머신러닝 모델을 제공하며, 각 모델은 fit() 메소드를 사용하여 학습합니다.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
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}")

4. 교차 검증

단순히 학습 데이터와 테스트 데이터로만 모델을 평가하는 것은 편향되어 있을 수 있습니다. 따라서 교차 검증을 통해 모델의 성능을 더 정확하게 평가할 수 있습니다. scikit-learn에서는 cross_val_score() 함수를 사용하여 교차 검증을 수행할 수 있습니다.

from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X, y, cv=5)
average_accuracy = scores.mean()
print(f"평균 정확도: {average_accuracy}")

위의 방법을 사용하여 scikit-learn에서 모델을 평가하는 기본적인 방법을 알아보았습니다. 이 외에도 다양한 모델 평가 지표와 기법이 있으며, scikit-learn에서 제공하는 다른 함수와 클래스를 통해 더 다양한 평가를 수행할 수 있습니다.