导入包
生成数据
train_test_split拆分
kFold拆分
sKFold拆分
小结:
全部代码:
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# cv int 6 数据分成6份
from sklearn.model_selection import cross_val_score,GridSearchCV
#KFold,StratifiedKFold将数据分成多少份
from sklearn.model_selection import KFold,StratifiedKFold
data = np.random.randint(0,10,size = (8,2))
target = np.array([0,0,1,0,1,1,1,0])
display(data,target)
train_test_split(data,target)
#随机拆分
kFold = KFold(n_splits=4)
#如果不写默认的话是分成三份,这里写的是分成四份
#train,test是索引,只要有索引便可以获取数据
#kFold.split(data,target)生成的是一个生成器,无法直接显示数据
for train,test in kFold.split(data,target):
print(train,test)
#成功将数据分成了四份但是并没有按比例来划分
sKFold = StratifiedKFold(n_splits=4)
#如果不写也默认分成三份
for train,test in sKFold.split(data,target):
print(target[train],target[test])
#将数据划分为四份.每一份数据样本比例和原来一样
# train_test_split,KFold,StratifiedKFold作用都是将数据进行一个拆分
#只不过第一个是随机拆分,第二个是指定份数拆分但不保持原比例
#最后一个是指定拆分份数且保持原比例