目录
算法介绍
基本概念:
节点
信息熵(Information Entropy)
条件熵(Conditional Entropy)
python中计算对数
分类标准
信息增益(ID3(Iterative Dichotomiser 3)算法的评估标准)
信息增益率(C4.5 算法的评估标准)
基尼系数(CART(Classification and Regression Tree)算法的评估标准)
算法介绍
决策树通过对数据特征的一系列判断来进行分类或预测。
基本概念:
节点
-
根节点:第一个节点,决策树的开始节点。
-
非叶子节点(内部节点):中间节点,基于特征进行条件判断的节点。
-
叶节点:最终结果节点,表示最终的分类或预测结果。
信息熵(Information Entropy)
信息熵是信息论中的一个概念,用于度量随机变量的不确定性。
在决策树算法等机器学习场景中,信息熵通常用于衡量数据集的混乱程度或不确定性。
计算公式:
举个例子:以下两个集合的熵值谁更大呢
条件熵(Conditional Entropy)
条件熵是在给定某个条件下,随机变量的不确定性。
假设随机变量X 和 Y,条件熵H(Y|X) 表示在已知随机变量X 的取值的情况下,随机变量 Y的不确定性。
联合概率密度的计算公式:
条件熵的计算公式:
举个例子:
假设有两个随机变量 X 和 Y,X 表示天气(晴、雨),Y 表示是否适合运动(是、否)。它们的联合概率分布如下:
X\Y | 是 | 否 |
---|---|---|
晴 | 0.3 | 0.2 |
雨 | 0.4 | 0.1 |
python中计算对数
如何计算这个式子的答案呢
在 Python 中,可以使用math
库来计算对数。上面的式子可以这么写
import math
result=-9/14*math.log(9/14,2)-5/14*math.log(5/14,2)
分类标准
构建决策树的关键在于选择合适的特征和划分点,一般而言,随着划分过程的不断进行,我们自然希望决策树各分支结点所包含的样本尽可能属于同一类别,即结点的 “纯度” (purity) 越来越高。本篇文章将介绍几类较为主流的衡量指标(信息增益、信息增益率、基尼系数)。
我们以一个分类问题为例,贯穿在接下来要讲的计算 ID3、C4.5 和 CART 算法的特征选择过程。
天气 | 温度 | 湿度 | 是否出去玩 |
---|---|---|---|
晴 | 高 | 低 | 是 |
阴 | 中 | 高 | 否 |
雨 | 低 | 高 | 否 |
晴 | 中 | 低 | 是 |
阴 | 低 | 低 | 否 |
雨 | 高 | 高 | 否 |
信息增益(ID3(Iterative Dichotomiser 3)算法的评估标准)
信息增益基于信息熵的概念,选择使信息熵减少最多的特征进行分裂。
-
特征选择标准:使用信息增益来选择特征。信息增益是基于信息熵的概念,它衡量了使用某个特征进行划分后,数据集的信息不确定性减少的程度。
-
局限性:倾向于选择具有较多取值的特征,可能导致过拟合。对于连续型特征,需要先进行离散化处理。
-
优点:算法简单直观,易于理解和实现。
信息增益为:1-0.693=0.307
同理计算 “温度” 和 “湿度” 特征的信息增益。
假设 “温度” 特征的信息增益为 0.2,“湿度” 特征的信息增益为 0.1。
由于 “天气” 特征的信息增益最大,所以 ID3 算法会选择 “天气” 特征作为根节点进行分裂。
信息增益率(C4.5 算法的评估标准)
信息增益比则对信息增益进行了归一化处理,克服了信息增益偏向取值较多的特征的问题。
-
特征选择标准:是 ID3 算法的改进,采用信息增益比来选择特征。信息增益比克服了 ID3 中信息增益偏向选择取值多的特征的不足。
-
处理连续属性:能够直接处理连续型特征,通过对连续特征进行排序和离散化来构建决策树。
-
优点:在特征选择和防止过拟合方面比 ID3 更优,生成的决策树更加准确和稳健。
基尼系数(CART(Classification and Regression Tree)算法的评估标准)
基尼系数反映了从数据集中随机抽取两个样本,其类别不一致的概率。
-
用途:既可以用于分类问题,也可以用于回归问题。
-
特征选择标准:对于分类问题使用基尼系数,对于回归问题使用平方误差最小化。
-
生成结构:生成的是二叉树,即每次分裂都将数据集分为两部分。
-
优点:在处理复杂数据和大型数据集时表现较好,并且在分类和回归任务中都有不错的效果。