훈련 데이터가 너무 훈련이 잘되어, train 모델에 완전 적합하게 되어 test data에는 맞지 않는 수준 = "과적합"
학습 모델 개발 시, 모델 선택 Model Selection을 수행해야 한다. 이때 하이퍼파라미터Hyperparameter 튜닝을 하게 되는데, 튜닝 효과를 보기 위해서는 검증세트가 필요하다. 데이터가 많을 경우에는 전체 데이터를 훈련/검증/테스트 세트로 나누면 되지만, 상대적으로 데이터 수가 적으면 K-Fold 교차 검증을 진행하면 된다.
Kaggle에서의 Titanic:Machine Learning from Disaster 데이터로 학습한다.
다수 클래스를 기준모델로 정하는 방법 Majority Class Baseline에 대해 알아 봅시다.
최다 클래스의 빈도가 정확도가 된다.
검증 세트에서의 정확도 확인
<<Logistic 함수>>
관측치가 특정 클래스에 속할 확률값으로 계산. 분류 문제에서는 확률값을 사용하여 분류를 한다. eg. 확률값이 정해진 기준값 보다 크면 1 if not 0.
로지스틱 회귀 계수는 비선형 함수 내에 있어서 직관적으로 해석하기가 어려워 Odds를 사용하여 선형 결합 형태로 변환하고, 이를 ㅇ해석한다.
Odds : 실패확률에 대한 성공확률의 비
Odds를 확률로 해석을 하려면 exp(계수) = p를 계산해서 특성 1단위 증가량 확률이 p배 증가한다고 해석할 수 있다.
분류에 기준이 되는 각 클래스에 속할 확률 값 확인 가능0번 클래스dead될 확률0.0174, 1번 클래스 alive될 확률 0.982
category_encoders.one_hot.OneHotEncoder
:카테고리 데이터 처리
sklearn.impute.SimpleImputer
: 결측치 처리
sklearn.preprocessing.StandardScaler
: 특성들의 척도를 맞추기 위해 표준화하는 Scaler
Scaler 종류
StandardScaler 기본 스케일, 평균과 표준편차 사용
MinMaxScaler 최대/최소값이 각각 1,0 되도록 스케일링
MaxAbsScaler 최대절대값과 0이 각각 1,0이 되도록 스케일링
RobustScaler 중앙값Median과 IQRinterquartile range 사용, 아웃라이어의 영향을 최소화
모든 스케일러 처리 전에 아웃라이어 제거가 선행되어야 한다. 데이터의 분포에 따라 적절한 스케일러 적용
실습) Titanic 데이터의 모든 특성을 사용한 모델
결론) 좌석의 등급이 고급일수록, 나이가 어릴 수록, 남성보다는 여성의 생존이 더 높아짐을 계수들의 수치로 확인할 수 있다.
번외
: 필요한 좋은 특성만 선택하는 것
SelectKBest (선형회귀, Ridge에서 사용/ not on Tree-based)