세조목

머신러닝 심화 복습(과적합)(24.05.07) 본문

데이터 분석 공부/머신러닝

머신러닝 심화 복습(과적합)(24.05.07)

세조목 2024. 5. 7. 16:24

과적합

개념

모형이 지나치게 복잡할 경우 데이터를 너무 많이(or 적게) 학습(=적합)해서

특정 데이터의 예측만 할 수 있고, 다른 데이터는 예측할 수 없음

 ※ 과적합이라고 하면 일반적으로 과대적합을 얘기함

 

과적합 해결방법

→ Train, Test dataset 분리

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(titanic_df[['Fare', 'Sex']], titanic_df[['Survived']], test_size=0.3, shuffle=True, random_state=42, stratify=titanic_df[['Survived']])

 - test_size : train, test dataset의 비율

 - shuffle : dataset 분리하기 前 데이터를 무작위로 섞음

 - random_state : 데이터 분리 상태를 고정시키기위한 파라미터로 난수값임(= 아무값이나 입력하면 됨)

 - stratify : dataset 분리 前 종속변수의 구성비를 그대로 유지시켜주는 파라미터(데이터 분리했을 때 데이터 불균형이 심할 경우 사용해주면 됨)

 

※ 원본 데이터에서 전처리를 진행한 후 dataset을 분리하면 안 됨

dataset을 나눈 후 train, test 각각 전처리 진행해줘야 하고, train에서 했던 그대로 test에 해줘야 함