簡體   English   中英

NameError:未定義名稱“pydotplus”

[英]NameError: name 'pydotplus' is not defined

我正在使用 Anaconda 和 Jupyter Notebook 並收到以下錯誤:

NameError: name 'pydotplus' is not defined

為 python3 機器學習決策樹運行以下代碼時:

import pandas
from sklearn import tree
import pydotplus
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import matplotlib.image as pltimg

df = pandas.read_csv("shows.csv")

d = {'UK': 0, 'USA': 1, 'N': 2}
df['Nationality'] = df['Nationality'].map(d)
d = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map(d)

features = ['Age', 'Experience', 'Rank', 'Nationality']

X = df[features]
y = df['Go']

dtree = DecisionTreeClassifier()
dtree = dtree.fit(X, y)
data = tree.export_graphviz(dtree, out_file=None, feature_names=features)
graph = pydotplus.graph_from_dot_data(data)
graph.write_png('mydecisiontree.png')

img=pltimg.imread('mydecisiontree.png')
imgplot = plt.imshow(img)
plt.show()

您是否嘗試過從 pydotplus 導入您需要的特定方法?

像: from pydotplus import graph_from_dot_data因為您只使用模塊中的一種方法。

我能夠實施所選答案中提供的解決方案:

import pydotplus # <----------------------- LOOK HERE
dtree = DecisionTreeClassifier()
dtree = dtree.fit(X, y)
data = tree.export_graphviz(dtree, out_file=None, feature_names=features)
graph = pydotplus.graph_from_dot_data(data) # <-------- LOOK HERE
graph.write_png('mydecisiontree.png')

img=pltimg.imread('mydecisiontree.png')
imgplot = plt.imshow(img)
plt.show()

我能夠在 Anaconda 中解決我的問題,但后來我去 kaggle 並且無法在那里工作。 我改為實現導入graphiz,不再唱pydotplus。

import graphviz
dtree = tree.DecisionTreeClassifier(random_state = 1,max_depth = 5,min_samples_split=2)
dtree = dtree.fit(X, y)
data = tree.export_graphviz(dtree,feature_names=features,out_file=None)
graph = graphviz.Source(data)
graph

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM