【发布时间】:2017-08-27 18:06:49
【问题描述】:
我想使用留一出交叉验证。但我得到以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-19-f15f1e522706> in <module>()
3 loo = LeaveOneOut(num_of_examples)
4 #loo.get_n_splits(X_train_std)
----> 5 for train, test in loo.split(X_train_std):
6 print("%s %s" % (train, test))
AttributeError: 'LeaveOneOut' 对象没有属性'split'
详细代码如下:
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
from sklearn.cross_validation import LeaveOneOut
num_of_examples = len(X_train_std)
loo = LeaveOneOut(num_of_examples)
for train, test in loo.split(X_train_std):
print("%s %s" % (train, test))
【问题讨论】:
-
来自文档 (scikit-learn.org/stable/modules/generated/…) 看来您需要先使用
loo.get_n_splits(X_train)拆分您的集合 -
请附上完整的错误信息。
-
这是无法阅读的。请编辑您的原始问题并在其中包含完整的错误消息。
-
@DYZ 我修改了我的初始帖子。
标签: python scikit-learn cross-validation