课程来源 唐宇迪老师的python数据分析与机器学习实战
决策树
决策树介绍
根节点:第一个选择点; #根节点放在第一个选择点,是因为其分类效果更好
非叶子节点与分支:中间过程;
叶子节点:最终的决策结果。(往下无分化的节点叫叶子节点)
节点选择衡量标准
我们希望通过节点分支后的数据类别熵值小!!选择A作为节点!
为什么呢?
熵是表示随机变量不确定性的度量,熵值越大代表变量取值越混乱。
pi表示概率,由公式可知概率pi越大,对应logpi越接近0,乘积越小。A集合中的等于某个数的概率更大,H(X)即熵值更小。因此如果选择A作为节点,那么往下走的分类情况如A集合所示,是我们希望看到的结果。
根据信息增益,确定根节点,中间节点的次序。先找信息增益最大的做根节点,再在剩下的里面找最大的做第二节点,依次往下。(信息增益实际就是找熵值下降最大的特征)
如下是信息增益的计算步骤:
现在我们发现一个问题:假如每个样本都有一个ID编号,如果把ID编号当做一个特征,那么每一个样本只对应一个YES or NO,熵值一定是1/140 + 1/140 + … +1/140 = 0的,这样ID特征就是信息增益最大的。但是这样决策肯定是不行的,这就是ID3算法(即如上算法)的缺点。为了解决这个问题,我们提出信息增益率的概念。
信息增益率的计算方法:
假如ID(样本数)有14个,那么
自身熵即=1/14log1/14 * 14 = log1/14 (一个挺大的数)
信息增益率 = 信息增益/自身熵
GINI系数跟熵的判定一致,Pk概率越接近1,GINI系数越接近0,即越小。因此选GINI系数的信息增益最大的做第一节点。
连续值离散化
特征有连续变量,怎么办?
贪婪算法,二分类 (