Python 如何获得可理解的DecisionTreeClassifier输出?

Python 如何获得可理解的DecisionTreeClassifier输出?,python,scikit-learn,decision-tree,Python,Scikit Learn,Decision Tree,2个问题,我已经做了几个小时的研究,但没有解决。当我使用“tree.plot_tree”(我的_模型)和两个级别制作DecisionTreeClassifier tree时,我可以清楚地看到树。变量表示为X[55],我还没有找到如何用变量名替换X[55],比如“temperature”“。当我将级别设置为3级或更高,并且绘图无法读取时。使其变大只会使模糊的字符变大,但仍然模糊 下面是一些代码: X = df.drop ( ['target_var'], axis = 1 ) y = df [ [

2个问题,我已经做了几个小时的研究,但没有解决。当我使用“tree.plot_tree”(我的_模型)和两个级别制作DecisionTreeClassifier tree时,我可以清楚地看到树。变量表示为X[55],我还没有找到如何用变量名替换X[55],比如“temperature”“。当我将级别设置为3级或更高,并且绘图无法读取时。使其变大只会使模糊的字符变大,但仍然模糊

下面是一些代码:

X = df.drop ( ['target_var'], axis = 1 )
y = df [ [ 'target_var' ] ]
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)

model = tree.DecisionTreeClassifier( max_depth = 3 )

model.fit(X_train, y_train)
y_predict = model.predict(X_test)
accuracy_score(y_test, y_predict)

tree.plot_tree(model )

通常情况下,您需要使用rc参数值(如figure size和font size)更改matplotlib绘图的大小。如果你想放大和缩小很多,你也可以改变dpi

import matplotlib as mpl
mpl.rcParams['figure.dpi'] = 300
mpl.rcParams['figure.figsize'] = [14, 10] # 14 by 10 inch
mpl.rcParams['font.size'] = 15
至于设置变量名,您可以使用feature_names参数来完成,只需将名称作为字符串列表传递即可。

这还将更改使用这些值的任何内容,其中应包括sklearn库。