《机器学习》西瓜书习题 第 4 章

习题

4.1

  试证明对于不含冲突数据 (即特征向量完全相同但标记不同) 的训练集, 必存在与训练集一致 (即训练误差为 0)的决策树.
  既然每个标记不同的数据特征向量都不同, 只要树的每一条 (从根解点到一个叶节点算一条) 枝干代表一种向量, 这个决策树就与训练集一致.

4.2

  试析使用 "最小训练误差" 作为决策树划分选择准则的缺陷.
  \(4.1\) 说明了如果数据不冲突, 可以完全拟合数据集, 这正是使用 "最小训练误差" 作为决策树划分选择准则的结果. 而这是绝对的过拟合.

4.3

  试编程实现基于信息熵进行划分选择的决策树算法, 并为表 \(4.3\) 中数据生成一棵决策树.

4.4

  试编程实现基于基尼指数进行划分选择的决策树算法, 为表 \(4.2\) 中数据生成预剪枝、后剪枝决策树, 并与未剪枝决策树进行比较.

4.5

  试编程实现基于対率回归进行划分选择的决策树算法, 并为表 \(4.3\) 中数据生成一棵决策树.

4.6

  试选择 \(4\) 个 \(\mathrm{UCI}\) 数据集, 对上述 \(3\) 种算法所产生的未剪枝、预剪枝、后剪枝决策树进行实验比较, 并进行适当的统计显著性检验.

4.7

  图 \(4.2\) 是一种递归算法, 若面临巨量数据, 则决策树的层数会很深, 使用递归方法易导致 "栈" 溢出. 试使用 "队列" 数据结构, 以参数 \(MaxDepth\) 控制树的最大深度, 写出与图 \(4.2\) 等价、但不使用递归的决策树生成算法.
  伪代码:

# 输入: 训练集 D
#      属性集 A
array[0] = [D, A]
for D, A in array:
    生成节点node;
    if D中样本全属于同一类别C:
        将node标记为C类叶节点
        continue
    elif A = 空 or D中样本在A上取值相同:
        将node标记为叶节点, 其类别标记为D中样本数最多的类
        continue
    从A中选择最优划分属性a
    for a_v in a每个取值:
        为node生成一个分支, 令D_v表示D在a上取值为a_v的样本子集
        if D_v == null:
            将分支节点标记为叶节点, 其类别标记为D中样本最多的类
            continue
        elif
            array.append([D_v, A \ {a}])
# 输出: 以node为根节点的一棵决策树

4.8*

  试将决策树生成的深度优先搜索过程修改为广度优先搜索, 以参数 \(MaxNode\) 控制树的最大结点数, 将题 \(4.7\) 中基于队列的决策树算法进行改写. 对比题 \(4.7\) 中的算法, 试析哪种方式更易于控制决策树所需存储不超出内存.
  \(4.7\) 其实已经是广度优先搜索了...
  防止内存溢出就是要让深度优先搜索不要递归过深, 广度优先搜索不要太多结点在同一个深度, 因此如果树比较长, 建议用广度优先搜索, 如果树比较宽, 建议用深度优先搜索.

4.9

  试将 \(4.4.2\) 节对缺失值的处理机制推广到基尼指数的计算中去.
\[\rho = \frac{\sum_{\boldsymbol{x}\in\tilde{D}}w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x}\in D}w_{\boldsymbol{x}}}\]
\[\tilde{p}_k = \frac{\sum_{x\in \tilde{D}_k}w_{\boldsymbol{x}}}{\sum_{x\in \tilde{D}}w_{\boldsymbol{x}}}\quad{(1 \leqslant k \leqslant |\mathcal{Y}|)}\]
\[\tilde{r}_v = \frac{\sum_{\boldsymbol{x}\in \tilde{D}^v}w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x}\in \tilde{D}}w_{\boldsymbol{x}}}\quad{(1 \leqslant v \leqslant V)}\]
  \(w_{\boldsymbol{x}}\) 是权值, 初始化为 \(1\) .
  那么推广后的基尼指数为:
\[\mathrm{Gini}(D) = 1 - \sum_{k = 1}^{|
\mathcal{Y}|}\tilde{p}_k^2\]
\[\mathrm{Gini\_index}(D, a) = \rho\sum_{v = 1}^{V}\tilde{r}_v\mathrm{Gini}(\tilde{D}^v)\]
  同时如果按某属性 \(a\) 划分, 那么某个缺失该属性的样本按照总体属性比例改变权值进入下一结点 (见书 \(\mathrm{P}88\)).

4.10

  从网上下载或自己编程实现任意一种多变量决策树算法, 并观察其在西瓜数据集 \(3.0\) 上产生的结果.

原文地址:https://www.cnblogs.com/cloud--/p/12219276.html

时间: 2024-08-07 01:44:47

《机器学习》西瓜书习题 第 4 章的相关文章

《机器学习》 西瓜书习题 第 2 章

习题 \(2.1\) 数据集包含 \(1000\) 个样本, 其中 \(500\) 个正例.\(500\) 个反例, 将其划分为包含 \(70\%\) 样本的训练集和 \(30\%\) 样本的测试集用于留出法评估, 试估算共有多少种划分方式. 如果划分要保证正例和反例一样多的话, 那么划分方式数量 \(n\) 有 \[\begin{aligned} n &= C^{500\times35\%}_{500}\times C_{500}^{500\times 35\%}\&=(C^{175}_

《机器学习》西瓜书习题 第 3 章

习题 3.1 试析在什么情况下式 \((3.2)\) 中不必考虑偏置项 \(b\) . 书中有提到, 可以把 \(x\) 和 \(b\) 吸收入向量形式 \(\hat{w} = (w;b)\) .此时就不用单独考虑 \(b\) 了. 3.2 试证明, 对于参数 \(w\), 对率回归的目标函数 \((3.18)\) 是非凸的, 但其对数似然函数 \((3.27)\) 是凸的. \[y = \frac{1}{1 + e^{-(\boldsymbol w^\mathrm T\boldsymbol x

《西瓜书》第三章,线性回归

? 使用线性回归来为散点作分类 ● 代码 1 import numpy as np 2 import matplotlib.pyplot as plt 3 from mpl_toolkits.mplot3d import Axes3D 4 from mpl_toolkits.mplot3d.art3d import Poly3DCollection 5 from matplotlib.patches import Rectangle 6 7 dataSize = 10000 8 trainRat

《西瓜书》第五章,神经网络

? 使用神经网络来为散点作分类 ● 单层感知机,代码 1 import numpy as np 2 import matplotlib.pyplot as plt 3 from mpl_toolkits.mplot3d import Axes3D 4 from mpl_toolkits.mplot3d.art3d import Poly3DCollection 5 from matplotlib.patches import Rectangle 6 7 dataSize = 2000 8 tra

《机器学习》西瓜书 第一章 绪论

机器学习绪论 基本术语 基础 模型:泛指从数据中学得的结果 数据集 data set:一组记录的集合 示例 instance/样本 sample:关于一个事件或对象的描述 属性 attribute/特征 feature:反映事件或对象在某方面的表现或性质的事项 属性值 attribute value:属性上的取值 属性空间 attribute space/样本空间 sample space:属性张成的空间即 \(n\) 个特征描述出的 \(n\) 维空间 特征向量 feature vector:

《机器学习》 --周志华版(西瓜书)--课后参考答案

<机器学习> --周志华版(西瓜书)--课后参考答案 对机器学习一直很感兴趣,也曾阅读过李航老师的<统计学习导论>和Springer的<统计学习导论-基于R应用>等相关书籍,但总感觉自己缺乏深入的理解和系统的实践.最近从实验室角落觅得南京大学周志华老师<机器学习>一书,随意翻看之间便被本书内容文笔深深吸引,如获至宝.遂决定要认真学习本书并将学习过程记录下来.感觉若以读书笔记的形式做记录未免枯燥(且网上已有大量相关内容).那就暂且将课后练习的个人思路和答案写成

【转】《西瓜书机器学习详细公式推导版》发布

转自:https://github.com/datawhalechina/pumpkin-book https://mp.weixin.qq.com/s/FcwgjS4FXfGJPZEQEz3cVw 南瓜书PumpkinBook 周志华老师的<机器学习>(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,

西瓜书第二章--模型评估与选择

2.1 经验误差与过拟合 错误率:错分样本的占比 精度:分对样本的占比,与错误率是互补的. 误差:样本真实输出与预测输出之间的差异.学习器在训练集上的误差称为训练误差或经验误差,在新样本上的误差称为泛化误差. 由于事先并不知道新样本的特征,我们只能努力使经验误差最小化: 很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点 当做所有样本的一般性质,导致泛化性能下降: 解决措施:1.优化目标加正则项 :2.earl

西瓜书与蓝皮书 思维导图(转)

周志华著<西瓜书>思维导图 第一章:https://blog.csdn.net/liuyan20062010/article/details/68489427 第二章:https://blog.csdn.net/liuyan20062010/article/details/70054668 第三章:https://blog.csdn.net/liuyan20062010/article/details/70054758 第四章:https://blog.csdn.net/liuyan20062