ID3算法,条件熵和信息增益,决策树的损失函数

ID3算法的缺陷,为什么倾向特征选项较多的特征?

ID3算法避免了搜索不完整假设空间的一个主要风险:假设空间可能不包含目标函数。
ID3算法在搜索的每一步都使用当前的所有训练样例,大大降低了对个别训练样例错误的敏感性。
ID3算法在搜索过程中不进行回溯。所以,它易受无回溯的爬山搜索中的常见风险影响:收敛到局部最优而不是全局最优。
ID3算法只能处理离散值的属性。
信息增益度量存在一个内在偏置,它偏袒具有较多值的属性。
ID3算法增长树的每一个分支的深度,直到恰好能对训练样例完美地分类,存在决策树过度拟合。
考虑一个极端情况,某个属性(特征)的取值很多,以至于每一个取值对应的类别只有一个。这样根据
H(D)−H(D|A)
可以得知后面的那一项的值为0。这样得到信息增益会很大。C4.5算法加了一个惩罚项
ID3算法,条件熵和信息增益,决策树的损失函数

条件熵和信息增益的关系,怎么理解条件熵?

熵:表示一个随机变量的复杂性或者不确定性。
假如双十一我要剁手买一件衣服,但是我一直犹豫着要不要买,我决定买这件事的不确定性(熵)为2.6。

条件熵:表示在直到某一条件后,某一随机变量的复杂性或不确定性。
我在看了这件衣服的评价后,我决定买衣服这件事的不确定性是1.2。
我在线下实体店试穿衣服后,我决定买衣服这件事的不确定性是0.9。

信息增益:表示在知道某一条件后,某一随机变量的不确定性的减少量。
上面条件熵给出了两个:
一个是看了网上的评价,此时的信息增益是Gain1=2.6−1.2=1.4
另一个是线下试穿了衣服,此时的信息增益Gain2=2.6−0.9=1.7

很显然我在线下试穿衣服之后对于决定买这件衣服的不确定度下降更多,更通俗的说就是我试穿衣服之后买这件衣服的可能性更大了。所以如果有看买家评价和线下试穿两个属性,首先应该选择线下试穿来构建内部节点。
ID3算法,条件熵和信息增益,决策树的损失函数

决策树的损失函数是什么?怎么理解?

决策树剪枝是简化已经生成的复杂的决策树,防止过拟合,使生成的决策更一般化,下面介绍决策树剪枝原理
ID3算法,条件熵和信息增益,决策树的损失函数
t是树的叶节点,Nt表示该叶节点的样本数量,Ht(T)表示结点t上的经验熵,所以右边第一项相当于对决策树的所有叶节点求熵,并以每个叶节点包含的样本数量为权重。又因为熵的含义为随机变量不确定性的度量,所以右边第一项的计算意义为模型对训练集的预测误差

损失函数公式分解:
ID3算法,条件熵和信息增益,决策树的损失函数
那么右边第二项又是什么含义,T表示树的叶节点个数,即表示树的复杂度,a为参数,相当于a越大,叶节点的个数对损失函数的影响越大,剪枝之后的决策树更容易选择复杂度较小的树,a越小,表示叶节点的个数对损失函数的影响越小,所以a的大小控制了预测误差与树的复杂度对剪枝的影响

所以当a确定时,损失函数最小的子树越大,表明与训练数据的拟合越好,但是树也越复杂,子树越小,与训练数据的拟合越差,但树的复杂度较小,避免了过拟合,提高决策树的一般性,损失函数正好表示了对两者的平衡
ID3算法,条件熵和信息增益,决策树的损失函数