2016-04-17 84 views
1

我試圖遵循Google的機器學習影片我特別停留在這一點上(https://youtu.be/tNa99PG8hR8?t=265NameError:全局名稱「dot_parser」沒有定義/ PydotPlus/Pyparsing 2 /蟒蛇

我在一個工作的Spyder/Python的2.7:

from sklearn.datasets import load_iris 
import numpy as np 
from sklearn import tree 

iris = load_iris() 
test_idx = [0,50,100] 

#Training Data 
train_target = np.delete(iris.target, test_idx) 
train_data = np.delete(iris.data, test_idx, axis=0) 

#testing data 
test_target = iris.target[test_idx] 
test_data = iris.data[test_idx] 

clf = tree.DecisionTreeClassifier() 
clf.fit(train_data, train_target) 

print test_target 
print clf.predict(test_data) 

#Copied code 
from sklearn.externals.six import StringIO 
import pydot 
dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data, 
         feature_names=iris.feature_names, 
         class_names=iris.target_names, 
         filled=True, rounded=True, 
         special_characters=True) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
graph.write_pdf("iris.pdf") 

輸出繼電器是

NameError: global name 'dot_parser' is not defined 

im使用PydotPlus和Pyparsing 2的指示: NameError: global name 'dot_parser' is not defined

conda list我得到

pyparsing 2.0.3 py27_0 defaults 
pydotplus 2.0.2 <pip> defaults 

任何幫助,將不勝感激,首次海報:-O

回答

1

我發現,更改代碼到

import pydotplus 

graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) 

工作正常。

1

我在使用谷歌機器學習教程時遇到了和你一樣的問題。爲了解決這個問題,我做了以下內容:(PS:我使用Linux Mint的17.3 Cinammon。)

先決條件:
在本教程的第一個情節,講師(JoshGordon)建議您安裝scikit - 從Anaconda學習。
教程鏈接:https://www.youtube.com/watch?v=cKxRvEZd3Mw
Anaconda下載鏈接:https://www.continuum.io/downloads
這就是我所做的,我爲我的系統安裝了Anaconda。

隨着蟒蛇裝(Linux Mint的),我打開我的終端並加送以下命令:

conda install graphviz 
conda install pydot 

然後我再次運行該腳本和它的工作。

PS:我認爲它是有效的,因爲當你嘗試運行該腳本時,python在Anaconda內尋找pydot和graphviz庫,但事實是,它們似乎並沒有與它捆綁在一起,你必須先安裝它們。

相關問題