首页 > 解决方案 > scikit learn train_test_split for loop

问题描述

我想通过循环 train_test_split 创建 5 个不同的训练和测试集,例如:

for i in range(0,5):
X_train, X_test, y_train, y_test = train_test_split(features, y, test_size=0.2, random_state=i)

我想创建一个存储 5 个不同拆分的列表,并且我可以从每个拆分运行测试。我的问题是我应该如何创建一个列表来存储 X_train、X_test、y_train、y_test 以及之后如何调用列表中的每个拆分来运行测试?对于测试,我的意思是运行 ml 算法。

标签: pythonscikit-learn

解决方案


我的建议是一个简单的解决方案:

datas = []
for i in range(0,5):
    a,b,c,d = train_test_split(features, y, test_size=0.2, random_state=i)
    datas.append((a,b,c,d)

如果您想从数据中获取任何集合,您可以使用此代码。例如,您想使用索引 3。

X_train, X_test, y_train, y_test = datas[3]

推荐阅读