Python 名称错误:名称';标签';没有定义
下面是《用Python构建机器学习系统》(Richart,Pedro Coelho)一书中的逐行示例 导入iris数据集后,我们希望提取具有Setosa的数据集Python 名称错误:名称';标签';没有定义,python,Python,下面是《用Python构建机器学习系统》(Richart,Pedro Coelho)一书中的逐行示例 导入iris数据集后,我们希望提取具有Setosa的数据集 data = load_iris() features = data['data'] plength = features[:, 2] # use numpy operations to get setosa features is_setosa = (labels == 'setosa') 我知道了 >>> is_
data = load_iris()
features = data['data']
plength = features[:, 2]
# use numpy operations to get setosa features
is_setosa = (labels == 'setosa')
我知道了
>>> is_setosa = (labels == 'setosa')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'labels' is not defined
如果您只是在iPython控制台中键入
数据
,您将看到数据集的描述。特别是有两个字段:data['target']
包含数字标签{0,1,2},对应于data['target_names']
中报告的名称,即{'setosa','versicolor','virginica'}
因此,您可能可以定义标签
,如下所示:
labels = map(lambda x: dict(enumerate(data['target_names']))[x], data['target'])
这主要是因为书中的代码没有定义“标签”。根据上下文,添加以下代码:
target = data['target']
target_names = data['target_names']
labels=np.array([target_names[i] for i in target])
很明显,变量
标签没有定义!很可能你可以做一些像数据['labels']或数据。标签。。。检查is_setosa
变量中不包含布尔值的数据对象。为此,您正在对标签==“setosa”
进行比较。现在,以前没有定义标签。介意在上面写一个声明吗,比如labels=“
?@FLab请看我的编辑。
- class:\n - Iris-Setosa\n - Iris-Versicolour\n - Iris-Virginica\n :
labels = map(lambda x: dict(enumerate(data['target_names']))[x], data['target'])
target = data['target']
target_names = data['target_names']
labels=np.array([target_names[i] for i in target])