2017-04-25 10 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 = 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 

何をしようとしたので、それはタイプミスだと思い、この

>>> is_setosa = (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'変数のブール値をwanできません。そのためには、 'labels == 'setosa''の比較をしています。今、 'labels'は前に定義されていません。上記の宣言を 'labels =" "'のように書いていますか? – ishaan

答えて

1

あなただけiPythonコンソールにdataを入力する場合は、データセットの説明が表示されますの関連する部分です。特に、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

、それは主に本の中でコードbeacause「ラベル」を定義するの欠如です。コンテキストに基づいて、次のコードを追加します。

target = data['target'] 
target_names = data['target_names'] 
labels=np.array([target_names[i] for i in target]) 
関連する問題