ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ML 모델 성능 평가(K-fold cross-validation, GridSearchCV)
    ML&DL&AI/ML 2023. 8. 21. 09:44
    728x90

    1. 모델 성능 평가

    - 일반적인 경우

    • 전체 데이터 100%
      • Train Data 80%
      • Test Data 20%

     

     

    - 데이터의 분할과 용도

    • 전체 데이터 100%
      • Train Data 60~70%
      • Validation Data 15~20%
      • Test Data 15~20%

     

    * 해결방안 : 검증 Data를 하나로 고정하지 않고 Test 데이터의 모든 부분을 사용

     

     

     

    2. K-fold cross-validation

    • Test 데이터를 k개의 그룹으로 나누기
    • K-1개의 그룹을 학습에 사용
    • 나머지 1개의 그룹을 이용해서 평가 수행
    • 2번, 3번 과정을 k번 반복
    • 모든 결과의 평균을 구하기

     

     

    - 장점과 단점

    • 장점
      • 모든 Test 데이터 셋을 평가에 활용할 수 있다.
        • 평가에 사용되는 데이터 편중을 막을 수 있다.
        • 특정 평가 데이터 셋에 overfit 되는 것을 방지할 수 있다
           
      • 모든 Test 데이터 셋을 훈련에 활용 할 수 있다.
        • 정확도를 향상시킬 수 있다.
        • 데이터 부족으로 인한 underfitting을 방지할 수 있다.
           
      • 데이터 세트 크기가 충분하지 않은 경우에도 유홍하게 사용 가능하다.
         
    • 단점
      • 여러번 학습하고 평가하는 과정을 거치기 때문에 모델 훈련/평가 시간이 오래 걸린다.

     

     

    - 동작 방법

     

     

    - 사용법

    • cross_val_score()함수
    from sklearn.model_selection import cross_val_score
    score = cross_val_score(모델, X, y, cv=나눌 개수)
    score

     

     

     

    3. GridSearchCV를 이용한 모델의 성능 개선

    • sklearn 라이브러리에서 제공해주는 모델 성능 개선 함수
    • 사용자가 모델과 hyper parameter들을 지정
    • GridSearchCV 함수가 순차적으로 hyper parameter들을 변경해가면서 학습과 평가를 수행
    • 가장 성능이 좋은 hyper paramete를 제시
    # 가장 높은 성능일 때의 모델에 대한 파라미터 조합 확인
    print(grid.best_params_)
    {'max_depth' : 3, 'max_leaf_nodes' : 4 ...}
    
    model_best = DecisionTreeClassifier(max_depth=3,max_leaf_nodes = 4 ...}
    
    model_best.fit(X_train,y_train)
    # feature_importances 이용, 영향력 높은 특성 확인

     

     

    - 사용방법

    • from sklearn.model_selection import = Kfold, GirdSerchCV

     

    728x90

    'ML&DL&AI > ML' 카테고리의 다른 글

    ML Linear Model(선형 모델)  (0) 2023.09.03
    ML 데이터 스케일링  (0) 2023.08.30
    ML AdaBoost(Adaptive Boosting)  (0) 2023.08.16
    앙상블(Ensemble) 모델  (0) 2023.08.16
    ML Decision Tree  (0) 2023.08.14
Designed by Tistory.