[python] scikit-learn을 이용한 모델 튜닝 결과 시각화

scikit-learn은 머신러닝 프레임워크로서 다양한 모델을 구현하고 튜닝할 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 scikit-learn을 사용하여 모델 튜닝 결과를 시각화하는 방법을 알아보겠습니다.

1. 모델 튜닝

scikit-learn은 다양한 모델에 대한 튜닝 기능을 제공합니다. 이 예시에서는 RandomForestClassifier를 사용하여 모델 튜닝을 진행한다고 가정하겠습니다. 튜닝을 위해 다양한 매개변수 조합을 시도하고 최적의 조합을 찾아야 합니다.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

# 튜닝할 매개변수 조합 정의
param_grid = {
    'n_estimators': [10, 100, 200],
    'max_depth': [None, 5, 10],
    'min_samples_split': [2, 5, 10]
}

# RandomForestClassifier 모델 생성
model = RandomForestClassifier()

# GridSearchCV를 이용하여 모델 튜닝
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

# 최적의 모델 파라미터 출력
print("Best params:", grid_search.best_params_)

위의 코드에서는 n_estimators, max_depth, min_samples_split 세 가지 매개변수를 튜닝합니다. RandomForestClassifier 모델을 생성하고 GridSearchCV를 사용하여 최적의 매개변수 조합을 찾습니다. 튜닝된 결과는 grid_search.best_params_를 통해 확인할 수 있습니다.

2. 튜닝 결과 시각화

튜닝된 결과를 시각화하여 모델의 성능 변화를 살펴볼 수 있습니다. 여기서는 n_estimators의 값에 따른 정확도 변화를 그래프로 나타내는 방법을 확인해보겠습니다.

import matplotlib.pyplot as plt

# n_estimators에 따른 정확도 계산
n_estimators = [10, 100, 200]
accuracy = []

for n in n_estimators:
    model = RandomForestClassifier(n_estimators=n, max_depth=grid_search.best_params_['max_depth'],
                                   min_samples_split=grid_search.best_params_['min_samples_split'])
    model.fit(X_train, y_train)
    accuracy.append(model.score(X_test, y_test))

# 그래프로 시각화
plt.figure(figsize=(8, 6))
plt.plot(n_estimators, accuracy)
plt.xlabel('n_estimators')
plt.ylabel('Accuracy')
plt.title('Accuracy vs n_estimators')
plt.show()

위의 코드에서는 n_estimators의 값에 따른 정확도를 계산하여 그래프로 시각화합니다. 여기서는 최적의 max_depthmin_samples_split 값을 사용하여 모델을 생성하고 테스트 데이터에 대한 정확도를 계산합니다. 최적값을 사용하는 이유는 다른 매개변수를 고정시켜 정확도를 비교하고자 함이기 때문입니다.

시각화된 그래프를 통해 n_estimators의 값이 증가함에 따라 정확도가 어떻게 변화하는지 확인할 수 있습니다.

3. 정리

이 블로그 포스트에서는 scikit-learn을 사용하여 모델 튜닝 결과를 시각화하는 방법을 알아보았습니다. 모델 튜닝을 위해 GridSearchCV를 사용하여 최적의 매개변수 조합을 찾고, 그 결과를 시각화하여 모델의 성능 변화를 확인할 수 있습니다.

관련 참고 자료: