选择决策树的判别条件是决策树构建过程中最关键的步骤之一。决策树的判别条件就是指在每一次构建决策树时,如何选取最好的判别条件,将数据集划分为几个小的子集,使得每个子集内具有相同的特征值。
以下是一些选择决策树判别条件的完整攻略:
- 按照信息熵对每个特征进行评估
信息熵是决策树构建过程中一种用于度量特征的纯度和不确定性的方法。在决策树构建过程中,使用信息熵评估每个特征的重要性,选择特征的信息增益最大。具体来说,特征的信息增益可以通过以下公式进行计算:
信息增益(A)= 熵(总体) - ∑ [ p(分组i)*熵(分组i) ]
其中,A 表示特征,p(分组i)是分组 i 的概率,熵(分组i)表示分组i的熵。
示例1:针对一个简单的食品分类数据集,该数据集包含两个特征(甜度和颜色),以及分类标签(好吃或坏吃)。如下表所示:
特征\样本 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
甜度 | 甜 | 酸 | 甜 | 甜 | 酸 |
颜色 | 红 | 绿 | 红 | 绿 | 红 |
好吃/坏吃 | 好吃 | 坏吃 | 好吃 | 好吃 | 坏吃 |
按照信息熵对每个特征进行评估。以甜度为例,首先计算总体的熵:
总体的熵= -(good/total) log2(good/total)- (bad/total) log2(bad/total)
= - (3/5) log2 (3/5) - (2/5) log2(2/5)
= 0.971
其中,good表示好吃的样本数,bad表示坏吃的样本数,total表示所有样本数。
然后对甜度分为甜和酸两类进行划分,计算每个分类的熵。
例如,当划分到甜度为甜时,可以将数据集划分为3个子集:
特征\样本 | 1 | 3 | 4 |
---|---|---|---|
颜色 | 红 | 红 | 绿 |
好吃/坏吃 | 好吃 | 好吃 | 好吃 |
计算出这三个子集的熵:
熵(甜度=甜)= -(3/3)* log2(3/3)
= 0
同理,熵(甜度=酸)= 1,甜度的熵为:
甜度的熵 = (甜子集的样本总数/总样本数) 熵(甜度=甜) + (酸子集的样本总数/总样本数) 熵(甜度=酸)
=(3/5)0+(2/5)1
=0.4
然后以颜色为例计算信息增益,也就是信息增益(A)=熵(总体) - ∑ [ p(分组i)*熵(分组i) ]。
总体的熵已经在前面计算,分组i的概率可以通过样本数量计算得到。例如,对于图片分类数据集中的颜色特征,如果划分为绿色和蓝色,则根据上述公式计算信息增益为:
信息增益(颜色)=0.971- (3/5)0.918-(2/5)1
=0.020
因此,颜色的信息增益相对甜度小,甜度是更好的选择。
- 对于连续型变量,按照信息熵和最优切分点进行判别
对于连续型变量,可以使用信息熵和最优切分点进行选择决策树的判别条件。具体来说,使用信息熵计算每个划分点的信息增益,然后选取最优切分点。通常采取二分法,将样本集合分为两个部分分别计算两个集合上的类别分布。最终,根据信息增益选取特征切分点。
示例2:针对一个简单的数值型数据集,该数据集只包含一个特征(价格),以及分类标签(买还是不买)。如下表所示:
特征\样本 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
价格 | 5 | 10 | 7 | 6 | 11 |
买/不买 | 不买 | 买 | 不买 | 不买 | 买 |
对于这个数据集,可以采取二分法选择最优切分点。初始将价格集合划分为 4.5-8.5 和 8.5-11.5 两部分,分段的信息增益分别如下:
信息增益1(价格<=8.5)= Entropy(0.6,0.4)- 0.4 * Entropy(1,1)- 0.6 * Entropy(0.5,0.5)
= 0.971 - 0.4 * 1 - 0.6 * 1
= 0.371
信息增益2(价格>8.5)= Entropy(0.6,0.4)- 0.4 * Entropy(1,1)- 0.6 * Entropy(0,1)
= 0.971 - 0.4 * 1 - 0.6 * 0
=0.571
因此,划分点为8.5的信息增益较大,应该作为最优切分点。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:选择决策树判别条件 - Python技术站