2017-12-15 11 views
0

graphviz를 사용하여 의사 결정 트리를 시각화하려고하는데 의사 결정 트리를 플로팅하는 동안 아래 오류가 발생합니다 :'Graphviz를 사용하여 의사 결정 트리를 그릴 때 기능 이름의 길이가 일치하지 않습니다'오류가 발생했습니다.

~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\tree\export.py in export_graphviz(decision_tree, out_file, max_depth, feature_names, class_names, label, filled, leaves_parallel, impurity, node_ids, proportion, rotate, rounded, special_characters, precision) 
    427         "does not match number of features, %d" 
    428         % (len(feature_names), 
--> 429          decision_tree.n_features_)) 
    430 
    431   # The depth of each node for plotting with 'leaf' option 

ValueError: Length of feature_names, 225 does not match number of features, 

208

내 코드

dt=DecisionTreeClassifier(class_weight="balanced", min_samples_leaf=30) 
fit_decision=dt.fit(X_train_res,y_train_res) 
from graphviz import Source 
from sklearn import tree 
Source(tree.export_graphviz(fit_decision, out_file=None, feature_names=data.columns)) 

당신이 무엇이 잘못되었는지 말해 줄래?

답변

1

X_train_res 및 y_train_res로 나뉘어져 있지 않으므로 data.columns에는 모든 features + label의 이름이 포함되어 있습니다. 정확한 기능을 얻으려면 data.columns 대신 X_train_res에서 기능 이름을 전달해야합니다. 레이블을 포함시켜야합니다. 이 경우 X_train과 y_train은 data에서 파생 된 것으로 가정합니다.

+0

덕분에 많은 감사 – pankaj

+0

@pankaj 환영합니다! :) –

관련 문제