반응형
교차검정의 종류는 Hold-Out, K-Fold, Stratified K-Fold등이 있다.
1. Hold-Out validation
Hold-Out 검증은 데이터를 특정 비율로 분할하여 train set과 validation set으로 만드는 것이다
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)
X_train_fold, X_validation_fold, y_train_fold, y_validation_fold = train_test_split(X_train, y_train, test_size=0.2, random_state=123)
2. K-Fold, Stratified K-Fold
K-교차검증은 데이터를 k개의 그룹으로 나누어 1개의 validation set과 (k-1)개의 train set을 k번 검증하는 방식이다.
주로, K-Fold는 회귀분석 시에 사용하고, Stratified K-Fold는 분류분석에서 사용한다.
둘의 차이점은 Stratified K-Fold는 데이터의 label클래스의 분포를 고려한다는 것이다.
from sklearn.model_selection import KFold
kfold = KFold(n_splits=5, shuffle=False, random_state=42)
for train_idx, validation_idx in kfold(X_train, shuffle=Flase, random_state=123):
X_train_fold, X_validation_fold = X_train.iloc[train_idx], X_train.iloc[validation_idx]
y_train_fold, y_validation_fold = y_train.iloc[train_idx], y_train.iloc[validation_idx]
from sklearn.model_selection import StratifiedKFold
kfold = StratifiedKFold(n_splits=5, shuffle=False, random_state=42)
for train_idx, validation_idx in kfold(X_train, y_train, shuffle=Flase, random_state=123):
X_train_fold, X_validation_fold = X_train.iloc[train_idx], X_train.iloc[validation_idx]
y_train_fold, y_validation_fold = y_train.iloc[train_idx], y_train.iloc[validation_idx]
반응형
'Skills > Python' 카테고리의 다른 글
[Python] Jupyter Notebook 에서 새로운 패키지 설치 (0) | 2021.11.01 |
---|---|
[Python] 패키지 설치 및 버전 확인, 업데이트 (0) | 2021.11.01 |
[Python] pandas에서 데이터 읽을때 인코딩 오류 (0) | 2021.11.01 |
[Python] itertools - 반복자 (0) | 2021.11.01 |
[Python] One Hot Encoding을 활용하여 범주형 변수 변형하기 (0) | 2021.11.01 |