NameError:未定义名称'labels'
问题描述:
我正在使用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 :
答
如果你只需要输入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'])
答
它主要在东阳书中的代码是没有定义“标签”的。根据上下文,添加以下代码:
target = data['target']
target_names = data['target_names']
labels=np.array([target_names[i] for i in target])
很明显,变量'labels'没有被定义! – luoluo
你可以做一些类似data ['labels']或data.labels的东西......检查数据对象 – FLab
你不想在你的'is_setosa'变量中设置一个布尔值。为此,你正在比较'labels =='setosa''。现在'标签'没有定义过。介意写上面的声明像'labels =“”'? – ishaan