我可以使用80%列车20%测试分割的分层抽样 python中的数据?
我已经调查了这个,它是用于kfold分层抽样。 我不确定我是否只是将迭代次数设置为0,因为它是在交叉验证包中实现的,它们至少假设2倍!
StratifiedShuffleSplit(labels=[0 0 1 1], n_iter=3, ...)
答案 0 :(得分:1)
我不能100%确定您的问题到底是什么,所以我们只是查看sklearn.cross_validation.StratifiedShuffleSplit()的详细信息。
此交叉验证对象是StratifiedKFold和ShuffleSplit的合并。
这意味着该函数将返回一个随机的,分层的折叠。决定给你的折叠次数的因素是n_iter
参数。如果将此值设置为0,则在函数响应中不会收到任何内容。
也有可能并非所有折叠都是独一无二的。
回答我的想法是你的问题我可以使用80%列车20%测试的分层抽样在python中分割数据吗?
是的,让我们看一下示例代码。通过将test_size参数设置为0.2(20%),您可以强制折叠进行80%的训练,20%的测试。
import numpy as np
from sklearn.cross_validation import StratifiedShuffleSplit
X = np.array([[1, 1], [2, 2], [3, 3], [4, 4], [5,5], [6,6], [7,7], [8,8], [9,9], [10,10]])
y = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
sss = StratifiedShuffleSplit(y, 1, test_size=0.2, random_state=0)
for train_index, test_index in sss:
print("TRAIN:", train_index, "TEST:", test_index)
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
>>> TRAIN: [0 6 3 9 2 5 1 7] TEST: [4 8]
请告诉我这是您要找的内容,如果您有任何其他问题,请与我们联系。