设样本有m个类别,v是属性中不同值的数量
ID3算法-信息熵
信息量
分类所期望的信息量: I=−∑mi=1sislog2(sis)
信息熵(加权)
为了得到准确的分类还需要多少期望信息量,即让划分的每种属性都有相同的类别。值越小分类就越准确
E(属性A)=v∑j=1s1j+⋯+smjsI(s1j,…,smj)可理解为将该属性划分的每个节点的信息熵加权平均得到的E(属性)
信息增益
信息增益=原来的信息期望量-基于属性划分后的信息需求。基于属性划分后的信息需求即信息熵越小,信息增益就越大。故应选择这样的划分。
Gain(属性A)=I−E(属性A)C4.5算法-信息增益率
为了解决与每个划分相关联的记录太少,以致预测不可靠。把属性测试条件产生的输出也考虑进去。
分裂信息(Split Info)
SplitInfo=−k∑i=1P(vi)log2P(vi),k是划分总数,vi是子女节点样本数占比信息增益率(Gain Ratio)
GainRatio=ΔinfoSplitInfo增益率可以说明:大量的划分会导致信息增益率很小
k是属性的划分总数,若每个属性值有着相同的样本数n,则父节点有kn个样本。则P(vi)=nkn=1k,SplitInfo=−k∑i=11klog21k=log2k属性划分k越大,会导致SplitInfo越大,则GainRatio越小
CART算法-Gini不纯度
Gini不纯度(指数)
p(i|t)−节点t中属于类i的记录占比
Gini(t)=1−c−1∑i=0[p(i|t)]2,c是类别数量Gini指标的加权平均
不纯性度量的总结
不纯性度量的意义:不纯性度量的值越大,说明划分效果越差。当所有样本属于同一个类时,不纯性度量的值最小。
- Entropy(t)=−∑c−1i=0p(i|t)log2p(i|t)
- Gini(t)=1−∑c−1i=0[p(i|t)]2
- ClassificationError(t)=1−max
最大化增益\Delta:
(其中I(\cdot)是节点的不纯性度量,N是父节点上的样本总数,k是不同属性值的个数,N(v_{j})是与子女节点v_{j}关联的节点数。)
未找到相关的 Issues 进行评论
请联系 @skecis 初始化创建