分割数据集

sklearn函数:train_test_split(分割训练集和测试集)
x是array类型

from sklearn.model_selection import train_test_split

x_train,x_test = train_test_split(x)
xtrain
x_test
  • test_size:float or int, default=None

测试集的大小,如果是小数的话,值在(0,1)之间,表示测试集所占有的比例;

如果是整数,表示的是测试集的具体样本数;

如果train_size也是None的话,会有一个默认值0.25

上面的练习,就保持了默认,所以测试集就有3个样本了

  • train_size:float or int, default=None

和test_size一样,同上

  • random_state:int or RandomState instance, default=None

这个参数表示随机状态,因为每次分割都是随机的,我们重新执行几次上面的函数看看先

只有当shuffle=True时,random_state才起作用或者说才有意义,random_state随机取一个整数就好,保证每次分割出来的数据集是一样的。

shuffle: bool, default=True,默认是

是否重洗数据(洗牌),就是说在分割数据前,是否把数据打散重新排序这样子,看上面我们分割完的数据,都不是原始数据集的顺序,默认是要重洗的

x_train,x_test = train_test_split(x , train_size=4)
x_train

x_train,x_test = train_test_split(x , train_size=0.8)
x_train

 sklearn函数:KFold(分割训练集和测试集)

classsklearn.model_selection.KFold(n_splits=5,*,shuffle=False,random_state=None) 

  • n_splits:int, default=5

表示,要分割为多少个K子集

  • shuffle:bool, default=False

是否要洗牌(打乱数据)

  • random_state:int or RandomState instance, default=None

这和前一篇中提到的随机状态是一样的,需要配合shuffle参数使用

这个参数表示随机状态,因为每次分割都是随机的,我们重新执行几次上面的函数看看先

只有当shuffle=True时,random_state才起作用或者说才有意义,random_state随机取一个整数就好,保证每次分割出来的数据集是一样的。

import numpy as np
from sklearn.model_selection import KFold

X = np.random.randint(1,100,20).reshape((10,2))
X

kf = KFold(n_splits=5)
kf

for X_train,X_test in kf.split(X):
    print(X_train,X_test)

for X_train_i,X_test_i in kf.split(X):
    print(X[X_train_i],X[X_test_i])

猜你喜欢

转载自blog.csdn.net/weixin_44198288/article/details/128434204