【发布时间】:2017-09-02 06:53:36
【问题描述】:
有人知道我可以如何消除下面的错误吗?
NameError Traceback (most recent call last)
<ipython-input-31-d3625a93ead4> in <module>()
11 loo = LeaveOneOut(num_of_examples)
12 for train_index, test_index in loo:
---> 13 print("%s %s" % (train, test))
14
NameError: name 'train' is not defined
导致错误的代码如下:
from sklearn import datasets
import numpy as np
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
X, y
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)
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
num_of_examples = len(X_train_std)
这是我得到错误的地方:
from sklearn.cross_validation import LeaveOneOut
loo = LeaveOneOut(num_of_examples)
for train_index, test_index in loo:
print("%s %s" % (train, test))
【问题讨论】:
-
您没有在代码中定义变量 train 和 test。
-
@Miriam 其实我是根据这个链接的 Leave One Out (LOO) 写的这个部分:scikit-learn.org/stable/modules/cross_validation.html
-
在下面查看我的答案。另外,当您从 cross_validation 导入 LeaveOneOut 时,我认为相关文档是 jaquesgrobler.github.io/Online-Scikit-Learn-stat-tut/modules/…。
标签: scikit-learn cross-validation