用“挑西瓜”讲透《机器学习》第四章-决策树
《机器学习》第4章·通俗解读 | 决策树像做选择题一样做判断决策树是机器学习里最像人类思维的模型之一。它的思路很简单遇到一个问题一步步问“是或否”最终走到一个答案。就像医生看病先问“发烧吗” → 是再问“咳嗽吗” → 是 → 可能是感冒……1. 决策树长什么样还是用西瓜举例。你要判断一个瓜是不是好瓜。你可能这样问自己色泽是什么青绿 → 再看根蒂乌黑 → 再看敲声浅白 → 大概率不是好瓜根蒂怎么个蜷法蜷缩 → 好瓜稍蜷 → 再听敲声硬挺 → 坏瓜把这些问题串起来画成一个树状图就是决策树。树的顶部叫根结点中间叫内部结点每个都是一个判断题底部叫叶结点最终答案。从根走到叶的过程就是对瓜的一次完整判断。2. 怎么构建一棵决策树—— 分而治之构建决策树的核心思想找一个最“好”的属性来作为当前的判断问题。比如现在有一堆瓜你要先问一个什么问题问“色泽”还是问“根蒂”还是问“敲声”哪个问题能最好地把好瓜和坏瓜分开就先问哪个。这就是划分选择。3. 怎么判断哪个属性最好—— 三种常用标准方法一信息增益ID3算法通俗理解问完一个问题后数据会变“纯”多少变得越纯说明这个问题越有用。“纯”的意思是一堆瓜里要么全是好瓜要么全是坏瓜不要混在一起。信息增益 原来的混乱程度 - 问完问题后的混乱程度。增益越大说明这个问题越值得先问。但是存在一个问题信息增益偏爱取值多的属性。比如“编号”这种每个瓜都不同的属性信息增益会很大因为每个分支只有一个瓜非常纯但这种树没意义不能泛化。所以需要改进。方法二增益率C4.5算法给取值多的属性“打个折”避免偏心。先算一个“固有值”取值越多固有值越大然后用信息增益除以固有值得到增益率。C4.5不是直接选增益率最大的而是先找信息增益高于平均的再从中选增益率最高的既防偏心又不失效果。方法三基尼指数CART算法基尼指数反映的是从一堆瓜里随机抽两个它们类别不同的概率。基尼指数越小说明数据越纯。选属性时选划分后基尼指数最小的那个。三种方法各有千秋实际中差别不大随便选一种都能用。4. 剪枝防止树长得太“茂密”如果你让树一直长它可能会把训练数据里的“意外”也当成规律这就是过拟合。比如某个好瓜刚好颜色浅树就记住了“颜色浅也是好瓜”结果新来一个浅白瓜它可能就判错了。剪枝就是砍掉一些不必要的树枝。预剪枝边建边剪每要分一个新分支前先问“分了之后在验证集上的表现会变好吗”如果不会就不分把当前结点直接当叶子。好处快不容易过拟合。坏处只盯着眼前一步的收益放弃了可能带来更大收益的深层分支。后剪枝建完再剪先让树完整长到最大然后自底向上看每个内部结点“把这个子树换成叶子取多数类验证集表现会变好吗”如果会就剪。好处比预剪枝保留更多分支泛化能力通常更好。坏处慢要先建完整棵树。5. 处理连续值和缺失值连续值怎么办比如“密度”是连续数字不能直接问“密度等于多少”处理办法二分法。把连续值排序取相邻两数的中点作为候选切分点然后像离散属性一样比较信息增益选最好的那个切分点。比如密度有0.4、0.5、0.6候选切分点就是0.45、0.55。问“密度 ≤ 0.45”就是一个二分问题。注意连续属性可以被重复使用比如父结点用了“密度≤0.5”子结点还可以再用“密度≤0.3”。缺失值怎么办有些样本某个属性值缺失比如根蒂脱落。处理思路计算信息增益时只考虑不缺失的样本然后按比例折算划分时如果样本在该属性上缺失就以不同概率分到所有分支概率 该分支的样本比例C4.5就是这样做的。6. 多变量决策树斜着切一刀传统的决策树每次只问一个属性如“色泽青绿”所以分类边界是平行于坐标轴的直线或折线。如果真实的分类边界是斜线传统决策树需要用很多段折线去逼近树会很大。多变量决策树允许结点问多个属性的组合比如“0.5×色泽 0.3×根蒂 0.6”。这样就能用一条斜线直接分开树会小很多也更简洁。但多变量决策树的每个结点相当于训练一个小分类器计算量更大。 第四章总结背下这5句就够了决策树 一步一步问“是/否”问题最后走到答案划分属性时常用信息增益、增益率、基尼指数剪枝预剪枝/后剪枝用来防止过拟合连续值用二分法处理缺失值用概率分配处理多变量决策树可以斜着切边界更灵活树更小 下章预告第五章讲神经网络——模仿人脑神经元的模型。你会学到什么是神经元、什么是BP算法误差反向传播、深度学习为什么这么火。