机器学习之决策树

决策树的定义

决策树:一种对实例进行分类的树形结构,通过多层判断区分目标所属类别
本质:通过多层判断,从训练数据集中归纳出一组分类规则

优点:

  • 计算量小,运算速度快
  • 易于理解,可清晰查看各属性的重要性

缺点:

  • 忽略属性间的相关性
  • 样本类别分布不均匀时,容易影响模型表现

信息熵

信息熵(entropy):是度量随机变量不确定性地指标,熵越大,变量地不确定性就越大。假定当前样本集合D中第k类样本所占的比例为pk,则D的信息熵为:
在这里插入图片描述
在这里插入图片描述

目标:划分后样本分布不确定性尽可能小,即划分后信息熵小,信息增益大

决策树求解

假设给定训练数据集
D = {(x₁,y₁),(x₂,y₂),…,(xN,yN)}
其中,xi =(xi(1),xi(2),…,xi(m))T为输入实例,m为特征个数,
yi ε{1,2,3,…,K}为类标记,i = 1,2,…,N,N为样本容量。

目标:根据训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。

问题核心:特征选择,每一个节点,应该选用哪一个特征。

三种求解方法:ID3、C4.5、CART

ID3:利用信息熵原理选择信息增益最大的属性作为分类属性,递归地拓展决策树地分枝,完成决策树地构造
在这里插入图片描述

决策树与逻辑回归对比

在这里插入图片描述
在这里插入图片描述

代码实现

#模型训练
from sklearn import tree
dc_tree = tree.DecisionTreeClassifier(
    criterion = 'entropy', min_samples_leaf = 5)
    dc_tree.fit(X,y)
)
# 可视化决策树:
tree.plot_tree(dc_tree,filled = 'True'
feature_names = ['SepalLength','SepalWidth','PetalLength','PetalWidth'],
class_names = ['setosa','versicolor','virginica'])
posted @ 2020-10-19 15:50  samuelzhou  阅读(27)  评论(0)    收藏  举报