【周志华机器学习】 西瓜书吃瓜教程 学习笔记总结Task03

第四章 决策树

4.1 基本流程

决策树的生成是一个递归过程:

 4.2 划分选择

关键在于从A中选择最优划分属性a*使结点的“纯度”purity越高

信息熵 information entropy:度量样本集合纯度最常用的一种指标。

假定当前样本集合中第k 类样本所占的比例为也(k = 1,2,… ,\left | y \right | ) , 则 D 的信息嫡定义为

 Ent(D)的值越小,则D的纯度越高.

信息增益 information gain:a* = argmaxGain (P,a)属性a 对样本集D 进行划分所获得的

但信息增益准则对可取值数目较多的属性有所偏好,故使用如下来选择最优划分属性。

增益率 gain ratio:

其中属性 a 固有值 intrinsic value:

C4.5决策树算法: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的
CART决策树:使用 “基尼指数 "(Gini index)来选择划分属性, 选择那个使得划分后基尼指数最小的属性作为最优划分属性,即 a* = arg min Gini_index(P, a).

基尼指数Gini(D): 反映了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率

4.3 剪枝处理
剪枝 (pruning) 是决策树学习算法对付“过拟合”的主要手段,决策树剪枝的基本策略有 预剪枝prepruning 后剪枝post- pruning
预剪枝prepruning: 指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。

后剪枝post- pruning: 先从训练集生成一棵完整的决策树, 然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能80带来决策树泛化性能提升,则将该子树替换为叶结点。
一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但训练时间开销就会远大于未剪枝和预剪枝。

 4.4 连续与缺失值

二分法(bi-partition)对连续属性进行处理,对连续属性见 我们可考察包含n - 1 个元素的候选划分点集即把区间依看\left [a^{i},a^{i+1} \right )的中位点作为候选划分点,然后就可像离散属性值一样来考察这些划分点

Q:(1) 如何在属性值缺失的情况下进行划分属性选择?

   给定训练集D 和属性血 令 \widetilde{D}表 示 D 中在属性a 上没有缺失值的样本子集,显然我们仅可根据\widetilde{D}来判断属性a的优劣,每个样本x出赋予一个权重w_{x},并定义

得信息增益的计算式: 

Q:(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
   若样本x在划分属性a 上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为w_{x}.若样本x在划分属性a上的取值未知,则将x 同时划入所有子结点,且样本权值在与属性值a^{v} 对应的子结点中调整为\widetilde{^{r_{v}}} \cdot ^{w_{x}}直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去.
​​​​​​​

4.5 多变量决策树  

决策树所形成的分类边界有一个明显的特点: 轴平行(axis-parallel),即它的分类边界由若干个与坐标轴平行的分段组成。 

“多变量决策树"multivariate decision tree: 能实现这样的“斜划分”甚至更复杂划分的决策树.以实现斜划分的多变量决策树为例,在此类决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试,即每个非叶结点是一个形如\sum_{i=1}^{d}\omega _{i}a_{i}=t的线性分类器。

与传统的“单变量决策树 " univariate decision tree 不同,在多变量决策树的学习过程中不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。
### 关于周志华机器学习》(西瓜)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^2]。 #### 性能度量指标——P-R图及其应用 为了更直观地展示各类分类器的工作特性,通常会绘制精确率-召回率(Precision-Recall, P-R)曲线来辅助分析。当面对多组实验结果时,可以通过观察这些图形相互间的位置关系来进行优劣评判:如果某条曲线始终位于另一条之上,则表明前者具有更好的整体表现;而对于那些存在交点的情况,则需进一步计算各自下方区域面积大小作为判断依据之一。此外,“平衡点”作为一种特殊的性能测度,在特定条件下也能提供有价值的参考信息[^3]。 #### 偏差-方差分解理论简介 该理论为理解学习算法的一般化能力提供了框架性的指导思路,通过对平均测试错误率实施拆分操作,可以深入剖析导致过拟合现象背后的原因所在,并据此探索改进措施的方向。具体而言,总误差由三部分构成——不可约减误差点(即噪声)、平方形式表达出来的偏差项以及线性累加而成的方差成分[^4]。 ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import precision_recall_curve, auc def evaluate_model_performance(model, X, y): """ 计算并返回PR曲线下面积(AUC),用于量化模型的整体性能。 参数: model (object): 已经训练好的分类模型实例。 X (array-like of shape (n_samples, n_features)): 测试特征矩阵。 y (array-like of shape (n_samples,)): 对应的真实标签向量。 返回: float: PR AUC得分。 """ # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 使用训练集拟合模型 model.fit(X_train, y_train) # 获取验证集中各观测对应的概率估计值 probas_pred = model.predict_proba(X_val)[:, 1] # 绘制PR曲线并求得AUC分数 precisions, recalls, _ = precision_recall_curve(y_val, probas_pred) pr_auc_score = auc(recalls, precisions) return pr_auc_score ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值