이번주는 설날연휴가 무려 4일이나 있다. 지금까지 부족했던 것을 복습하고 되돌아 볼 수 있는 시간이 될 거라 생각한다. :) 이 시간을 잘 활용해서 알차게 써야겠다. 지금까지 그랬던 것과 같이 이미 방대한 양의 계획을 해 놓았다..ㅎㅎ 물론 항상 계획했던대로 공부양을 끝내본 적이 없다. (욕심만 많다.) 바보같지만 이 미련을 놓을 수가 없다..ㅠ 이번에는 초인적인 힘이 생겨 3일동안 다 끝내고 마지막 자유자재로 데이터를 분석해보고 만져보는 시간을 갖는 것이 내 목표다 !
이제 오랫동안 의자에 앉아 공부하는 것은 껌인듯하다. 현재 공부 환경이 너무 좋기 때문일 수도 있다. 10년 이상을 이 동네에 살았는데 이렇게 예쁜 동네인 ㅈㄹ.. 아파트 속에 둘러쌓여서 전혀 모르고 살았다.
오랫동안 컴퓨터에 집중하다 고개 들어서 산을 바라보면,, 너무 좋다.
Note3
Note4
교차검증 (Cross Validation)
시계열데이터(time series)는 적합하지않음.
hold-out 교차검증
훈련/검증/테스트 세트
hold-out 교차검증의 문제점
데이터 양이 충분이 많아야 한다.
모델선택(Model selection)
k-fold cross-validation(cv)
cross_val_score
from sklearn.model_selection import cross_val_score
k = 3
scores = cross_val_score(pipe, X_train, y_train, cv=k, scoring='neg_mean_absolute_error')
target encoder
(min_sample_leaf, smoothing)
hyperparameter
최적화(optimization) : 훈련데이터로 더 좋은 성능을 얻기 위해 모델을 조정하는 과정
일반화(generalization) : 학습된 모델이 처음 본 데이터에서 얼마나 좋은 성능을 내는지
과소적합(underfitting)
모델의 복잡도를 높이는 과정에서 훈련/검증 세트의 손실이 함께 감소하는 시점. 모델이 더 학습해야함
과적합(overfitting)
훈련데이터의 손실은 감소하는데 검증데이터의 손실이 증가하는 때.
이상적인 모델 : 과소적합과 과적합 사이에 존재
검증곡선(validation curve)
x축:하이퍼파라미터 y축:스코어
다양한 하이퍼파라미터 값에 대해 훈련/검증 스코어 값의 변화 확인(gridsearch에서 한가지 파라미터를 사용하는 것과 유사). 현실적으로는 하나의 파라미터로 검증곡선을 그리는 것이 유용하진 않음.
from sklearn.model_selection import validation_curve
훈련곡선(learning curve)
x축: 훈련데이터 수 y축:스코어
(하이퍼파라미터의 최적값 찾기)
GridSearchCV
검증하고싶은 하이퍼파라미터들의 수치를 정해주고 그 조합을 모두 검증합니다.
RandomizedSearchCV
검증하려는 하이퍼파라미터들의 값 범위를 정해주면 무작위로 값을 지정해 그 조합을 모두 검증합니다.
from sklearn.model_selection import RandomizedSearchCV
rank_test_score
mean_score_time
best_estimator
refit
`from scipy.stats import randint, uniform