我正在尝试应用kfold方法,但我不知道如何访问生成的训练集和测试集。在浏览了几个博客和scikitlearn用户指南之后,人们唯一要做的就是打印培训和测试集。这可能适用于小数据帧,但对于较大的数据帧则没有用处。有人能帮我吗
我正在使用的数据:https://github.com/ageron/handson-ml/tree/master/datasets/housing
我目前所在的位置:
X = housing[['total_rooms', 'total_bedrooms']]
y = housing['median_house_value']
kf = KFold(n_splits=5)
for train_index, test_index in kf.split(X):
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
但这只在获取生成的最后一个数据集时有用。我应该能得到所有的
提前谢谢
AFAIK,
KFold
(事实上,所有与交叉验证过程相关的内容)都是为了提供临时数据集,这样,正如您所说,您就可以动态地使用它们进行拟合&;如Cross-validation metrics in scikit-learn for each data split所示评估模型尽管如此,由于
Kfold.split()
生成了Python生成器,您可以使用生成的索引来获得永久子集,尽管需要一些手动工作。以下是波士顿数据的一个示例:现在,对于
range(n_splits)
中的每个k
,folds[k][0]
包含训练索引和folds[k][1]
相应的验证索引,因此您可以执行以下操作:等等。注意,同样的索引也适用于标签
y
相关问题 更多 >
编程相关推荐