首先,根据信息熵的原理,我们需要计算每个特征对于分类的不确定性,即熵值。熵值越小,说明该特征对于分类的影响越大。以身高为例,根据上述八组数据,可以得到如下统计数据:

矮:2个数据,其中1个魅力为'是',1个魅力为'否';

高:6个数据,其中2个魅力为'是',4个魅力为'否'。

则身高的熵值为:

Entropy(身高) = - (2/8 * log2(2/8) + 6/8 * log2(6/8)) = 0.811

同理,可以计算出头发和眼睛的熵值:

Entropy(头发) = - (3/8 * log2(3/8) + 2/8 * log2(2/8) + 3/8 * log2(3/8)) = 1.585

Entropy(眼睛) = - (3/8 * log2(3/8) + 2/8 * log2(2/8) + 3/8 * log2(3/8)) = 1.585

接下来,我们需要确定哪个特征最具有决定性,即使得分类更加准确。这可以通过计算信息增益来实现。信息增益表示加入该特征后分类的不确定性减少的程度。信息增益越大,说明该特征对于分类的影响越大。计算公式如下:

Gain(A) = Entropy(D) - ∑(|Dv|/|D|) * Entropy(Dv)

其中,A表示特征,D表示数据集,Dv表示特征A对应的某个取值的数据子集,|Dv|表示该子集的大小。

以身高为例,可以得到信息增益为:

Gain(身高) = Entropy(总体) - ((2/8 * Entropy(身高为矮)) + (6/8 * Entropy(身高为高))) = 0.143

同理,可以计算出头发和眼睛的信息增益:

Gain(头发) = Entropy(总体) - ((3/8 * Entropy(头发为金色)) + (2/8 * Entropy(头发为深色)) + (3/8 * Entropy(头发为红色))) = 0.048

Gain(眼睛) = Entropy(总体) - ((3/8 * Entropy(眼睛为褐色)) + (2/8 * Entropy(眼睛为蓝色)) + (3/8 * Entropy(眼睛为绿色))) = 0.048

由此可知,身高对于分类的影响最大,应该作为决策树的根节点。

接下来,我们需要对身高的两个取值进行划分,即矮和高。对于身高为矮的子集,可以继续使用上述方法计算头发和眼睛的信息增益,得到:

Gain(头发) = Entropy(矮) - ((1/2 * Entropy(头发为金色)) + (1/2 * Entropy(头发为深色))) = 1.000

Gain(眼睛) = Entropy(矮) - ((1/2 * Entropy(眼睛为褐色)) + (1/2 * Entropy(眼睛为蓝色))) = 1.000

由此可知,头发和眼睛对于矮的子集的分类影响相同,可以任选一个作为子节点。

对于身高为高的子集,同样可以计算头发和眼睛的信息增益,得到:

Gain(头发) = Entropy(高) - ((2/6 * Entropy(头发为深色)) + (4/6 * Entropy(头发为金色))) = 0.459

Gain(眼睛) = Entropy(高) - ((2/6 * Entropy(眼睛为蓝色)) + (4/6 * Entropy(眼睛为褐色))) = 0.459

由此可知,头发和眼睛对于高的子集的分类影响相同,可以任选一个作为子节点。

最终得到的决策树如下:

decision_tree

其中,绿色节点表示叶子节点,即分类结果。

使用信息熵构建决策树:外貌特征与魅力关系

原文地址: https://www.cveoy.top/t/topic/mY4D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录