반응형
src : https://stackoverflow.com/a/52396238/100093
(K-Fold 크로스 밸리데이션에서) 매 폴드마다 90%의 데이터로 훈련을 하고, 나머지 10%의 데이터에 대해서는 예측을 합니다. 이 10%로 에러 메트릭(예를 들어 RMSE라고 합시다.)을 계산합니다. 이 과정을 통해 결국 남는 것은, 10차례의 각 폴드마다 RMSE 값 하나와 각 10% 데이터셋에 대한 예측치입니다. 이 결과물을 2가지 방법으로 처리할 수 있습니다.
- 10개의 RMSE 값의 평균과 표준편자를 확인합니다. K폴드는 랜덤으로 데이터를 나누므로, 각 폴드에서 나온 에러값(RMSE)들은 서로 비슷해야 합니다. 만약, 값들이 서로 비슷하지 않다면, 이 때의 모델(피쳐와 하이퍼패러미터들)로는 테스트셋에서 안정적인 예측치를 얻기 어려울 것입니다.
- 10세트의 예측을 합쳐서 하나의 예측을 만듭니다. 예를들어, 훈련데이터가 1000개였다면, 100개의 예측치로 이루어진 10개의 예측세트를 얻게 됩니다. (10x100 = 1000 이므로) 이 10세트를 하나의 벡터로 만들어서, 1000개의 예측치를 갖는 하나의 전체 예측세트를 얻습니다. 이 전체예측세트를 out-of-folds 예측이라고 합니다. 이 전체 훈련데이터에 대한 예측을 이용해 RMSE 를 계산할 수 있습니다. 즉,
rmse = compute_rmse(oof_predictions, y_train)
. 이것이 최종적으로 예측모델을 평가하는 가장 깔끔한 방법인 것 같습니다.
728x90
'프로그래밍 > AI:ML:DL' 카테고리의 다른 글
[번역|SO] 시계열데이터의 이상탐지를 위한 패키지 (0) | 2019.09.05 |
---|---|
[ML|번역] 랜덤포레스트의 기본 변수중요도에 주의하라 (0) | 2019.08.22 |
추천시스템 메모 2 (0) | 2019.07.13 |
추천시스템 메모 (0) | 2019.07.12 |
RMSLE 의 의미는 무엇일까? (0) | 2019.07.10 |