1. 决策树算法入门:从西瓜分类说起
第一次听说决策树能挑西瓜时,我正蹲在水果摊前纠结。老板拍着胸脯说"包甜",结果回家切开是个白瓤。这事让我意识到,光靠人眼判断西瓜品质确实不靠谱。后来接触机器学习才发现,早在上世纪80年代,科学家就用决策树算法解决这类分类问题了。
决策树就像我们日常做决定的过程。比如判断西瓜好坏,你会先看纹理是否清晰?再敲敲听声音?每个判断节点都像树的分叉,最终到达"买"或"不买"的结论。这种白盒模型最吸引人的是它的可解释性——不像神经网络像个黑箱,决策树的每个判断步骤都清晰可见。
三种经典算法各有所长:ID3用信息增益找最佳划分属性,简单直接但容易过拟合;C4.5引入增益率改进这个问题;CART则采用基尼指数,还能处理回归任务。有次我用ID3给实验室挑西瓜,结果模型死磕"触感"特征,因为训练集里硬滑的瓜都甜。直到加入更多样本,改用C4.5才解决这个尴尬。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 解密决策树核心原理
2.1 信息熵:纯度的度量尺
记得初学信息熵时,我总想象成"意外程度"。一箱全是好瓜(纯度100%),熵值为0;好坏参半时,熵值最高。数学表达很简单:
python复制import numpy as np
def entropy(p):
return -p * np.log2(p) - (1-p) * np.log2(1-p)
但实际计算要考虑多分类情况。有次处理包含3种品质的西瓜数据,忘记修改公式导致结果完全错误。教训是:基础公式要活学活用。
2.2 信息增益 vs 增益率
ID3的信息增益有个致命弱点——会偏爱取值多的属性。试想用"编号"当特征,每个样本编号唯一,信息增益最大但毫无意义。这就引出C4.5的增益率:
code复制增益率 = 信息增益 / 固有值(intrinsic value)
固有值就像属性的"身份证号",取值越多值越大。不过增益率又可能偏爱取值少的属性,所以C4.5采用折中方案:先选信息增益高于平均的属性,再从中挑增益率最高的。
2.3 基尼指数:CART的选择
CART采用的基尼指数计算更简单:
python复制def gini(p):
return 1 - p**2 - (1-p)**2
它表示随机抽两个样本,类别不一致的概率。有
