logo

Python에서 Sklearn을 사용하여 테스트 분할 훈련을 수행하는 방법

이 기사에서는 Python에서 Sklearn을 사용하여 열차 테스트 분할을 수행하는 방법을 알아 보겠습니다.

Sklearn을 사용하여 테스트 분할 훈련

train_test_split() 메서드는 데이터를 열차 및 테스트 세트로 분할하는 데 사용됩니다.



.net 튜토리얼

먼저 데이터를 특징(X)과 레이블(y)로 나누어야 합니다. 데이터프레임은 X_train,X_test, y_train 및 y_test로 나뉩니다. X_train 및 y_train 세트는 모델 학습 및 피팅에 사용됩니다. X_test 및 y_test 세트는 올바른 출력/레이블을 예측하는 경우 모델을 테스트하는 데 사용됩니다. 열차와 테스트 세트의 크기를 명시적으로 테스트할 수 있습니다. 기차 세트를 테스트 세트보다 크게 유지하는 것이 좋습니다.

기차 세트: 훈련 데이터 세트는 모델을 적합시키기 위해 활용된 데이터 세트입니다. 모델이 훈련되는 데이터 세트입니다. 이 데이터는 모델에 의해 보고 학습됩니다.

테스트 세트: 테스트 데이터 세트는 최종 모델 적합성을 정확하게 평가하는 데 사용되는 교육 데이터 세트의 하위 집합입니다.



검증 세트: 검증 데이터세트는 모델의 하이퍼파라미터를 조정하는 동안 모델 성능을 추정하는 데 사용되는 모델 훈련 세트의 데이터 샘플입니다.

기본적으로 데이터의 25%는 테스트 세트이고 75%의 데이터는 훈련 테스트에 사용됩니다.

통사론: sklearn.model_selection.train_test_split()



매개변수:

    *배열: 인덱싱 가능한 항목의 시퀀스입니다. 목록, numpy 배열, scipy-sparse 행렬 및 pandas 데이터 프레임은 모두 유효한 입력입니다. test_size: int 또는 float, 기본적으로 없음. 부동 소수점인 경우 0.0에서 1.0 사이여야 하며 분할을 테스트할 데이터세트의 비율을 나타냅니다. int를 사용하는 경우 전체 테스트 샘플 수를 나타냅니다. 값이 None이면 열차 크기의 보수가 사용됩니다. 열차 크기도 없음인 경우 0.25로 설정됩니다. train_size: int 또는 float, 기본적으로 없음. random_state : int, 기본적으로 없음. 분할이 구현되기 전에 데이터를 섞는 방법을 제어합니다. 여러 함수 호출에서 반복 가능한 출력을 얻으려면 int를 전달하십시오.
    shuffle: boolean object , 기본적으로 True입니다. 분할하기 전에 데이터를 섞어야 하는지 여부입니다. shuffle=False인 경우 층화는 없음이어야 합니다. 층화: 배열형 객체, 기본적으로 없음입니다. 없음을 선택한 경우 데이터는 이를 클래스 레이블로 사용하여 계층화됩니다.

보고: 분할: 목록

예시 1:

numpy, pandas 및 scikit-learn 패키지를 가져옵니다. CSV 파일을 가져옵니다. X에는 ​​기능이 포함되고 y는 레이블입니다. 데이터프레임을 X와 y로 분할하고 이에 대해 열차 테스트 분할을 수행합니다. random_state는 numpy 시드처럼 작동하며 데이터 재현성을 위해 사용됩니다. test_size는 0.25로 지정됩니다. 이는 데이터의 25%가 테스트 크기에 들어간다는 의미입니다. 1-test_size는 열차 크기이므로 지정할 필요가 없습니다. shuffle =True, 데이터가 유출되기 전에 섞습니다. X_train 및 X_test 세트는 모델을 맞추고 훈련하는 데 사용되며 테스트 세트는 테스트 및 검증에 사용됩니다.

CSV 파일에 액세스하려면 다음을 클릭하세요. 여기.

포토샵에서 다시 실행하는 방법

파이썬3




자바의 다형성

# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test,> y_train, y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >test_size>=>0.25>,> >shuffle>=>True>)> > # printing out train and test sets> > print>(>'X_train : '>)> print>(X_train.head())> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>('')> print>(>'y_test : '>)> print>(y_test.head())>

>

자바에서 문자열 배열 생성
>

산출:

 Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 99 3478 52 4270 184 3479 139 3171 107 3399 Name: Head Size(cm^3), dtype: int64 (177,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (60,) y_train : 99 1270 52 1335 184 1160 139 1127 107 1226 Name: Brain Weight(grams), dtype: int64 (177,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (60,)>

예시 2:

이 예에서는 test_size를 지정하는 대신 train_size를 지정하는 대신 동일한 단계를 따릅니다. test_size는 1-train_size입니다. 데이터의 80%는 기차 세트이므로 데이터의 20%는 테스트 세트입니다. 테스트 및 학습 세트의 크기를 지정하지 않으면 기본적으로 test_size는 0.25가 됩니다. y_train이 X_train 기능의 레이블이므로 X_train과 y_train은 모양과 인덱스가 동일합니다. X_test와 y_test도 마찬가지입니다.

파이썬3




# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> print>(df.shape)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test, y_train,> y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >train_size>=>0.8>, shuffle>=>True>)> > # printing out train and test sets> print>(>'X_train : '>)> print>(X_train.head())> print>(X_train.shape)> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>(X_test.shape)> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>(y_train.shape)> print>('')> print>(>'y_test : '>)> print>(y_test.head())> print>(y_test.shape)>

>

숨겨진 앱을 공개하는 방법

>

산출:

(237, 2) Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 110 3695 164 3497 58 3935 199 3297 182 4005 Name: Head Size(cm^3), dtype: int64 (189,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (48,) y_train : 110 1310 164 1280 58 1330 199 1220 182 1280 Name: Brain Weight(grams), dtype: int64 (189,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (48,)>