决策树的生成说白了就是数据不断分裂的递归过程,每一次分裂,尽可能让类别一样的数据在树的一边,当树的叶子节点的数据都是一类的时候,则停止分裂
问题:分割的条件是什么?
如下图所示,那种分割方式更好:怎样衡量?纯度
对于分类问题: 常用的分割条件有 Gini系数,信息增益 信息增益率;分割的好坏一般采用 纯度进行度量。
对于回归问题:常用的分割条件是MSE
基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标。
基尼系数最大为“1”,最小等于“0”。基尼系数越接近0表明收入分配越是趋向平等。国际惯例把0.2以下视为收入绝对平均,0.2-0.3视为收入比较平均;0.3-0.4视为收入相对合理;0.4-0.5视为收入差距较大,当基尼系数达到0.5以上时,则表示收入悬殊。
基尼指数最早由意大利统计与社会学家Corrado Gini在1912年提出。
其具体含义是指,在全部居民收入中,用于进行不平均分配的那部分收入所占的比例。基尼系数最大为“1”,最小等于“0”。前者表示居民之间的收入分配绝对不平均,即100%的收入被一个单位的人全部占有了;而后者则表示居民之间的收入分配绝对平均,即人与人之间收入完全平等,没有任何差异。但这两种情况只是在理论上的绝对化形式,在实际生活中一般不会出现。因此,基尼系数的实际数值只能介于0~1之间,基尼系数越小收入分配越平均,基尼系数越大收入分配越不平均。国际上通常把0.4作为贫富差距的警戒线,大于这一数值容易出现社会动荡。
基尼指数通常把0.4作为收入分配差距的“警戒线”,根据黄金分割律,其准确值应为0.382。一般发达国家的基尼指数在0.24到0.36之间,美国偏高,为0.52。中国国家统计局公布基尼系数2012年为0.474,2013年为0.473,2014年为0.469,2015年为0.462,2016年为0.465。
公式
Gini系数越小,代表D集合中的数据越纯,所有我们可以计算分裂前的值
在按照某个维度对数据集进行划分,然后可以去计算多个节点的Gini系数:
尝遍百草,哪根草最甜,就选哪根!
第一步选用 petal length<=2.45 进行分割
分割前的样本:
此时的样本数量为150 分了三类[50,50,50]
此时的基尼系数1-[(50/150)**2+(50/150)**2+(50/150)**2]=0.667
定义为setosa类别
根据判定条件
为True :
分割得到的样本中共50个,
基尼系数1-[(0/100)**2+(50/100)**2+(50/100)**2]=0.5
分割的这50个样本类别为setosa 所以定义为setosa类
False :
分割得到的样本中共100个,
基尼系数1-[(50/50)**2+(0/50)**2+(0/50)**2]=0
分割的这100个样本各类别各占50 ,类别为versicolor
第二步 对上一步为 False de 100个样本,
选用 petal weight<=1.75 进行分割
根据判定条件
为True :
分割得到的样本中共54个,
基尼系数1-[(0/54)**2+(49/54)**2+(5/50)**2]=0.168
分割的这54个样本各类别各中49个为versicolor ,类别为versicolor
False :
分割得到的样本中共46个,
基尼系数1-[(0/46)**2+(1/46)**2+(45/46)**2]=0.0425
分割的这46个样本各类别各中45个为virginica,类别为virginica
熵的概念:
在信息论里熵叫作信息量,即熵是对不确定性的度量。从控制论的角度来看,应叫不确定性。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。他把信息定义为“用来消除不确定性的东西”。在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。还是举例说明,假设Kathy在买衣服的时候有颜色,尺寸,款式以及设计年份四种要求,而North只有颜色和尺寸的要求,那么在购买衣服这个层面上Kathy由于选择更多因而不确定性因素更大,最终Kathy所获取的信息更多,也就是熵更大。所以信息量=熵=不确定性,通俗易懂。在叙述决策树时我们用熵表示不纯度(Impurity)。
熵 公式:
J 样本类别
信息增益计算公式:
信息增益=分割前的信息熵 - 分割后的信息熵
一个分裂导致的信息增益越大,代表这次分裂提升的纯度越高(选用那个分裂的依据)
熵和交叉熵的区别
熵是反应一个组中的不确信性。是一个组中类别的不确定性。
交叉熵是反应类别之间的不确定性。是y_hat跟y是否一样还是不一样。
首先看二者的定义:
上面公式我们查看不同的部分:即-lnx和1-x的区别
将 f(x) = −lnx 在 x = 1 处进行一阶泰勒展开(忽略高阶无穷小)
因此,熵可近似转化为:
基尼指数是信息熵中﹣logP 在P = 1处一阶泰勒展开后的结果!所以两者都可以用来度量数据集的纯度,用于节点描述决策树的纯度!
本质:通过信息增益率防止分的叉过多
对于多叉树,如果不限制分裂多少支,一次分裂就可以将信息熵降为0,比如ID
如何平衡分裂情况与信息增益?
信息增益率:信息增益 除以 类别本身的熵
我们发现类别越多 信息增益率越小
用于回归树