2017-04-25 87 views
0

我正在使用Python(Richart,Pedro Coelho)书中的Building Machine Learning Systems的逐行示例。NameError:未定义名称'labels'

进口虹膜数据集后,我们希望与Setosa

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 

我想这是错字,所以我尝试

>>> is_setosa = plenght(labels == 'setosa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'plenght' is not defined 
>>> is_setosa = plength(labels == 'setosa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'labels' is not defined 
>>> is_setosa = data(labels == 'setosa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'labels' is not defined 

什么我现在应该做什么? 如何检查数据对象?

>>> data.labels 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/milenko/miniconda2/lib/python2.7/site-packages/sklearn/datasets/base.py", line 58, in __getattr__ 
    raise AttributeError(key) 
AttributeError: labels 
>>> data.dtypes 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/milenko/miniconda2/lib/python2.7/site-packages/sklearn/datasets/base.py", line 58, in __getattr__ 
    raise AttributeError(key) 
AttributeError: dtypes 

这是描述

- class:\n    - Iris-Setosa\n    - Iris-Versicolour\n    - Iris-Virginica\n : 
+5

很明显,变量'labels'没有被定义! – luoluo

+0

你可以做一些类似data ['labels']或data.labels的东西......检查数据对象 – FLab

+0

你不想在你的'is_setosa'变量中设置一个布尔值。为此,你正在比较'labels =='setosa''。现在'标签'没有定义过。介意写上面的声明像'labels =“”'? – ishaan

回答

1

如果你只需要输入data到IPython的控制台,您将看到数据集的描述的相关部分。特别是有两个字段:data['target']包含与data['target_names']中报告的名称对应的数字标签{0,1,2},即{'setosa','versicolor','virginica'}。

所以,你也许可以定义labels如下:

labels = map(lambda x: dict(enumerate(data['target_names']))[x], data['target']) 
0

它主要在东阳书中的代码是没有定义“标签”的。根据上下文,添加以下代码:

target = data['target'] 
target_names = data['target_names'] 
labels=np.array([target_names[i] for i in target])