相关疑难解决方法(0)

为什么使用 shuffle 调用 KFold 生成器会给出相同的索引?

使用 sklearn,当你创建一个新的 KFold 对象并且 shuffle 为真时,它会产生一个不同的、新的随机折叠索引。但是,即使 shuffle 为真,来自给定 KFold 对象的每个生成器也会为每个折叠提供相同的索引。为什么它会这样工作?

例子:

from sklearn.cross_validation import KFold
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4])
kf = KFold(4, n_folds=2, shuffle = True)
?
for fold in kf:
    print fold
?
print '---second round----'
?
for fold in kf:
    print fold
Run Code Online (Sandbox Code Playgroud)

输出:

(array([2, 3]), array([0, 1]))
(array([0, 1]), array([2, 3]))
---second round----#same indices for the folds
(array([2, 3]), array([0, 1]))
(array([0, 1]), array([2, 3]))
Run Code Online (Sandbox Code Playgroud)

这个问题的动机是对这个 …

python scikit-learn cross-validation

5
推荐指数
1
解决办法
2167
查看次数

标签 统计

cross-validation ×1

python ×1

scikit-learn ×1