可以自己做网站这么做,0基础自学做网站,小猪导航,近一周的热点新闻目录
第一代裁判#xff1a;ID3 与信息增益的 “偏爱”
第二代裁判#xff1a;C4.5 用 “增益率” 找平衡
第三代裁判#xff1a;CART 的 “基尼指数” 新思路
遇到连续值#xff1f;先 “砍几刀” 再说
给决策树 “减肥”#xff1a;剪枝的学问
动手试试#xff1…目录
第一代裁判ID3 与信息增益的 “偏爱”
第二代裁判C4.5 用 “增益率” 找平衡
第三代裁判CART 的 “基尼指数” 新思路
遇到连续值先 “砍几刀” 再说
给决策树 “减肥”剪枝的学问
动手试试决策树的 “调参” 小技巧
最后想说 决策树的 “成长记”从分错到分巧的进化 上次琢磨决策树时总觉得 “选哪个特征当节点” 像猜谜 —— 直到今天才算摸到了门道。原来决策树也在 “进化”从最初的 ID3 到后来的 C4.5、CART每一步都在解决上一代的小麻烦。这就像给分类问题找裁判一代比一代更懂 “公平” 和 “高效”。
第一代裁判ID3 与信息增益的 “偏爱” 最早的决策树算法 ID3选节点靠的是 “信息增益”—— 哪个特征能让数据的 “混乱度”熵降得最多就选哪个。这思路挺直接比如用 “天气” 划分打球数据时信息增益最大那就让 “天气” 当根节点。 但 ID3 有个小毛病特别喜欢 “选项多” 的特征。比如给数据加个 “编号” 特征1 到 7 号每个编号对应唯一结果用它划分时信息增益肯定最大 —— 但这显然没意义因为它根本没抓住规律纯属 “抬杠式划分”。就像裁判偏爱话多的选手哪怕说的都是废话。
第二代裁判C4.5 用 “增益率” 找平衡 为了治 ID3 的 “偏爱”C4.5 算法站了出来。它不直接用信息增益而是用 “信息增益率”—— 信息增益除以这个特征自身的熵。 这么一来“选项多” 的特征比如编号自身熵很高就算信息增益大增益率也可能变低从而被 “劝退”。比如用 “天气” 和 “编号” 比天气的自身熵低信息增益率反而更突出这就避免了 “抬杠式划分”。相当于裁判学会了 “听质量” 而非 “听数量”更公平了。
第三代裁判CART 的 “基尼指数” 新思路 后来又出现了 CART 算法它换了个衡量标准 ——“基尼指数”。这东西说的是从数据里随机抽两个样本类别不一样的概率。概率越低说明数据越纯比如全是 “去打球” 或全是 “不去”。 和熵相比基尼指数计算更简单不用算对数但效果类似纯度越高基尼指数越小。CART 用它来选节点相当于裁判换了把更轻便的 “尺子”效率更高了。
遇到连续值先 “砍几刀” 再说 现实中的数据不全是 “晴天 / 阴天” 这种离散值更多是 “温度 30 度”“收入 125K” 这种连续数。决策树怎么处理呢答案是把连续值变成 “选择题”。 比如 “收入” 这个特征有 60K、70K、85K… 我们可以用 “贪婪算法” 找分界点先把所有值排序然后在每两个相邻值中间 “砍一刀”比如 60 和 70 之间砍成 “≤65” 和 “65”算每个分界点的信息增益或基尼指数选最好的那个。这其实就是把连续值 “离散化”让决策树能看懂。
给决策树 “减肥”剪枝的学问 决策树有个坏毛病学太细容易 “钻牛角尖”。比如把训练数据里的每个小例外都当成规律结果换个新数据就错得离谱过拟合。这时候就得 “剪枝”—— 给树瘦瘦身。
预剪枝是 “边长边剪”比如限制树的最大深度最多问 5 个问题就得出结论或者规定叶子节点至少得有 10 个样本才继续分。就像家长提前说 “不许挑食”从一开始就避免坏习惯。
后剪枝是 “长完再剪”先让树长得枝繁叶茂再回头看哪些分支是 “多余的”。判断标准是 “损失函数”自身的基尼指数或熵加上 α 乘以叶子节点数。α 越大越鼓励少用叶子简化树α 越小越允许复杂但精准的划分。就像考完试回头改错题把没必要的步骤删掉。 比如有个分支剪枝前在验证集上正确率 57%剪枝后反而升到 71%—— 显然这分支是 “画蛇添足”该剪
动手试试决策树的 “调参” 小技巧 实际用决策树时代码里有几个关键参数得留意 criterion选 “gini”基尼指数还是 “entropy”信息熵看数据特点 max_depth树别太深5-20 层通常够了太深容易过拟合 splitter“best” 是找最优切分点“random” 是随机找后者快但可能稍欠精准。 比如用决策树预测泰坦尼克号幸存者时调对这些参数就能让模型更准 —— 毕竟不是越复杂的树越能看透 “生存规律”。
最后想说 决策树的进化其实是人类在教机器 “怎么更聪明地分类”。从 ID3 的直接到 C4.5 的平衡再到 CART 的高效每一步都在逼近 “简单又准确” 的目标。就像我们自己做决策既要抓住重点又不能钻牛角尖 —— 原来机器学习和生活智慧道理相通。 下次再用决策树时或许会忍不住想这一步划分是 ID3 会喜欢还是 C4.5 更认可这种 “与算法对话” 的感觉还挺奇妙的。