懒惰式决策树 常见的几种
懒惰式决策树 常见的几种
懒惰式决策树 常见的几种
懒惰式决策树 常见的几种
懒惰式决策树 常见的几种
懒惰式决策树 常见的几种
懒惰式决策树 常见的几种

image.png

基于条件概率

懒惰式决策树'/>

0.5' />则分为正类,否则为负类。

特征选择:

如果猜测中的几率与特性选择出来的几率相差无几,那么就可以抛弃该特性了。特征选取的标准是信息增益或信息增益比。

ID3算法与信息增益:(木有剪枝,只能处理离散数据)

得知特征X的信息而让输出的分类Y的不确定性减少的程度。

条件熵:

信息增益:

,D是数据集,A是特征。

计算过程:

(1)计算数据集D的经验熵:

,k为第一级特征{纹理,色泽,触感}

(2)计算条件熵:

i为第二级特征{ 清晰,模糊懒惰式决策树懒惰式决策树,稍糊 },ik为第二级特征中的第一级特征{ 纹理 / 色泽 / 触感 }

(3)

,越大越好。

C4.5算法与增益率(后剪枝,可以处理连续数据-->多叉树,特征应计算顺序)

固有值:

是第一级特征a下的第二级特征,固有值随V的个数增加而增加。

CART决策树(减少log的使用增加计算量,还可以用于回归,二叉树)

使用Gini系数替代ID3里的熵,Gini系数越小越均衡(被错分的几率低),说明该样本只属于同一类的几率(纯度)越高。

pk表示选中的样本属于k类别的几率,则这个样本被分错的概率是(1-pk)

基尼指数(基尼不纯度)= 样本被选中的几率 * 样本被分错的概率

在决策树公式中,叶子结点的取值对应的是

,现在假定被界定到叶子结点 t 的数据为

,那么在分类问题中,该叶子结点对应的取值为

里面占比最高的类型,即Majority of classes;在重回问题中,采用所有

值的平均,因为这样的话会因而

最小。

预剪枝与后剪枝:(对抗过拟合与欠拟合)

预剪枝使得这些分支没有展开,这除了增加了过拟合的风险,还明显下降了决策树的练习时间花费和测试时间。但是亚博APP,有些分支虽当前不能提升泛化性。甚至或许促使泛化性暂时减少,但在其基础上进行后续划分仍有也许造成明显提升亚博APP,因此预剪枝的这些贪心本质,给决策树带来了欠拟合的风险。

后剪枝通常比预剪枝保留更多的分支,其欠拟合风险更小,因此后剪枝的趋同性能通常优于预剪枝决策树。但后剪枝过程是从底往上裁剪,因此其练习时间花费比前剪枝要大。

(1)C4.5还有ID3算法的剪枝:

叶节点的个数是|T|亚博APP,t是树T的叶节点懒惰式决策树,该叶节点有

个样本点,其中第k类的样本点有

个亚博APP,k=1,2,...K,

为叶节点t上的经验熵。

,可得

表示模型对训练数据的分析误差。

为调整模型复杂度的参数,

表示只考量拟合程度,不考虑复杂度。

(2)CART算法的剪枝:

后剪枝,进行交叉验证。

连续值处理:(密度/甜度)

科学决策民主决策理性决策依法决策_决策树法进行决策_懒惰式决策树

连续(非离散)特征可以将特征值从小到大排列之后取

按照

进行划分 { - ,+ },从而受到该状况下的信息增益。

缺失值处理:(检测数据缺失)

(1)如何在属性值缺失的状况下进行界定属性的选取?(创建决策树的之后如何推导缺失值存在下的信息增益,选择恰当的属性)

(2)给定划分属性,若样本在该属性上的值是缺乏的,那么该怎么对这个样本进行界定?(在分类过程中有缺失值的话如何进行界定)

无缺乏样本所占比重:

无缺乏样本中第k类所占比重:

无缺乏样本中在特性a上取值为

的样本所占比重:

最后得到了推广了的公式:

懒惰式决策树_决策树法进行决策_科学决策民主决策理性决策依法决策

多变量决策树:

一般的决策树分类边界由若干个与坐标轴垂直的分段组成:

判断过程:密度 -> 含糖率 -> 密度 -> 含糖率...

普通决策树.png

多变量决策树有d个属性对应d维空间的一个数据点,对样本分类表示在坐标空间中找到不同样本之间的分类边界。

多变量决策树.png

“多变量决策树”能推动斜的界定边界,使决策树模型简化。在多变量决策树的学习过程中,不是为非叶结点寻找最优划分属性,而是进而确立适合的线性分类器:

线性分类器的多变量决策树.png

可以借助最小二乘或者嵌入神经网络进一步优化。

增量学习:根据新样本能对学得的建模进行微调适应当前局势,而不需要重新训练。如ID4,ID5R还有ITI

熵与基尼系数哪个好

和熵建模的度量方法比,基尼系数对应的偏差有很大呢?对于二类分类亚博APP,基尼系数和熵之半的曲线如下:

Gini = 2 * p * (1-p)
H = (-p * np.log2(p) - (1 - p) * np.log2(1 - p))/2.0

image.png


import numpy as np
from matplotlib import pyplot as plt 
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['simHei']
mpl.rcParams['axes.unicode_minus'] = False
 
p = np.linspace(0.0001, 0.9999 ,50)
Gini = 2 * p * (1-p)
H = (-p * np.log2(p) - (1 - p) * np.log2(1 - p))/2.0
x1 = np.linspace(0,0.5,50)
y1 = x1
x2 = np.linspace(0.5,1,50)
y2 = 1- x2
 
plt.figure(figsize=(10,5))
plt.plot(p, Gini, 'r-', label='基尼指数')
plt.plot(p, H, 'b-', label='半熵')
plt.plot(x1, y1, 'g-', label='分类误差率')
plt.plot(x2, y2, 'g-')
plt.legend()
plt.xlim(-0.01, 1.01)
plt.ylim(0, 0.51)
plt.show()

从上图可以看出,基尼系数和熵之半的曲线十分接近,因此,基尼系数可以做为熵建模的一个近似代替。而CART分类树算法就是使用的基尼系数来选取决策树的特点。为了进一步简化,CART分类树算法每次仅仅对某个特点的值进行二分,而不是多分,这样CART分类树算法建立出来的是二叉树,而不是多叉树。

Copyright © 2012-2018 亚博APP 版权所有

琼ICP备xxxxxxxx号