在斯克莱恩遗漏

hem*_*nta 3 python scikit-learn

我在这个领域很新。我正在使用spyder运行我的代码:我正在尝试运行来自sklearn的简单省去的交叉验证代码:

from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import LeaveOneOut

X = [1, 2 ,3, 4]
loo = LeaveOneOut()
for train, test in loo.split(X):
     print ("%s %s" %(train, test))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: __init__() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

我了解原因,但不知道该怎么做。

小智 5

您应该传递数据集中的元素总数。以下代码供您参考

import numpy as np
from sklearn.cross_validation import LeaveOneOut

X = np.array([1, 2 ,3, 4])
loo = LeaveOneOut(4)
for train_idx, test_idx in loo:
    print X[train_idx], X[test_idx]
Run Code Online (Sandbox Code Playgroud)