python中的KFold到底做什么?
我正在看本教程:https : //www.dataquest.io/mission/74/getting-started-with-
kaggle
我进入第9部分,进行预测。在此数据帧中有一些数据称为titanic,然后使用以下方法将数据分成几部分:
# Generate cross validation folds for the titanic dataset. It return the row indices corresponding to train and test.# We set random_state to ensure we get the same splits every time we run this.
kf = KFold(titanic.shape[0], n_folds=3, random_state=1)
我不确定它到底在做什么以及kf是什么样的对象。我尝试阅读文档,但并没有太大帮助。另外,有三折(n_folds =
3),为什么以后为什么只在这一行中访问训练和测试(我怎么知道它们被称为训练和测试)?
for train, test in kf:
回答:
KFold将提供训练/测试索引,以在训练和测试集中拆分数据。它将数据集分成k
连续的折叠(默认情况下不进行混洗),然后每个折叠使用一次验证集,而k -
1其余的折叠则组成训练集(来源)。
假设您有一些从1到10的数据索引。如果使用n_fold=k
,则在第一次迭代中,您将获得i
‘th
(i<=k)
fold作为测试索引,其余的(k-1)
折叠(没有i
“ th fold”)一起成为火车索引。
一个例子
import numpy as npfrom sklearn.cross_validation import KFold
x = [1,2,3,4,5,6,7,8,9,10,11,12]
kf = KFold(12, n_folds=3)
for train_index, test_index in kf:
print (train_index, test_index)
输出量
折1:[4 5 6 7 8 9 10 11] [0 1 2 3]
折2:[0 1 2 3 8 9 10 11] [4 5 6 7]
折3:[0 1 2 3 4 5 6 7] [8 9 10 11]
KFold对象已移至sklearn.model_selection
0.20版中的模块。要在sklearn 0.20+中导入KFold,请使用from
sklearn.model_selection import KFold。KFold当前文档来源
以上是 python中的KFold到底做什么? 的全部内容, 来源链接: utcz.com/qa/420113.html