机器学习算法一:决策树

(1)分类

分类树:对离散变量做决策树;

回归树:对连续变量做决策树;

(2)学习过程

★特征选择:指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标 准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的 决策树算法;

★决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数 据集不可分则停止决策树停止生长。

★剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。 剪枝技术有预剪枝后剪枝两种;训练集用来决定树生成过程中每个结点划分所选择的属性;验证集在预剪枝中用于决定该结点是否有必要依据该属性进行展开,在后剪枝中用于判断该结点是否需要进行剪枝。

  ◆预剪枝:在决策树生成的过程中,决定该节点是否有必要按照该属性进行展开

  ◆后剪枝:在决策树完成后,自底向上判断结点是否需要进行剪枝。

1 预剪枝:

(1)每一个结点所包含的最小样本数目,例如10,则该结点总样本数小于10时,则不再分;

(2)指定树的高度或者深度,例如树的最大深度为4;

(3)指定结点的熵小于某个值,不再划分。

2 后剪枝:

总体思路:由完全树T0开始,剪枝部分结点得到T1,再次剪枝部分结点得到T2...直到剩下树根的树Tk;在验证数据集上对这k个树分别评价,选择损失函数最小的树Ta。

生成决策树算法示意:

特征选择:根据不同的划分依据有多种特征选择的可能;

量化划分方法有多种,例如:信息论度量信息分类,基于信息论的决策树算法有ID3(根据信息论的信息增益评估和选择特征)、CART(用信息增益率来选择属性)、C4.5(Gini指数(选Gini指数最小的特征s))

●ID3:根据信息论的信息增益评估和选择特征,每次选择信息增益最大的特征做判断模块。

信息熵(度量样本集合纯度):Ent(D)值越小,纯度越高;

Ent(D)=-\sum_{k=1}^{|y|}P_{k}*log_{2}P_{k}

信息增益(得知特征X的信息后,而使得Y的不确定性减少的程度):信息增益越大,则意味着使用属性a划分所获得的纯度提升越大;

Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^{_{v}}|}{|D|}*Ent(D^{_{v}})=Ent(D)-Ent(D/a)=I(D,a)

Ent(D/a)表示特征a被固定时的条件熵;I(D,a)表,a之间的互信息;D为所有样本数量,Dv为其特征类别v的样本数量。

计算实例:

温度

(Feature)

湿度(Feature)

风速(Feature)

活动label

炎热

取消

炎热

取消

适中

取消

寒冷

正常

进行

适中

正常

进行

✮基于Sklearn框架的决策树算法代码使用:

 

●C4.5:根据信息论的信息增益率评估和选择特征;C4.5 并没有直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的;

Gain_{ratio}(D,a)=\frac{Gain(D,a)}{IV(a)}

  IV(a)=-\sum_{v=1}^{V}\frac{|D_{v}|}{|D|}log\frac{|D_{v}|}{|D|}=H(a)

计算实例:

温度

(Feature)

湿度(Feature)

风速(Feature)

活动(label)

炎热

取消

炎热

取消

适中

取消

寒冷

正常

进行

适中

正常

进行

●CART:根据信息论的基尼指数(Gini index评估和选择特征;选择基尼指数最小的属性作为最优划分属性。

  

计算实例:

温度

(Feature)

湿度(Feature)

风速(Feature)

活动(label)

炎热

取消

炎热

取消

适中

取消

寒冷

正常

进行

适中

正常

进行

Gini(D)=\sum_{k=1}^{|y|} \sum_{k'\neq k}^{}p_{k}p_{k'}=1-\sum_{k=1}^{|y|}p_{k}^{2}

Gini_{index}(D,a)=\sum_{v=1}^{V}\frac{|D^{v}|}{D}*Gini(D^{v})

✮基于Sklearn框架的决策树算法代码使用:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值