주요 라이브러리
category_encoders
matplotlib
numpy
pandas
pandas-profiling
scikit-learn
scipy.stats
** 교차 검증은 시계열(time series) 데이터에는 적합하지 않음
[그림 설명]
A
B
C
모델에 벨리데이션 데이터를 붙인 후 예측하고 베일리 폴드 라벨을 붙여서 퍼포먼스를 낸다.
퍼포먼스를 낸 후 시그마로 평균값을 낸다.
[과정]
1. traing/test set으로 나눈다.
2. trainng을 K개의 fold로 나눈다.
3. 한개의 fold에 있는 데이터를 다시 K개로 쪼갠다음, K-1개는 Training Data, 마지막 한개는 Validation Data set으로 지정
4. 모델을 생성하고 예측을 진행하며 이에대한 에러 값을 추출
5. 다음 fold에서는 validation셋을 바꿔서 지정하고, 이전 fold에서 validation 역할을 했던 Set은 다시 Training set으로 활용
6. 이를 K번 반복
7. 각각의 fold의 시도에서 기록된 에러를 바탕(에러들이 평균)으로 최적의 모델/조건을 찾음
8. 해당 모델(조건)을 바탕으로 전체 training set의 학습을 진행
9. 해당 모델을 처음에 분할했던 test set을 활용하여 평가
**단점: 시간 소요가 큼
Straitifed K-fold Cross Validation
RandomizdsearchCV에서 bestestimator
- bestestimator는 cv가 끝난 후 찾은 best parameter를 사용해 모든 학습데이터를 가지고 다시 학습한 상태
스코어에 - 를 넣는 이유
cross validation score는 숫자가 큰것을 좋게 보는데 mae는 숫자가 클수록 좋지 않은 것이기 때문에 -mae를 붙여줘야한다.
그렇다면 R2에는 -를 붙여야할까?
숫자가 1에 가까울수록 좋은거니까 -를 붙여줄 필요가 없음