NameError:名称“树”未定义

Posted

技术标签:

【中文标题】NameError:名称“树”未定义【英文标题】:NameError: name 'tree' is not defined 【发布时间】:2017-08-16 04:35:03 【问题描述】:

嘿,我是 Python 新手,我正在尝试按照教程进行操作,但出现此错误:

目标显然是让程序根据输入的特征来确定水果是苹果还是橙子。我在 Win 10 上使用 Python 3.6 和 spyder 编辑器。我相信这很简单,感谢您的帮助!

# -*- 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】:

将此添加到代码的顶部:

from sklearn import tree

这是假设您正在学习机器学习。

【讨论】:

我下载了必须包含 sklearn 的 anaconda,因为它在我导入后可以工作。非常感谢@BoobyTrap,不敢相信我没有看到。【参考方案2】:

我试过这个from sklearn import tree 它在我的系统上不起作用。

然后我尝试了这个from sklearn.tree import DecisionTreeClassifier 并工作了。

这当然是在安装sklearn 之后。

【讨论】:

为什么这个答案被否决了!,你能给个充分的理由吗?【参考方案3】:

使用前需要导入lib。 因此,要使用DecisionTreeClassifier,请使用以下代码导入并运行。

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

另一种方法是导入类本身并直接使用它。例如

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

【讨论】:

不知道为什么这被否决但解决了我的问题。导入声明是正确的并且适用于。可能一个解释可能会奏效。

以上是关于NameError:名称“树”未定义的主要内容,如果未能解决你的问题,请参考以下文章

python:NameError:全局名称'...'未定义[重复]

NameError:名称'unicode'未定义[重复]

NameError:名称'python'未定义[关闭]

NameError:名称“”未定义[关闭]

Buildozer:NameError:未定义名称'functools'

NameError:未定义全局名称“reduce”