pandas 로 데이터 세트-훈련 집합 과 테스트 집합 을 구분 합 니 다.

1、model 사용select 서브 모듈 의 traintest_split 함수 구분
데이터:kaggle 에서 Titanic 데이터 세트 사용 하기
구분 방법:무 작위 구분
#   pandas  ,sklearn model_select  
import pandas as pd
from sklearn.model_select import train_test_split
#     
data = pd.read_csv('.../titanic_dataset/train.csv')
#        X  ,      Y  
x = data.iloc[:, 2:]
y = data.loc['Survived']
#   train_test_split       (    75%,    25%)
x_train, x_test, y_train,y_test = train_test_split(x, y, test_size=0.25, ramdon_state=0)

단점:1.데이터 낭비 가 심각 하여 일부 데이터 만 검증 했다.
            2.너무 적합 하기 쉽다.
2.k 접 기 교차 검증(kpold)
원리:데이터 세트 를 n 개의 교차 하지 않 는 부분 집합 으로 나 누고 매번 그 중 하 나 를 테스트 집합 으로 선택 하고 나머지 n-1 개의 부분 집합 을           훈련 집 그룹 데이터
사용 방법:sklearn.modelselect.KFold(n_splits=5,shuffle=False,random_state=0)
매개 변수 설명:nsplits:데이터 세트 구분 의 분수,
                  shuffle:매번 구분 하기 전에 카드 를 다시 섞 는 지,False 는 구분 하기 전에 카드 를 섞 지 않 는 지,매번 구분 결과 와 마찬가지 로 True 는 구분 하기 전에 카드 를 섞 는 지,매번 구분 결 과 를 나타 낸다.                                 다르다
                 random_state:무 작위 피 드 수
(1)shuffle=False 상황 에서 데이터 구분 상황
#             
import numpy as np
from sklearn.model_selection import KFold
x = np.arange(46).reshape(23,2)
kf = KFold(n_splits=5,shuffle=False)
for train_index, test_index in kf.split(x):
    print(train_index,test_index)
[ 5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22] [0 1 2 3 4]
[ 0  1  2  3  4 10 11 12 13 14 15 16 17 18 19 20 21 22] [5 6 7 8 9]
[ 0  1  2  3  4  5  6  7  8  9 15 16 17 18 19 20 21 22] [10 11 12 13 14]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 19 20 21 22] [15 16 17 18]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18] [19 20 21 22]

(2)shuffle=True 상황 에서 데이터 구분 상황
 
import numpy as np
from sklearn.model_selection import KFold
x = np.arange(46).reshape(23,2)
kf = KFold(n_splits=5,shuffle=True)
for train_index, test_index in kf.split(x):
    print(train_index,test_index)
[ 0  3  4  5  6  7  8  9 10 11 12 14 15 16 17 19 20 21] [ 1  2 13 18 22]
[ 0  1  2  3  5  6  7 10 11 13 15 16 17 18 19 20 21 22] [ 4  8  9 12 14]
[ 0  1  2  3  4  7  8  9 10 12 13 14 15 16 17 18 19 22] [ 5  6 11 20 21]
[ 1  2  3  4  5  6  8  9 10 11 12 13 14 15 18 19 20 21 22] [ 0  7 16 17]
[ 0  1  2  4  5  6  7  8  9 11 12 13 14 16 17 18 20 21 22] [ 3 10 15 19]

요약:데이터 에서 알 수 있 듯 이 shuffle=True 상황 에서 데이터 의 구분 은 어 지 러 운 것 이 고 shuffle=False 상황 에서 데이터 의 구분 은 질서 가 있다.

좋은 웹페이지 즐겨찾기