Python:可视化决策树:索引器:列表索引超出范围
我一直在跟踪(但使用我自己的数据) 我尽量将数据可视化为一个图形,但不管我输入的数据框中的哪个标签,它都告诉我它超出了范围Python:可视化决策树:索引器:列表索引超出范围,python,scikit-learn,graphviz,Python,Scikit Learn,Graphviz,我一直在跟踪(但使用我自己的数据) 我尽量将数据可视化为一个图形,但不管我输入的数据框中的哪个标签,它都告诉我它超出了范围 clusterDF=pd.DataFrame(data=clusterdata[:,:],index=list(range(len(clusterdata))),\ columns=['viewed','carted','knownpurchases','totlength','avgtime','stdtime','vartime','KMP','Leven','
clusterDF=pd.DataFrame(data=clusterdata[:,:],index=list(range(len(clusterdata))),\
columns=['viewed','carted','knownpurchases','totlength','avgtime','stdtime','vartime','KMP','Leven','prodnum','Class'])
X = clusterDF.drop('Class', axis=1)
y = clusterDF['Class']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
regressor = DecisionTreeRegressor(max_depth=2)
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
df=pd.DataFrame({'Actual':y_test, 'Predicted':y_pred})
#Problematic line
export_graphviz(regressor, out_file='foo.dot', feature_names=['carted'])
完全错误回溯:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
execfile(filename, namespace)
File "/usr/lib/python3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 88, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "/home/jess/Documents/IIIM/Discovery Stream/parser.py", line 383, in <module>
export_graphviz(regressor, out_file='foo.dot', feature_names=[X['carted']])
File "/usr/lib/python3/dist-packages/sklearn/tree/export.py", line 403, in export_graphviz
recurse(decision_tree.tree_, 0, criterion=decision_tree.criterion)
File "/usr/lib/python3/dist-packages/sklearn/tree/export.py", line 302, in recurse
node_to_str(tree, node_id, criterion)))
File "/usr/lib/python3/dist-packages/sklearn/tree/export.py", line 200, in node_to_str
feature = feature_names[tree.feature[node_id]]
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3/dist packages/spyderlib/widgets/externalshell/sitecustomize.py”,第699行,在runfile中
execfile(文件名、命名空间)
文件“/usr/lib/python3/dist packages/spyderlib/widgets/externalshell/sitecustomize.py”,第88行,在execfile中
exec(编译(打开(文件名'rb').read(),文件名'exec'),命名空间)
文件“/home/jess/Documents/iim/Discovery Stream/parser.py”,第383行,在
导出图形viz(回归器,out_file='foo.dot',feature_name=[X['carted']])
文件“/usr/lib/python3/dist-packages/sklearn/tree/export.py”,第403行,在export_-graphviz中
递归(decision_tree.tree,0,criteria=decision_tree.criteria)
文件“/usr/lib/python3/dist-packages/sklearn/tree/export.py”,第302行,递归格式
节点\u到\u str(树、节点\u id、标准)))
文件“/usr/lib/python3/dist-packages/sklearn/tree/export.py”,第200行,在node_-to_str中
feature=特征名称[树.特征[节点id]]
索引器:列表索引超出范围
我对此非常陌生,非常感谢您的建议。您需要指定所有功能的名称:
feature_names = ['viewed','carted','knownpurchases','totlength','avgtime','stdtime','vartime','KMP','Leven','prodnum']
在本教程中,仅使用了1个功能(解释变量)。您能否编辑您的帖子以包含完整的错误回溯?谢谢