본문 바로가기

Data Science : Study/1. Python

Python : 데이터분석 - 모델 평가

반응형

※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글

 

 

모델이 얼마나 정확히 예측했는지 확인하기 위해서는 평가를 진행해야 한다.

 

모델에 test x를 이용하여 예측한 test y는 제대로 예측했는지 비교할 대상이 없으므로,

train 데이터를 일정 비율로 나눠 일부분은 모델의 학습에, 다른 부분은 모델의 예측에 활용한 뒤 각각 y를 비교해본다.

 

 

 

▶ 평가를 위해 데이터 나누기

from sklearn.model_selection import train_test_split
  • train 데이터를 train_kf, test_kf로 나누는데 사용되는 패키지
  • 데이터를 원하는 비율로 나눠준다
X_train_kf, X_test_kf, y_train_kf, y_test_kf = train_test_split(X_train, y_train, test_size = 0.3, random_state = 37)
  • train_kf, test_kf의 비율을 7:3으로 하였다.
  • random_state : train_test_split 를 실행할때마다 새로운 train_kf, test_kf를 생성하는데
                        random_state 값이 동일하다면 동일한 set을 생성(=재현가능성)한다.
  • train과 test의 비율을 어떻게 할지 잘 결정하는 것이 중요!

 

평가 준비

model.fit(X_train_kf, y_train_kf)		# 학습

y_predict_test_kf = model.predict(X_test_kf)	# 예측

 

평가

from sklearn.metrics import log_loss

log_loss? (참고: https://seoyoungh.github.io/dacon-study/ml-logloss/)

  • 모델 성능 평가 시 사용가능한 지표
  • 분류 모델 평가시 사용
  • 잘못 예측할수록 패널티가 더 크다

 

  score = log_loss(y_test_kf, y_predict_test_kf)

→ 적절한 score가 나올 때까지 feature를 변경하거나, 모델 생성 시 파라미터의 값을 변경한다

→ score가 너무 높아도 좋지 않다.
    train set에 과적합되어 해당 모델이 test set을 가지고는 제대로 예측하지 못할 수 있다

 

 

 

 

 

반응형