信息增益、增益率、基尼系数、误分类率计算案例
信息增益、增益率、基尼系数、误分类率计算案例详解
在机器学习和数据挖掘中,特征选择是一个重要的步骤,它可以帮助我们选择最相关的特征来构建模型,提高模型的准确性和效率。信息增益、信息增益率、基尼系数和误分类错误率是常用的特征选择指标。
本文将通过一个简单的数据集,详细讲解如何计算这些指标,帮助大家更好地理解特征选择在机器学习中的应用。
数据集
假设有一个数据集,包含5个样本,其中3个属于类别A,2个属于类别B。每个样本都有两个特征,特征1和特征2,它们的取值如下表所示:
| 样本 | 特征1 | 特征2 | 类别 | |------|-------|-------|------| | 1 | 1 | 1 | A | | 2 | 1 | 0 | A | | 3 | 1 | 1 | B | | 4 | 0 | 0 | A | | 5 | 0 | 1 | B |
现在我们想要计算特征1和特征2的信息增益、信息增益率、基尼系数和误分类错误率,以便选择最佳特征进行分类。
1. 计算数据集的熵
熵是用来衡量数据集不确定性的指标,熵值越大,数据集的不确定性越高。数据集的熵计算公式如下:
H(D) = - Σ (p_i * log2(p_i))
其中,p_i 表示第 i 个类别样本在数据集中出现的概率。
对于本例,数据集的熵为:
H(D) = -(3/5) * log2(3/5) - (2/5) * log2(2/5) = 0.971
2. 计算特征的条件熵和信息增益
条件熵是指在已知特征 A 的情况下,数据集 D 的不确定性。特征 A 的条件熵计算公式如下:
H(D|A) = Σ (p(A_i) * H(D|A_i))
其中,p(A_i) 表示特征 A 取值为 A_i 的样本在数据集中出现的概率,H(D|A_i) 表示在特征 A 取值为 A_i 的情况下,数据集 D 的熵。
信息增益是指特征 A 减少数据集 D 的不确定性的程度,计算公式如下:
IG(D, A) = H(D) - H(D|A)
特征1:
- 将数据集按照特征1的取值划分为两个子集:
- 特征1 = 1: { (1,1,A), (1,0,A), (1,1,B) }
- 特征1 = 0: { (0,0,A), (0,1,B) }
- 计算特征1的条件熵:
H(D|特征1) = (3/5) * [-(2/3) * log2(2/3) - (1/3) * log2(1/3)] + (2/5) * [-(1/2) * log2(1/2) - (1/2) * log2(1/2)] = 0.571 - 计算特征1的信息增益:
IG(D, 特征1) = H(D) - H(D|特征1) = 0.971 - 0.571 = 0.4
特征2:
- 将数据集按照特征2的取值划分为两个子集:
- 特征2 = 1: { (1,1,A), (1,1,B), (0,1,B) }
- 特征2 = 0: { (1,0,A), (0,0,A) }
- 计算特征2的条件熵:
H(D|特征2) = (3/5) * [-(2/3) * log2(2/3) - (1/3) * log2(1/3)] + (2/5) * [-(1/2) * log2(1/2) - (1/2) * log2(1/2)] = 0.571 - 计算特征2的信息增益:
IG(D, 特征2) = H(D) - H(D|特征2) = 0.971 - 0.571 = 0.4
3. 计算特征的信息增益率
信息增益率是在信息增益的基础上,考虑了特征本身的熵,计算公式如下:
IGR(D, A) = IG(D, A) / H(A)
其中,H(A) 表示特征 A 的熵。
特征1:
- 计算特征1的熵:
H(特征1) = -(3/5) * log2(3/5) - (2/5) * log2(2/5) = 0.971 - 计算特征1的信息增益率:
IGR(D, 特征1) = IG(D, 特征1) / H(特征1) = 0.4 / 0.971 = 0.412
特征2:
- 计算特征2的熵:
H(特征2) = -(3/5) * log2(3/5) - (2/5) * log2(2/5) = 0.971 - 计算特征2的信息增益率:
IGR(D, 特征2) = IG(D, 特征2) / H(特征2) = 0.4 / 0.971 = 0.412
4. 计算特征的基尼系数和误分类错误率
基尼系数是用来衡量数据集纯度的指标,基尼系数越小,数据集的纯度越高。特征 A 的基尼系数计算公式如下:
Gini(D|A) = Σ (p(A_i) * (1 - Σ (p(j|A_i))^2))
其中,p(A_i) 表示特征 A 取值为 A_i 的样本在数据集中出现的概率,p(j|A_i) 表示在特征 A 取值为 A_i 的情况下,类别 j 出现的概率。
误分类错误率是指在使用特征 A 进行分类时,分类错误的样本占总样本的比例。
特征1:
- 计算特征1的基尼系数:
Gini(D|特征1) = (3/5) * [1 - ((2/3)^2 + (1/3)^2)] + (2/5) * [1 - ((1/2)^2 + (1/2)^2)] = 0.4 - 计算特征1的误分类错误率:
ERR(D|特征1) = (1/5) * 2 + (2/5) * (1/2) + (2/5) * (1/2) = 0.6
特征2:
- 计算特征2的基尼系数:
Gini(D|特征2) = (3/5) * [1 - ((2/3)^2 + (1/3)^2)] + (2/5) * [1 - ((1/2)^2 + (1/2)^2)] = 0.4 - 计算特征2的误分类错误率:
ERR(D|特征2) = (2/5) * (1/3) + (3/5) * (1/2) + (0/5) * 1 = 0.4
总结
通过计算,我们可以得到如下结果:
| 特征 | 信息增益 | 信息增益率 | 基尼系数 | 误分类错误率 | |---|---|---|---|---| | 特征1 | 0.4 | 0.412 | 0.4 | 0.6 | | 特征2 | 0.4 | 0.412 | 0.4 | 0.4 |
从结果可以看出,特征1和特征2的信息增益和信息增益率相同,但是特征2的基尼系数和误分类错误率更低,因此特征2是更优的特征。
需要注意的是,以上只是一些常用的特征选择指标,实际应用中应该根据具体的数据集和模型选择合适的指标。
原文地址: https://www.cveoy.top/t/topic/fYM2 著作权归作者所有。请勿转载和采集!