Sklearn中不同的数据抽样验证方式_#苦行僧的博客-CSDN博客
这里记录以下import语句的前4个抽样方法:
from sklearn.model_selection import (train_test_split,
KFold,
StratifiedKFold,
StratifiedShuffleSplit,
ShuffleSplit,
GroupShuffleSplit,
GroupKFold,
TimeSeriesSplit)
1. 普通交叉随机抽样验证:train_test_split():
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
2. K折交叉抽样验证:KFold():
如下为,4折交叉验证,这4份都是互不相交的,等比例的。
参数含义:
1.n_split: 将数据集切分成n_split等份。
2.shuffle: 在切分n_split等份之前是否打乱。
3.4.random_state: 随机种子。当shuffle=True才有用,设置一样的random_state可以保持抽样到的数据一样。
kf = KFold(n_splits=2)
for train_index, test_index in kf.split(X):
#得到的train_index, test_index是索引
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
3. 分层K折抽样验证:StratifiedKFold():
StratifiedKFold分层采样,用于交叉验证:与KFold最大的差异在于,StratifiedKFold方法是根据标签中不同类别占比来进行拆分数据的,可以使各个分组中各类别比例与原始样本中各类别的比例保持一致。
参数含义:
1.n_split: 将每个类别切分成n_split等份。
2.shuffle: 在切分n_split等份之前是否打乱。
3.4.random_state: 随机种子。当shuffle=True才有用,设置一样的random_state可以保持抽样到的数据一样。
skf = StratifiedKFold(n_splits=2)
for train_index, test_index in skf.split(X, y):
#得到的train_index, test_index是索引
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]

8639

被折叠的 条评论
为什么被折叠?



