El árbol de decisiones en sklearn se usa a menudo para el aprendizaje automático, como la clasificación, pero realmente quiero visualizar sus resultados, no hay mucho que hablar sobre el código del árbol de clasificación :
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
##准备数据
X=[np.random.rand(5) for i in range(200)]
y=[int(np.random.rand()*5) for i in range(200)]
feature_names=['A','B','C','D','E']
class_names=['qingtong','huangjin','baijin','zuanshi','xingyao']
#训练
tree=DecisionTreeClassifier(max_depth=3,random_state=234)
tree.fit(X,y)
##导出dot文件
export_graphviz(
tree,
out_file="C:\\honor_tree.dot",
feature_names=feature_names,
class_names=class_names,
rounded=True,
filled=True
)
Después de ejecutarse correctamente, aparecerá un archivo de puntos: honor_tree.dot
Para mostrar los gráficos en este archivo, debe instalar graphviz
Esto tiene una versión de Windows, que es compatible con muchos sistemas.
Descargué la versión ganadora, solo son unos pocos megabytes
Después de que la instalación sea exitosa, la imagen se puede regenerar en la línea de comando:
C:\>dot -Tpng honor_tree.dot -o honor_tree.png
El resultado generará una imagen llamada honor_tree.png, el efecto es el siguiente:
Por supuesto, también se puede convertir en un árbol de regresión :
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.tree import export_graphviz
##准备数据
X=[np.random.rand(5) for i in range(200)]
y=[np.random.rand()*50 for i in range(200)]
feature_names=['A','B','C','D','E']
#训练
tree=DecisionTreeRegressor(max_depth=3,random_state=234)
tree.fit(X,y)
##导出dot文件
export_graphviz(
tree,
out_file="C:\\honor_tree_re.dot",
feature_names=feature_names,
rounded=True,
filled=True
)
Genere imágenes de manera similar:
C:\>dot -Tpng honor_tree_re.dot -o honor_tree_re.png
Los resultados son los siguientes: