accuracy.score sklearn 的问题

数据挖掘 Python scikit-学习 错误处理
2022-02-10 13:04:23

我正在学习 python 并尝试自己学习 mashine。我正在重现一个超级简单的例子——基于臭名昭著的 iris 数据集。它是这样的:

from sklearn import datasets
iris = datasets.load_iris()

X = iris.data
y = iris.target

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .5)

from sklearn import tree
nordan_tree = tree.DecisionTreeClassifier()

nordan_tree.fit(X_train, y_train)

from sklearn.metrics import accuracy_score 

我收到以下错误消息:

Traceback (most recent call last):
  File "tree3.py", line 17, in <module>
    print(accuracy_score(y_test, predictions))
NameError: name 'predictions' is not defined

我不明白。据我了解,predictions向量是否包含使用 生成的所有预测 DecisionTreeClassifier我究竟做错了什么?

2个回答

您尚未在predictions任何地方定义变量。您将需要以某种方式从分类器中获取它们。您已经nordan_tree对训练数据进行了拟合,现在您可以使用拟合nordan_tree来生成预测,例如:

predictions = nordan_tree.predict(X_test)

然后你的行:

print(accuracy_score(y_test, predictions))

应该管用。

使用以下说明,因为它对我有用

from sklearn.metrics import accuracy_score

predictions = nordan_tree.predict(X_test)

print(accuracy_score(y_test, predictions))