目的
生成一颗决策树,输入X(各种特征条件)输出Y(该样本分类结果)。
一、分类树选择特征的依赖——基尼指数
- 基尼指数——总体内包含的类别越杂乱,基尼指数就越大
在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。
基尼不纯度 = ∑i=1K(\sum_{i=1}^K(∑i=1K(样本iii被选中的概率 ∗*∗ 它被分错的概率)
(当一个节点中所有样本都是一个类时,基尼不纯度为零。)
假设y的可能取值有K个,令pkp_kpk是样本取值为k的概率,
则基尼指数可以通过如下公式计算:
Gini(p)=∑i=1Kpi(1−pi)=1−∑i=1Kpi2Gini(p)=\sum_{i=1}^Kp_i(1-p_i)=1-\sum_{i=1}^K{p_i}^2Gini(p)=i=1∑Kpi(1−pi)=1−i=1∑Kpi2
在选择根节点属性时,计算每一种属性分类后的基尼指数GiniGiniGini,选择GiniGiniGini最小的那种属性作为该节点的分类依据。
二、例子
头发 | 身高 | 体重 | 性别 |
---|---|---|---|
长 | 中 | 60 | 女 |
短 | 高 | 65 | 男 |
长 | 高 | 70 | 男 |
短 | 矮 | 55 | 女 |
短 | 中 | 50 | 男 |
要对上表的数据构建一颗决策树,它的特征集合A={头发、身高、体重}
1.当选择{头发}分类时,对应的样本数如下表:
长 | 短 | |
---|---|---|
男 | 1 | 2 |
女 | 1 | 1 |
Total | 2 | 3 |
G长=1−(12)2−(12)2=0.5G_长=1-(\frac{1}{2}){^2} - (\frac{1}{2}){^2} = 0.5G长=1−(21)2−(21)2=0.5
G短=1−(13)2−(23)2=0.444G_短={1-}(\frac{1}{3}){^2} - (\frac{2}{3}){^2} = 0.444G短=1−(31)2−(32)2=0.444
G{
头发}=25∗G长+35∗G短=0.466G_{\{头发\}} = \frac{2}{5}*G_长 + \frac{3}{5}*G_短= 0.466G{
头发}=52∗G长+53∗G短=0.466
2.当选择{身高}分类时,有三种值,对应三种分法,
(1)按照中和非中分类如下表:
中 | 非中 | |
---|---|---|
男 | 1 | 2 |
女 | 1 | 1 |
Total | 2 | 3 |
G中=1−(12)2−(12)2=0.5G_中={1-}(\frac{1}{2}){^2} - (\frac{1}{2}){^2} = 0.5G中=1−(21)2−(21)2=0.5