名称错误:名称“tree”未定义。

5

嘿,我是Python的新手,正在尝试跟随教程,但是出现了以下错误:

NameError: name 'tree' is not defined.

显然,目标是根据输入的特征确定水果是苹果还是橙子。我在Win 10上使用带有Spyder编辑器的Python 3.6。我相信这是一些简单的问题,感谢任何帮助!

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

# features = [[140, "smooth"], [130, "smooth"], [150, "bumpy"], [170, "bumpy"]]
# labels = ["apple", "apple", "orange", "orange"]
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
labels = [0, 0, 1, 1]
# We build a "Decision Tree" yes/no -> yes/no
# clf means classifier
clf = tree.DecisionTreeClassifier()
# Think of "fit" as "find patters in data"
clf = clf.fit(features, labels)
print (clf.predict([[160, 0]]))

1
你需要导入一些模块。可能是在教程中写的。 - rafaelc
5个回答

20
请将以下内容添加到您代码的顶部:
from sklearn import tree

假设你正在学习机器学习。


1
我下载了Anaconda,应该包含scikit-learn,因为我在导入后成功使用了它。非常感谢@BoobyTrap,简直不敢相信我竟然没有注意到这一点。 - JacobElliott

0
try:
    from sklearn.tree import DecisionTreeClassifier
except:
    pass
from sklearn.cluster import KMeans
  • Python 3.9.10
  • Mac OS M1
  • 另外顺带一提,在py3.7中测试也可以无问题导入

0

在使用前需要先导入库。 因此,要使用DecisionTreeClassifier,可以使用以下代码来导入和运行。

from sklearn import tree.
...
dtree = tree.DecisionTreeClassifier()

另一种方法是直接导入类并直接使用。例如:
from sklearn.tree import DecisionTreeClassifier
...
dtree = DecisionTreeClassifier()

不确定为什么这被投票否决,但解决了我的问题。导入语句是正确的并且有效。可能需要一些解释。 - Saurabhcdt

0

我尝试了这个 from sklearn import tree,但在我的系统上无法运行。

然后我尝试了这个 from sklearn.tree import DecisionTreeClassifier,它可以工作。

当然,在安装了sklearn之后才能这样做。


为什么这个答案被投票否决了!你能给一个好的理由吗? - Azz

0

从sklearn.tree导入_tree

...这是你需要的


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - user11717481

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接