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

习题

4.1

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

4.2

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

4.3

试编程实现基于信息熵进行划分选择的决策树算法, 并为表 4.3 4.3 4.3 中数据生成一棵决策树.
  《机器学习》西瓜书 第 3 章 编程实例

4.4

试编程实现基于基尼指数进行划分选择的决策树算法, 为表 4.2 4.2 4.2 中数据生成预剪枝、后剪枝决策树, 并与未剪枝决策树进行比较.
  《机器学习》西瓜书 第 3 章 编程实例

4.5

试编程实现基于対率回归进行划分选择的决策树算法, 并为表 4.3 4.3 4.3 中数据生成一棵决策树.
  《机器学习》西瓜书 第 3 章 编程实例

4.6

试选择 4 4 4 U C I \mathrm{UCI} UCI 数据集, 对上述 3 3 3 种算法所产生的未剪枝、预剪枝、后剪枝决策树进行实验比较, 并进行适当的统计显著性检验.
  《机器学习》西瓜书 第 3 章 编程实例

4.7

4.2 4.2 4.2 是一种递归算法, 若面临巨量数据, 则决策树的层数会很深, 使用递归方法易导致 “栈” 溢出. 试使用 “队列” 数据结构, 以参数 M a x D e p t h MaxDepth MaxDepth 控制树的最大深度, 写出与图 4.2 4.2 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*

试将决策树生成的深度优先搜索过程修改为广度优先搜索, 以参数 M a x N o d e MaxNode MaxNode 控制树的最大结点数, 将题 4.7 4.7 4.7 中基于队列的决策树算法进行改写. 对比题 4.7 4.7

  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值