【sklearn】使用sklearn实现决策树
1. 决策树介绍
决策树基于树的结构进行决策,从根节点开始,沿着划分属性进行分支,直到叶节点:
假设离散随机变量[公式]的概率分布为 P ( Y ) P(Y) P(Y),则其熵为
H ( Y ) = − ∑ P ( y ) l o g P ( y ) H(Y)=-\textstyle \sum{P(y)logP(y)} H(Y)=−∑P(y)logP(y) = − ∑ ∣ C k ∣ ∣ D ∣ l o g ∣ C k ∣ ∣ D ∣ -\textstyle \sum{ \frac{ |C_k| }{|D|} log{ \frac{ |C_k| }{|D|} } } −∑∣D∣∣Ck∣log∣D∣∣Ck∣
其中熵满足不等式
0
≤
H
(
Y
)
≤
l
o
g
∣
Y
∣
0≤H(Y)≤log|Y|
0≤H(Y)≤log∣Y∣。
在进行特征选择时尽可能的选择在属性X确定的条件下,使得分裂后的子集的不确定性越小越好(各个子集的信息熵和最小),即
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)的条件熵最小
2. 使用sklearn实现决策树
决策树可视化
# 决策树可视化
import graphviz
from sklearn.tree import export_graphviz
dot_data = export_graphviz(model,out_file=None)# 这里的model就是模型名
graph = graphviz.Source(dot_data) # 将决策树模型可视化
graph.render('决策树可视化') # 生成决策树可视化PDF文件