los*_*yao 3 python machine-learning scikit-learn cross-validation
我想将数据拆分为训练,测试和验证数据集,这些数据集是分层的,但sklearn只提供cross_validation.train_test_split,它只能分为2个部分.如果我想这样做,我该怎么办?
如果您想使用分层训练/测试分裂,您可以在Sklearn中使用StratifiedKFold
假如X
是你的特点和y
是你的标签的基础上,例如在这里:
from sklearn.model_selection import StratifiedKFold
cv_stf = StratifiedKFold(n_splits=3)
for train_index, test_index in skf.split(X, y):
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]
Run Code Online (Sandbox Code Playgroud)
更新:要将数据分成3个不同的百分比,使用numpy.split()可以这样做:
X_train, X_test, X_validate = np.split(X, [int(.7*len(X)), int(.8*len(X))])
y_train, y_test, y_validate = np.split(y, [int(.7*len(y)), int(.8*len(y))])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2814 次 |
最近记录: |