* 모형의 적합성을 평가하는 방법
- MSE(Mean Squared Error)는 낮을 수록 좋음, 높은 경우 fitting이 덜된것(under fitting)
- 학습집합의 MSE는 모형의 복잡도에 따라 달라지고, 복잡할수록 감소하지만 과적합(overfitting)문제 발생 가능
* 데이터 분할
- 학습데이터와 시험데이터로 분할 필요 (Training Test - 8:2, 7:3 정도/Training Validation Test - 5:3:2 정도)
- 보통 Training Validation Test 구분하여 나눠서 진행
- 학습데이터: 모형 f를 추정하는데 사용
- 검증데이터: 모형 f가 잘 설계 됐는지 사용(k값 피드백 줄수 있음)
- 시험데이터: 모형 f에 대한 성능평가 이 데이터로 학습 x
- 데이터분할>모형학습>모형선택>최종 성능 지표 도출
- 데이터를 어떻게 분리하느냐에 따라 성능이 달라짐
- 하이퍼 파라미터를 바꿀 필요가 없을경우 training test로 분할해도 됨
* k-Fold 교차 검증(k-Fold Cross Validation)
- 모형의 적합성을 보다 객관적으로 평가하기 위한 방법
- 데이터를 k(주로 5 또는 10)개 부분으로 나눈뒤 그중 하나를 검증, 나머지를 학습으로 분류
- 위 과정을 k번 반복하고 k개 성능 지표를 평균하여 모형의 적합성 평가
- 모든 데이터에 대한 학습 및 평가 가능, 데이터가 많이 않은 경우 사용
* LOOCV(Leave-One-Out Cross Validation)
- 데이터 수가 극단적으로 적을때 사용(K-Fold 로 할때 성능이 다르게 나올경우)
- 총n(데이터 수만큼)개 모델 생성후 1개 샘플 제외후 모델 설계, 성능지표 계산, n개의 성능지표 평균으로 평가
* 데이터 분석과정
- Raw데이터 > 전처리된 데이터 > 실험설계 > [모델]
* 전처리
- 예) 게임 유저 이탈 예측 문제
- 어떤 변수가 게임 이탈에 영향을 끼칠까?
- 노력대비 성과가 부족할 경우?
-> 던전 입장과 클리어수, 비용과 경험치 -> 비용대비 경험치, 던전 클리어율 등의 새로운 데이터 생성 가능
-> feature를 목적에 맞게 잘 설계하는것이 중요함
* 실험설계
- 실험설계에서 test 데이터는 실제로 우리가 모델을 적용한다는 가정하에 해야함
- 데이터가 서로연관되어 있고 순서가 있으면 그에 맞춰서 데이터를 학습, 검증 해야함
- class imbalance 한 경우에도 맞춰저야함
-- 예를 들어 9:1 비율이라면 학습, 검증, 시험 데이터도 9:1비율로 나눠져 있게 해야함)