西瓜书课后习题——第四章

4.1

不含有特征向量相同但标记不同的冲突数据 and 决策树按照属性特征来划分,相同属性特征的样本最终会进入同一个叶子节点 >- 如果含有特征向量相同但标记不同的冲突数据 >- 必然至少存在一对样本,属性相同而分类不同,即产生了训练误差 >- 不含有特征向量相同但标记不同的冲突数据

4.2

简单的使用最小误差原理会导致机器学习产生严重的过拟合,严重影响机器学习的泛化能力。

4.3

https://blog.csdn.net/wzmsltw/article/details/51039928

信息熵(香农熵)计算公式为   $Ent(D)=-\sum_{k=1}^{|y|}p_{k}log_{2}p_{k}$  其中,$p_{k}$是当前样本集合D中第k类样本所占比例,|y|代表共有多少类样本,计算香农熵主要就是计算$p_{k}=\frac{第k类样本的数量}{样本总数}$ ,而第k类样本的数量可以通过建立字典来统计,样本总数就简单了。

香农熵的实现代码:

def calcShannoEnt(dataset):
    from math import log
    total_number = len(dataset)
    label_dict = {}
    for data_line in dataset:
        label = data_line[-1]
        label_dict[label] = label_dict.get(label,0) + 1
    #计算香农熵
    ShannoEnt = 0
    for key in label_dict.keys():
        prob = float(label_dict[key]) / total_number
        ShannoEnt -= prob * log(prob, 2)
    return ShannoEnt

猜你喜欢

转载自www.cnblogs.com/zwtgyh/p/10713179.html