pandas 로 데이터 세트-훈련 집합 과 테스트 집합 을 구분 합 니 다.
2460 단어 pandas 분석 데이터
데이터: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 상황 에서 데이터 의 구분 은 질서 가 있다.