参考书:机器学习(周志华)
几个重要概念
信息熵
随机事件未按照某个属性的不同取值划分时的熵减去按照某个属性的不同取值划分时的平均熵。
表示事物的混乱程度,熵越大表示混乱程度越大,越小表示混乱程度越小。
对于随机事件,如果当前样本集合D中第k类样本所占的比例为,那么D的信息熵为:
信息增益——ID3
考虑到不同的分支结点所包含的样本数不同,我们给分支结点赋予权重|| / ||,可计算出用属性a对样本集D进行划分所获得的信息增益:
信息增益率——C4.5
信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,我们考虑属性a的取值数目,
基尼系数——CART
数据集D的纯度可用基尼值来度量,它反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此,Gini(D)越小,数据集D的纯度越高
属性a的基尼指数定义为:
我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。
例题
其实主要还是背公式+计算不出错
,步骤基本上都差不多
(20年期末)设训练集如下表所示,请用经典的 ID3 算法 完成其学习过程。
题目还给出了:
使用ID3算法就只需要计算信息增益就好了,计算步骤如下:
STEP1
第一步需要计算出集合D的总信息熵
在决策树学习开始时,根结点包含D中的所有样例,其中正例占 = = ,反例占 = ,于是根结点的信息熵为:
Ent(D) = -( log2 + log2 ) = 1
STEP2
接下来计算每个属性的信息熵
属性:包含(T)和(F),各占
(T):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.9183
(F):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.9183
因此Ent() = Ent() +Ent() = 0.9183
属性:包含(T)和(F),分别占和
(T):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 1
(F):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 1
因此Ent() = Ent() +Ent() = 1
STEP3
最后计算每个属性的信息增益
Gain(D,)=Ent(D) – Ent() = 1 – 0.9183 = 0.0817
Gain(D,)=Ent(D) – Ent() = 1-1 = 1
选择信息增益大的作为第一个属性,即选择属性 对根节点进行扩展
(19年)下表给出外国菜是否有吸引力的数据集,每个菜品有 3 个属性“温度”、“口味”,“份量”,请用决策树算法画出决策树(根据信息增益)。并预测 dish= {温度=热,口味=甜,份量=大} 的一道菜,是否具有吸引力。
这题也是根据信息增益选择属性,和上一题步骤一样
STEP1
第一步计算出集合D的总信息熵
根结点包含10个样例,其中正例占 = ,反例占 = ,于是根结点的信息熵为:
Ent(D) = -( log2 + log2 ) = 1
STEP2
接下来计算每个属性的条件熵
温度属性:包含(冷)和(热),各占
(冷):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.971
(热):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.971
因此Ent(温度) = Ent() +Ent() = 0.971
份量属性:包含(大)和(小),各占
(冷):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.722
(热):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 0.722
因此Ent(份量) = Ent() +Ent() = 0.722
口味属性:包含(咸)和(甜)和(酸),分别占、和
(咸):正例占 = 0,反例占 = 1
Ent() = 0
(甜):正例占 = ,反例占 =
Ent() = -( log2 + log2 ) = 1
(酸):正例占 = 1,反例占 = 0
Ent() = 0
因此Ent(口味) = Ent() +Ent() +Ent()= 0.4
STEP3
最后计算每个属性的信息增益
Gain(D,温度)=Ent(D) – Ent(温度 = 1 – 0.971= 0.029
Gain(D,份量)=Ent(D) – Ent(份量) = 1 – 0.722 = 0.278
Gain(D,口味)=Ent(D) – Ent(口味) = 1 – 0.4= 0.6
选择信息增益大的作为第一个属性,即选择口味属性对根节点进行扩展,第二层选择份量属性,最后选择温度属性,画出的决策树如下
预测 dish= {温度=热,口味=甜,份量=大},根据决策树可以预测结果为“否”。
剩下的题我就不具体写了,大家可以自己练练手。
(18年期末)下表为是否适合打垒球的决策表,请用决策树算法画出决策树,并请预测 E= {天气=晴,温度=适中,湿度=正常,风速=弱} 的场合,是否合适打垒球。
(17年期末)设使用ID3算法进行归纳学习的输入实例集S={ i | 1≤ i ≤ 7 }如下表所示。学习的目标是用属性A、B、C预测属性F。
(1)写出集合S分别以属性A、B、C作为测试属性的熵的增益Gain(S, A)、Gain(S, B)、Gain(S, C)的表达式。
(2)属性A、B、C中哪个应该作为决策树根节点的测试属性?
(22年秋期末)你的飞船刚刚降落在一个外星星球上,你的船员已经开始调查当地的野生动物。不幸的是,你的大多数科学设备都坏了,所以你只能知道一个物体是什么颜色,它有多少只眼睛,它是否活着。更糟糕的是,你们都不是生物学家,所以你们必须使用决策树来将着陆点附近的物体分类为活着或不活着。使用下表回答以下问题:
考虑下面一个数据集,它记录了某学生多次考试的情况,请根据提供的数据按要求构建决策树。
(1)根据信息增益率选择第一个属性,构建一个深度为1的决策树(根结点深度为1)。
(2)根据信息增益率构建完整的决策树。请回答,这两个决策树的决策结果是否和训练数据一致,并解释说明。
设样本集合如下表格,其中A、B、C是F的属性,请根据信息增益标准(ID3算法),画出F的决策树。
文章出处登录后可见!