数据仓库作业六:第9章 分类规则挖掘


第9章 分类规则挖掘

第一题

1、设网球俱乐部有打球与气候条件的历史统计数据如下表1所示。它有“天气”、“气温”、“适度”和“风力”4个描述气候的条件属性,类别属性为“是”与“否”的二元取值,分别表示在当时的气候条件下是否适宜打球的两种类别。

表1 打球与气候情况的历史数据样本集S
样本id天气温度湿度风力类别样本id天气温度湿度风力类别
X 1 X_1 X1 X 8 X_8 X8
X 2 X_2 X2 X 9 X_9 X9
X 3 X_3 X3 X 10 X_{10} X10
X 4 X_4 X4 X 11 X_{11} X11
X 5 X_5 X5 X 12 X_{12} X12
X 6 X_6 X6 X 13 X_{13} X13
X 7 X_7 X7 X 14 X_{14} X14

S S S 中的任意两个数据对象 X , Y X,Y X,Y,定义其在4个条件属性上的相异度为 d ( X , Y ) = ∑ j = 1 r δ ( x j , y j ) d(X,Y)=\sum_{j=1}^r\delta(x_j,y_j) d(X,Y)=j=1rδ(xj,yj) 其中 x j , y j x_j,y_j xj,yj 是数据对象 X , Y X,Y X,Y 的第 j j j 个分量值;如果 x j = y j x_j=y_j xj=yj δ ( x j , y j ) = 0 \delta(x_j,y_j)=0 δ(xj,yj)=0,否则 δ ( x j , y j ) = 1 \delta(x_j,y_j)=1 δ(xj,yj)=1

根据天气预报得知,后天的天气情况 X H = ( 雨、高、小、无 ) X_H=(雨、高、小、无) XH=(雨、高、小、无),若令,请用 k k k-最近邻分类算法预测后天是否适合打球。

解:

首先,计算相异度。根据提供的相异度定义,可以使用欧氏距离来计算相异度。欧氏距离的计算公式如下所示:
d ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 + ( p 3 − q 3 ) 2 + ( p 4 − q 4 ) 2 d(\mathbf{p}, \mathbf{q}) = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2 + (p_3 - q_3)^2 + (p_4 - q_4)^2} d(p,q)=(p1q1)2+(p2q2)2+(p3q3)2+(p4q4)2

其中 ( p i p_i pi) 和 ( q i q_i qi) 分别是两个数据对象在第 ( i i i) 个属性上的取值。现在开始计算相异度。对于样本中的每个数据对象,将其表示为一个向量,其中每个分量对应于一个条件属性。然后,使用欧氏距离计算每对数据对象之间的相异度。接下来,将根据计算得到的相异度找出与后天天气情况最相似的 k 个样本,以进行预测。

计算后天天气情况(雨、高、小、无)与每个样本之间的相异度。现在,让计算后天天气情况(雨、高、小、无)与每个样本之间的相异度。使用欧氏距离公式来计算相异度:
d ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 + ( p 3 − q 3 ) 2 + ( p 4 − q 4 ) 2 d(\mathbf{p}, \mathbf{q}) = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2 + (p_3 - q_3)^2 + (p_4 - q_4)^2} d(p,q)=(p1q1)2+(p2q2)2+(p3q3)2+(p4q4)2

其中,( p \mathbf{p} p) 表示后天天气情况,( q \mathbf{q} q) 表示样本数据中的每个数据对象。

后天天气情况为:天气=雨,温度=高,湿度=小,风力=无。现在,计算后天天气情况与每个样本之间的相异度。先将后天的天气情况表示为向量:
p H = ( 雨 , 高 , 小 , 无 ) \mathbf{p_{\text{H}}} = (雨, 高, 小, 无) pH=(,,,)

然后,逐个计算后天天气情况与每个样本之间的相异度。将每个样本的条件属性值代入欧氏距离公式中,并计算相异度。下面是计算结果:
d ( p H , q 1 ) = ( 雨 − 晴 ) 2 + ( 高 − 高 ) 2 + ( 小 − 大 ) 2 + ( 无 − 无 ) 2   = 1 2 + 0 2 + 1 2 + 0 2   = 2   ≈ 1.414   d ( p H , q 2 ) = ( 雨 − 晴 ) 2 + ( 高 − 高 ) 2 + ( 小 − 大 ) 2 + ( 无 − 无 ) 2   = 1 2 + 0 2 + 1 2 + 0 2   = 2   ≈ 1.414   d ( p H , q 3 ) = ( 雨 − 云 ) 2 + ( 高 − 高 ) 2 + ( 小 − 大 ) 2 + ( 无 − 无 ) 2   = 1 2 + 0 2 + 1 2 + 0 2   = 2   ≈ 1.414   d ( p H , q 4 ) = ( 雨 − 雨 ) 2 + ( 高 − 中 ) 2 + ( 小 − 大 ) 2 + ( 无 − 无 ) 2   = 0 2 + 1 2 + 1 2 + 0 2   = 2   ≈ 1.414 d ( p H , q 5 ) = ( 雨 − 雨 ) 2 + ( 高 − 低 ) 2 + ( 小 − 小 ) 2 + ( 无 − 无 ) 2   = 0 2 + 1 2 + 0 2 + 0 2   = 1 d ( p H , q 6 ) = ( 雨 − 雨 ) 2 + ( 高 − 低 ) 2 + ( 小 − 小 ) 2 + ( 无 − 有 ) 2   = 0 2 + 1 2 + 0 2 + 1 2   = 2   ≈ 1.414 d ( p H , q 7 ) = ( 雨 − 云 ) 2 + ( 高 − 低 ) 2 + ( 小 − 小 ) 2 + ( 无 − 有 ) 2   = 1 2 + 1 2 + 0 2 + 1 2   = 3   ≈ 1.732 d ( p H , q 8 ) = ( 雨 − 晴 ) 2 + ( 高 − 中 ) 2 + ( 小 − 大 ) 2 + ( 无 − 无 ) 2   = 1 2 + 1 2 + 1 2 + 0 2   = 3   ≈ 1.732 d ( p H , q 9 ) = ( 雨 − 晴 ) 2 + ( 高 − 低 ) 2 + ( 小 − 小 ) 2 + ( 无 − 无 ) 2   = 1 2 + 1 2 + 0 2 + 0 2   = 2   ≈ 1.414 d ( p H , q 10 ) = ( 雨 − 雨 ) 2 + ( 高 − 中 ) 2 + ( 小 − 小 ) 2 + ( 无 − 无 ) 2   = 0 2 + 1 2 + 0 2 + 0 2   = 1 d ( p H , q 11 ) = ( 雨 − 晴 ) 2 + ( 高 − 中 ) 2 + ( 小 − 小 ) 2 + ( 无 − 有 ) 2   = 1 2 + 1 2 + 0 2 + 1 2   = 2   ≈ 1.414 d ( p H , q 12 ) = ( 雨 − 云 ) 2 + ( 高 − 中 ) 2 + ( 小 − 大 ) 2 + ( 无 − 有 ) 2   = 1 2 + 1 2 + 1 2 + 1 2   = 2 d ( p H , q 13 ) = ( 雨 − 云 ) 2 + ( 高 − 高 ) 2 + ( 小 − 小 ) 2 + ( 无 − 无 ) 2   = 1 2 + 0 2 + 0 2 + 0 2   = 1 d ( p H , q 14 ) = ( 雨 − 雨 ) 2 + ( 高 − 中 ) 2 + ( 小 − 大 ) 2 + ( 无 − 有 ) 2   = 0 2 + 1 2 + 1 2 + 1 2   = 3   ≈ 1.732 \begin{align*} d(\mathbf{p_{\text{H}}}, \mathbf{q_1}) &= \sqrt{(雨 - 晴)^2 + (高 - 高)^2 + (小 - 大)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 0^2 + 1^2 + 0^2} \ = \sqrt{2} \ \approx 1.414 \ \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_2}) &= \sqrt{(雨 - 晴)^2 + (高 - 高)^2 + (小 - 大)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 0^2 + 1^2 + 0^2} \ = \sqrt{2} \ \approx 1.414 \ \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_3}) &= \sqrt{(雨 - 云)^2 + (高 - 高)^2 + (小 - 大)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 0^2 + 1^2 + 0^2} \ = \sqrt{2} \ \approx 1.414 \ \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_4}) &= \sqrt{(雨 - 雨)^2 + (高 - 中)^2 + (小 - 大)^2 + (无 - 无)^2} \ = \sqrt{0^2 + 1^2 + 1^2 + 0^2} \ = \sqrt{2} \ \approx 1.414 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_5}) &= \sqrt{(雨 - 雨)^2 + (高 - 低)^2 + (小 - 小)^2 + (无 - 无)^2} \ = \sqrt{0^2 + 1^2 + 0^2 + 0^2} \ = 1 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_6}) &= \sqrt{(雨 - 雨)^2 + (高 - 低)^2 + (小 - 小)^2 + (无 - 有)^2} \ = \sqrt{0^2 + 1^2 + 0^2 + 1^2} \ = \sqrt{2} \ \approx 1.414 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_7}) &= \sqrt{(雨 - 云)^2 + (高 - 低)^2 + (小 - 小)^2 + (无 - 有)^2} \ = \sqrt{1^2 + 1^2 + 0^2 + 1^2} \ = \sqrt{3} \ \approx 1.732 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_8}) &= \sqrt{(雨 - 晴)^2 + (高 - 中)^2 + (小 - 大)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 1^2 + 1^2 + 0^2} \ = \sqrt{3} \ \approx 1.732 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_9}) &= \sqrt{(雨 - 晴)^2 + (高 - 低)^2 + (小 - 小)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 1^2 + 0^2 + 0^2} \ = \sqrt{2} \ \approx 1.414 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_{10}}) &= \sqrt{(雨 - 雨)^2 + (高 - 中)^2 + (小 - 小)^2 + (无 - 无)^2} \ = \sqrt{0^2 + 1^2 + 0^2 + 0^2} \ = 1 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_{11}}) &= \sqrt{(雨 - 晴)^2 + (高 - 中)^2 + (小 - 小)^2 + (无 - 有)^2} \ = \sqrt{1^2 + 1^2 + 0^2 + 1^2} \ = \sqrt{2} \ \approx 1.414 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_{12}}) &= \sqrt{(雨 - 云)^2 + (高 - 中)^2 + (小 - 大)^2 + (无 - 有)^2} \ = \sqrt{1^2 + 1^2 + 1^2 + 1^2} \ = 2 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_{13}}) &= \sqrt{(雨 - 云)^2 + (高 - 高)^2 + (小 - 小)^2 + (无 - 无)^2} \ = \sqrt{1^2 + 0^2 + 0^2 + 0^2} \ = 1 \\[1ex] d(\mathbf{p_{\text{H}}}, \mathbf{q_{14}}) &= \sqrt{(雨 - 雨)^2 + (高 - 中)^2 + (小 - 大)^2 + (无 - 有)^2} \ = \sqrt{0^2 + 1^2 + 1^2 + 1^2} \ = \sqrt{3} \ \approx 1.732 \end{align*} d(pH,q1)d(pH,q2)d(pH,q3)d(pH,q4)d(pH,q5)d(pH,q6)d(pH,q7)d(pH,q8)d(pH,q9)d(pH,q10)d(pH,q11)d(pH,q12)d(pH,q13)d(pH,q14)=()2+()2+()2+()2  =12+02+12+02  =2  1.414 =()2+()2+()2+()2  =12+02+12+02  =2  1.414 =()2+()2+()2+()2  =12+02+12+02  =2  1.414 =()2+()2+()2+()2  =02+12+12+02  =2  1.414=()2+()2+()2+()2  =02+12+02+02  =1=()2+()2+()2+()2  =02+12+02+12  =2  1.414=()2+()2+()2+()2  =12+12+02+12  =3  1.732=()2+()2+()2+()2  =12+12+12+02  =3  1.732=()2+()2+()2+()2  =12+12+02+02  =2  1.414=()2+()2+()2+()2  =02+12+02+02  =1=()2+()2+()2+()2  =12+12+02+12  =2  1.414=()2+()2+()2+()2  =12+12+12+12  =2=()2+()2+()2+()2  =12+02+02+02  =1=()2+()2+()2+()2  =02+12+12+12  =3  1.732

接下来,找出与后天天气情况最相似的 k 个样本。

假设选择 k=3,即找出与后天天气情况最相似的三个样本。根据之前计算的相异度,可以列出相异度最小的三个样本。

样本 X 5 X_5 X5: 相异度为 1;样本 X 10 X_{10} X10: 相异度为 1;样本 X 13 X_{13} X13: 相异度为 1。因此,与后天天气情况最相似的三个样本是 X 5 X_5 X5 X 10 X_{10} X10 X 13 X_{13} X13

最后,将根据这三个样本的类别来预测后天是否适合打球。在这三个样本中,类别为“是”,所以可以预测后天适合打球。

第二题

2、设有动物分类样本集如下表2,其中是否温血、有无羽毛、有无毛皮、会否游泳为条件属性,卵生动物类别属性,取值1表示该动物为卵生动物,0表示非卵生动物。试用ID3算法对样本集进行学习并生成其决策树,再由决策树获得动物的分类规则。

表2 数据集S有8个带类别标号的数据对象
动物id是否温血有无羽毛有无毛皮会否游泳是否卵生
X 1 X_1 X111001
X 2 X_2 X200011
X 3 X_3 X311001
X 4 X_4 X411001
X 5 X_5 X510010
X 6 X_6 X610100

解:

第一步:选择 S S S 增益最大的属性构造决策树的根结点。

(1)计算分类属性 C C C 的分类信息熵

已知 S = { X 1 , X 2 , … , X 6 } S=\{X_1,X_2,…,X_6\} S={X1,X2,,X6}共有6个样本点,故 ∣ S ∣ = 6 |S|=6 S=6,而分类属性 C = { 1 , 0 } = { C 1 , C 2 } C=\{1, 0\}=\{C_1,C_2\} C={1,0}={C1,C2},即 C 1 C_1 C1 为 “1” 是卵生动物, C 2 C_2 C2 为 “0” 是非卵生动物, C 1 = { X 1 , X 2 , X 3 , X 4 } C_1=\{X_1, X_2, X_3, X_4\} C1={X1,X2,X3,X4}, C 2 = { X 5 , X 6 } C_2=\{X_5, X_6\} C2={X5,X6}

根据信息熵公式有 E ( S , C ) = − ∑ i = 1 2 ∣ C i ∣ ∣ S ∣ log ⁡ 2 ∣ C i ∣ ∣ S ∣ = − ( 4 6 log ⁡ 2 4 6 + 2 6 log ⁡ 2 2 6 ) ≈ 0.918 E(S,C)=-\sum_{i=1}^{2}\frac{|C_i|}{|S|}\log_2\frac{|C_i|}{|S|}=-\left(\frac{4}{6}\log_2\frac{4}{6}+\frac{2}{6}\log_2\frac{2}{6}\right) \approx 0.918 E(S,C)=i=12SCilog2SCi=(64log264+62log262)0.918

(2)计算每个条件属性 A A A 相对 C C C 的信息熵

样本集 S S S 有是否温血、有无羽毛、有无毛皮、会否游泳等4个条件属性,因此,应分别计算它们相对 C C C 的分类信息熵。

① 当 A 1 A_1 A1=“是否温血” 时,属性 A 1 A_1 A1 S S S 划分为 S 1 = { X 1 , X 3 , X 4 , X 5 , X 6 } S_1=\{X_1, X_3, X_4, X_5, X_6\} S1={X1,X3,X4,X5,X6} S 2 = { X 2 } S_2=\{X_2\} S2={X2}

因为 C 1 ∩ S 1 = { X 1 , X 3 , X 4 } C_1\cap S_1 =\{X_1, X_3,X_4\} C1S1={X1,X3,X4} C 2 ∩ S 1 = { X 5 , X 6 } C_2\cap S_1=\{X_5, X_6\} C2S1={X5,X6},根据信息熵公式有 E ( S 1 , C ) = − ∑ i = 1 2 ∣ C i ∩ S 1 ∣ ∣ S 1 ∣ log ⁡ 2 ( ∣ C i ∩ S 1 ∣ ∣ S 1 ∣ ) = − ( 3 5 log ⁡ 2 3 5 + 2 5 log ⁡ 2 2 5 ) ≈ 0.971 E(S_1,C)=-\sum_{i=1}^{2}\frac{|C_i\cap S_1|}{|S_1|}\log_2\left(\frac{|C_i\cap S_1|}{|S_1|}\right)=-\left(\frac{3}{5}\log_2\frac{3}{5}+\frac{2}{5}\log_2\frac{2}{5}\right) \approx 0.971 E(S1,C)=i=12S1CiS1log2(S1CiS1)=(53log253+52log252)0.971 同理有 C 1 ∩ S 2 = { X 2 } C_1\cap S_2 =\{X_2\} C1S2={X2} C 2 ∩ S 2 = ∅ C_2\cap S_2=\varnothing C2S2=,根据信息熵公式有 E ( S 2 , C ) = − ∑ i = 1 2 ∣ C i ∩ S 2 ∣ ∣ S 2 ∣ log ⁡ 2 ( ∣ C i ∩ S 2 ∣ ∣ S 2 ∣ ) = − ( 1 1 log ⁡ 2 1 1 + 0 1 log ⁡ 2 0 1 ) = 0 E(S_2,C)=-\sum_{i=1}^{2}\frac{|C_i\cap S_2|}{|S_2|}\log_2\left(\frac{|C_i\cap S_2|}{|S_2|}\right)=-\left(\frac{1}{1}\log_2\frac{1}{1}+\frac{0}{1}\log_2\frac{0}{1}\right)=0 E(S2,C)=i=12S2CiS2log2(S2CiS2)=(11log211+10log210)=0 条件属性 A 1 A_1 A1 划分样本集 S S S 相对于 C C C 的信息熵为 E ( S , A 1 ∣ C ) = ∑ j = 1 2 ∣ S j ∣ ∣ S ∣ E ( S j , C ) = ∣ S 1 ∣ ∣ S ∣ E ( S 1 , C ) + ∣ S 2 ∣ ∣ S ∣ E ( S 2 , C ) = 5 6 × 0.971 + 1 6 × 0 ≈ 0.809 E(S,A_1|C)=\sum_{j=1}^{2}\frac{|S_j|}{|S|}E(S_j,C)=\frac{|S_1|}{|S|}E(S_1,C)+\frac{|S_2|}{|S|}E(S_2,C)=\frac{5}{6}\times0.971+\frac{1}{6}\times0\approx0.809 E(S,A1C)=j=12SSjE(Sj,C)=SS1E(S1,C)+SS2E(S2,C)=65×0.971+61×00.809

② 当 A 2 A_2 A2=“有无羽毛” 时,属性 A 2 A_2 A2 S S S 划分为 S 1 = { X 1 , X 3 , X 4 } S_1=\{X_1, X_3, X_4\} S1={X1,X3,X4} S 2 = { X 2 , X 5 , X 6 } S_2=\{X_2, X_5, X_6\} S2={X2,X5,X6}

因为 C 1 ∩ S 1 = { X 1 , X 3 , X 4 } C_1\cap S_1 =\{X_1, X_3,X_4\} C1S1={X1,X3,X4} C 2 ∩ S 1 = ∅ C_2\cap S_1=\varnothing C2S1=,根据信息熵公式有 E ( S 1 , C ) = − ∑ i = 1 2 ∣ C i ∩ S 1 ∣ ∣ S 1 ∣ log ⁡ 2 ( ∣ C i ∩ S 1 ∣ ∣ S 1 ∣ ) = − ( 3 3 log ⁡ 2 3 3 + 0 3 log ⁡ 2 0 3 ) = 0 E(S_1,C)=-\sum_{i=1}^{2}\frac{|C_i\cap S_1|}{|S_1|}\log_2\left(\frac{|C_i\cap S_1|}{|S_1|}\right)=-\left(\frac{3}{3}\log_2\frac{3}{3}+\frac{0}{3}\log_2\frac{0}{3}\right)=0 E(S1,C)=i=12S1CiS1log2(S1CiS1)=(33log233+30log230)=0 同理有 C 1 ∩ S 2 = { X 2 } C_1\cap S_2 =\{X_2\} C1S2={X2} C 2 ∩ S 2 = { X 5 , X 6 } C_2\cap S_2=\{X_5,X_6\} C2S2={X5,X6},根据信息熵公式有 E ( S 2 , C ) = − ∑ i = 1 2 ∣ C i ∩ S 2 ∣ ∣ S 2 ∣ log ⁡ 2 ( ∣ C i ∩ S 2 ∣ ∣ S 2 ∣ ) = − ( 1 3 log ⁡ 2 1 3 + 2 3 log ⁡ 2 2 3 ) ≈ 0.918 E(S_2,C)=-\sum_{i=1}^{2}\frac{|C_i\cap S_2|}{|S_2|}\log_2\left(\frac{|C_i\cap S_2|}{|S_2|}\right)=-\left(\frac{1}{3}\log_2\frac{1}{3}+\frac{2}{3}\log_2\frac{2}{3}\right) \approx 0.918 E(S2,C)=i=12S2CiS2log2(S2CiS2)=(31log231+32log232)0.918 条件属性 A 2 A_2 A2 划分样本集 S S S 相对于 C C C 的信息熵为 E ( S , A 2 ∣ C ) = ∑ j = 1 2 ∣ S j ∣ ∣ S ∣ E ( S j , C ) = ∣ S 1 ∣ ∣ S ∣ E ( S 1 , C ) + ∣ S 2 ∣ ∣ S ∣ E ( S 2 , C ) = 3 6 × 0 + 3 6 × 0.918 = 0.459 E(S,A_2|C)=\sum_{j=1}^{2}\frac{|S_j|}{|S|}E(S_j,C)=\frac{|S_1|}{|S|}E(S_1,C)+\frac{|S_2|}{|S|}E(S_2,C)=\frac{3}{6}\times0+\frac{3}{6}\times0.918=0.459 E(S,A2C)=j=12SSjE(Sj,C)=SS1E(S1,C)+SS2E(S2,C)=63×0+63×0.918=0.459

③ 当 A 3 A_3 A3=“有无毛皮” 时,属性 A 3 A_3 A3 S S S 划分为 S 1 = { X 6 } S_1=\{X_6\} S1={X6} S 2 = { X 1 , X 2 , X 3 , X 4 , X 5 } S_2=\{X_1, X_2,X_3, X_4,X_5\} S2={X1,X2,X3,X4,X5}

同理可得, E ( S 1 , C ) = 0 E(S_1,C)=0 E(S1,C)=0 E ( S 2 , C ) ≈ 0.722 E(S_2,C)\approx 0.722 E(S2,C)0.722 E ( S , A 3 ∣ C ) ≈ 0.241 E(S,A_3|C)\approx0.241 E(S,A3C)0.241

④ 当 A 4 A_4 A4=“会否游泳” 时,属性 A 4 A_4 A4 S S S 划分为 S 1 = { X 2 , X 5 } S_1=\{X_2,X_5\} S1={X2,X5} S 2 = { X 1 , X 3 , X 4 , X 6 } S_2=\{X_1,X_3, X_4,X_6\} S2={X1,X3,X4,X6}

同理可得, E ( S 1 , C ) = 1 E(S_1,C)=1 E(S1,C)=1 E ( S 2 , C ) ≈ 0.811 E(S_2,C)\approx0.811 E(S2,C)0.811 E ( S , A 4 ∣ C ) = 0.874 E(S,A_4|C)=0.874 E(S,A4C)=0.874

(3)计算每个属性 A A A 的信息增益

根据公式 g a i n ( S , A ∣ C ) = E ( S , C ) − E ( S , A ∣ C ) gain(S,A|C)=E(S,C)-E(S,A|C) gain(S,AC)=E(S,C)E(S,AC) 可得

① 是否温血: g a i n ( S , A 1 ∣ C ) = 0.918 − 0.809 = 0.109 gain(S,A_1|C)=0.918-0.809=0.109 gain(S,A1C)=0.9180.809=0.109

② 有无羽毛: g a i n ( S , A 2 ∣ C ) = 0.918 − 0.459 = 0.459 gain(S,A_2|C)=0.918-0.459=0.459 gain(S,A2C)=0.9180.459=0.459

③ 有无毛皮: g a i n ( S , A 3 ∣ C ) = 0.918 − 0.241 = 0.677 gain(S,A_3|C)=0.918-0.241=0.677 gain(S,A3C)=0.9180.241=0.677

④ 会否游泳: g a i n ( S , A 4 ∣ C ) = 0.918 − 0.874 = 0.044 gain(S,A_4|C)=0.918-0.874=0.044 gain(S,A4C)=0.9180.874=0.044

因此,最大增益的属性为“有无毛皮”,即以“有无毛皮”作为根节点,并以“有无毛皮”划分 S S S 所得子集 S 1 S_1 S1 S 2 S_2 S2

第二步:选择 S 2 S_2 S2 中增益最大的属性作为“有无毛皮”的子女结点,即选择属性“有无羽毛”。

第三步:选择 S 2 S_2 S2 中增益最大的属性作为“有无羽毛”的子女结点,即选择属性“是否温血”。

最终,得到样本集的决策树,如下图所示。

在这里插入图片描述

第三题

3、设网球俱乐部有打网球与气候条件的历史统计数据(如下表3)。它共有“天气”、“温度”、“湿度”和“风力”4个描述气候的条件属性,其中“湿度”为连续属性,类别属性为“是”与“否”的二元取值,分别表示在当时的气候条件下是否适宜打球的两种类别。假设湿度离散化为高中低三个等级,湿度值<75被认为湿度为低,湿度>85被认为湿度为高,其他情况湿度为中。请用C4.5算法构造关于气候条件与是否适宜打球的决策树。

表3 打球与气候情况的历史数据样本集S
样本id天气温度湿度风力类别样本id天气温度湿度风力类别
X 1 X_1 X195 X 8 X_8 X885
X 2 X_2 X290 X 9 X_9 X970
X 3 X_3 X385 X 10 X_{10} X1075
X 4 X_4 X480 X 11 X_{11} X1170
X 5 X_5 X575 X 12 X_{12} X1280
X 6 X_6 X670 X 13 X_{13} X1375
X 7 X_7 X765 X 14 X_{14} X1478

解:

首先,需要计算每个属性的信息增益,以选择最有用的属性作为根节点。以下是计算信息增益的步骤:

第一步,计算数据集的熵 H ( D ) H(D) H(D) H ( D ) = − ( P Y log ⁡ 2 P Y + P N log ⁡ 2 P N ) H(D)=-(P_Y\log_2P_Y+P_N\log_2P_N) H(D)=(PYlog2PY+PNlog2PN) 其中, P Y P_Y PY为类别为“是”的样本占比, P N P_N PN为类别为“否”的样本占比。

根据样本数据, P Y = 9 14 , P N = 5 14 P_Y=\frac{9}{14},P_N=\frac{5}{14} PY=149,PN=145,因此: H ( D ) = − ( 9 14 log ⁡ 2 9 14 + 5 14 log ⁡ 2 5 14 ) ≈ 0.940 H(D)=-\left(\frac{9}{14}\log_2\frac{9}{14}+\frac{5}{14}\log_2\frac{5}{14}\right)\approx0.940 H(D)=(149log2149+145log2145)0.940

第二步,对于每个属性 A A A,计算其条件熵 H ( D ∣ A ) H(D|A) H(DA) H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i) H(DA)=i=1nDDiH(Di)

其中, n n n为属性 A A A的取值数, ∣ D i ∣ |D_i| Di为样本集中属性 A A A取值为第 i i i个取值的样本数量, H ( D i ) H(D_i) H(Di)为属性 A A A取值为第 i i i个取值时的样本的熵。对于离散属性, H ( D i ) H(D_i) H(Di)可以根据与属性 A A A的取值相对应的样本计算得出,对于连续属性,需要先对其进行离散化处理。对于本题,我们需要对湿度进行离散化处理。

根据题目要求,湿度离散化为高中低三个等级,湿度值<75被认为湿度为低,湿度>85被认为湿度为高,其他情况湿度为中。因此,可以将样本集中湿度小于75的样本归为“低"类,湿度大于85的样本归为“高"类,其余样本归为“中”类。

对于其他属性,可以直接计算条件熵。以下是每个属性的条件熵计算公式:

① 天气: H ( D ∣ 天气 ) = 5 14 H ( D 1 ) + 4 14 H ( D 2 ) + 5 14 H ( D 3 ) H(D|天气)=\frac{5}{14}H(D_1)+\frac{4}{14}H(D_2)+\frac{5}{14}H(D_3) H(D天气)=145H(D1)+144H(D2)+145H(D3) 其中, D 1 D_1 D1为天气为“晴”的样本集, D 2 D_2 D2为天气为“云”的样本集, D 3 D_3 D3为天气为“雨”的样本集。
H ( D 1 ) = − ( 2 5 log ⁡ 2 2 5 + 3 5 log ⁡ 2 3 5 ) ≈ 0.971 H ( D 2 ) = − ( 4 4 log ⁡ 2 4 4 + 0 4 log ⁡ 2 0 4 ) = 0 H ( D 3 ) = − ( 3 5 log ⁡ 2 3 5 + 2 5 log ⁡ 2 2 5 ) ≈ 0.971 \begin{align*} H(D_1)&=-\left(\frac{2}{5}\log_2\frac{2}{5}+\frac{3}{5}\log_2\frac{3}{5}\right)\approx0.971\\[2ex] H(D_2)&=-\left(\frac{4}{4}\log_2\frac{4}{4}+\frac{0}{4}\log_2\frac{0}{4}\right)=0\\[2ex] H(D_3)&=-\left(\frac{3}{5}\log_2\frac{3}{5}+\frac{2}{5}\log_2\frac{2}{5}\right)\approx0.971 \end{align*} H(D1)H(D2)H(D3)=(52log252+53log253)0.971=(44log244+40log240)=0=(53log253+52log252)0.971 因此 H ( D ∣ 天气 ) ≈ 0.694 H(D|天气)\approx0.694 H(D天气)0.694

② 温度: H ( D ∣ 温度 ) = 4 14 H ( D 1 ) + 4 14 H ( D 2 ) + 6 14 H ( D 3 ) H(D|温度)=\frac{4}{14}H(D_1)+\frac{4}{14}H(D_2)+\frac{6}{14}H(D_3) H(D温度)=144H(D1)+144H(D2)+146H(D3) 其中, D 1 D_1 D1为温度为“高”的样本集, D 2 D_2 D2为温度为“中”的样本集, D 3 D_3 D3为温度为“低”的样本集。
H ( D 1 ) = − ( 2 4 log ⁡ 2 2 4 + 2 4 log ⁡ 2 2 4 ) = 1 H ( D 2 ) = − ( 4 6 log ⁡ 2 4 6 + 2 6 log ⁡ 2 2 6 ) ≈ 0.918 H ( D 3 ) = − ( 3 4 log ⁡ 2 3 4 + 1 4 log ⁡ 2 1 4 ) ≈ 0.811 \begin{align*} H(D_1)&=-\left(\frac{2}{4}\log_2\frac{2}{4}+\frac{2}{4}\log_2\frac{2}{4}\right)=1\\[2ex] H(D_2)&=-\left(\frac{4}{6}\log_2\frac{4}{6}+\frac{2}{6}\log_2\frac{2}{6}\right)\approx0.918\\[2ex] H(D_3)&=-\left(\frac{3}{4}\log_2\frac{3}{4}+\frac{1}{4}\log_2\frac{1}{4}\right)\approx0.811 \end{align*} H(D1)H(D2)H(D3)=(42log242+42log242)=1=(64log264+62log262)0.918=(43log243+41log241)0.811 因此 H ( D ∣ 温度 ) ≈ 0.911 H(D|温度)\approx0.911 H(D温度)0.911

③ 湿度: H ( D ∣ 湿度 ) = 4 14 H ( D 1 ) + 8 14 H ( D 2 ) + 2 14 H ( D 3 ) H(D|湿度)=\frac{4}{14}H(D_1)+\frac{8}{14}H(D_2)+\frac{2}{14}H(D_3) H(D湿度)=144H(D1)+148H(D2)+142H(D3) 其中, D 1 D_1 D1为湿度为“低”的样本集, D 2 D_2 D2为湿度为“中”的样本集, D 3 D_3 D3为湿度为“高”的样本集。

同理可得, H ( D 1 ) ≈ 0.811 H(D_1)\approx0.811 H(D1)0.811 H ( D 2 ) ≈ 0.811 H(D_2)\approx0.811 H(D2)0.811 H ( D 3 ) = 0 H(D_3)=0 H(D3)=0 H ( D ∣ 湿度 ) ≈ 0.695 H(D|湿度)\approx0.695 H(D湿度)0.695

④ 风力: H ( D ∣ 风力 ) = 9 14 H ( D 1 ) + 5 14 H ( D 2 ) H(D|风力)=\frac{9}{14}H(D_1)+\frac{5}{14}H(D_2) H(D风力)=149H(D1)+145H(D2) 其中, D 1 D_1 D1为风力为“无”的样本集, D 2 D_2 D2为风力为“有”的样本集。

同理可得, H ( D 1 ) ≈ 0.918 H(D_1)\approx0.918 H(D1)0.918 H ( D 2 ) ≈ 0.971 H(D_2)\approx0.971 H(D2)0.971, H ( D ∣ 风力 ) ≈ 0.937 H(D|风力)\approx0.937 H(D风力)0.937

第三步,计算每个属性的信息增益 g a i n ( D , A ) gain(D,A) gain(D,A) g a i n ( D , A ) = H ( D ) − H ( D ∣ A ) gain(D,A)=H(D)-H(D|A) gain(D,A)=H(D)H(DA) 每个属性的信息增益结果如下:

① 天气: g a i n ( D , 天气 ) ≈ 0.246 gain(D,天气)\approx0.246 gain(D,天气)0.246

② 温度: g a i n ( D , 温度 ) ≈ 0.029 gain(D,温度)\approx0.029 gain(D,温度)0.029

③ 湿度: g a i n ( D , 湿度 ) ≈ 0.245 gain(D,湿度)\approx0.245 gain(D,湿度)0.245

④ 风力: g a i n ( D , 风力 ) ≈ 0.003 gain(D,风力)\approx0.003 gain(D,风力)0.003

第四步,计算每个属性的信息增益率。

① 天气: g a i n R a t i o ( D , 天气 ) = g a i n ( D , 天气 ) / H ( D ∣ 天气 ) ≈ 0.156 gainRatio(D,天气)=gain(D,天气)/H(D|天气)\approx0.156 gainRatio(D,天气)=gain(D,天气)/H(D天气)0.156

② 温度: g a i n R a t i o ( D , 温度 ) = g a i n ( D , 温度 ) / H ( D ∣ 温度 ) ≈ 0.019 gainRatio(D,温度)=gain(D,温度)/H(D|温度)\approx0.019 gainRatio(D,温度)=gain(D,温度)/H(D温度)0.019

③ 湿度: g a i n R a t i o ( D , 湿度 ) = g a i n ( D , 湿度 ) / H ( D ∣ 湿度 ) ≈ 0.415 gainRatio(D,湿度)=gain(D,湿度)/H(D|湿度)\approx0.415 gainRatio(D,湿度)=gain(D,湿度)/H(D湿度)0.415

④ 风力: g a i n R a t i o ( D , 风力 ) = g a i n ( D , 风力 ) / H ( D ∣ 风力 ) ≈ 0.003 gainRatio(D,风力)=gain(D,风力)/H(D|风力)\approx0.003 gainRatio(D,风力)=gain(D,风力)/H(D风力)0.003

因此,选择信息增益率最大的属性“湿度”作为根节点。将样本集按照湿度的取值划分为三个子集,分别为湿度为“低”的子集 D 1 D_1 D1,湿度为“中”的子集 D 2 D_2 D2,湿度为“高”的子集 D 3 D_3 D3

第五步,对于每个子集,继续选择最有用的属性作为划分依据,构造子树。以下是构造子树的过程:

在这里插入图片描述
至此,我们已经得到了一棵完整的决策树,可以用于对新样本进行分类。其中,“高”、“中”、“低”表示湿度的不同取值,“有”、“无”表示风力的不同取值,叶子节点的标记“是”表示适宜打球,“否”表示不适宜打球。

第四题

4、设有4个属性14条记录的数据库(如下表4),它记录了顾客身份、年龄、收入和信用等级等个人信息,以及前来商店咨询电脑事宜,其中“电脑”属性标记了一个顾客咨询结束后买了电脑,或者没买就直接离开商店的信息。

表4 记录了14位顾客购买电脑与否的数据库
样本id学生年龄收入信用电脑样本id学生年龄收入信用电脑
X 1 X_1 X1≤30岁一般 X 8 X_8 X8≤30岁一般
X 2 X_2 X2≤30岁优等 X 9 X_9 X9≤30岁一般
X 3 X_3 X331~40岁一般 X 10 X_{10} X10≥41岁一般
X 4 X_4 X4≥41岁一般 X 11 X_{11} X11≥41岁优等
X 5 X_5 X5≥41岁一般 X 12 X_{12} X1231~40岁优等
X 6 X_6 X6≥41岁优等 X 13 X_{13} X1331~40岁一般
X 7 X_7 X731~40岁优等 X 14 X_{14} X14≥41岁优等

现在来了一位新顾客 X = ( 学生 = 是 , 年龄 ≤ 30 岁 , 收入等 = 中等 , 信用 = 一般 ) X=(学生=是, 年龄≤30岁, 收入等=中等, 信用=一般) X=(学生=,年龄30,收入等=中等,信用=一般),试用贝叶斯分类方法,预测顾客 X X X 是否会买电脑。

解:

现在来了一位新顾客 X = ( x 1 , x 2 , x 3 , x 4 ) = ( 学生 = “是” , 年龄 = “ ≤ 30 岁” , 收入 = “中” , 信用 = “一般” ) X=(x_1,x_2,x_3,x_4)=(学生=“是”,年龄=“≤30岁”,收入=“中”,信用=“一般”) X=(x1,x2,x3,x4)=(学生=,年龄=30,收入=,信用=一般),试用朴素贝叶斯分类方法,预测顾客 X X X是否会买电脑。

由于 S S S的类别属性 C C C取值为“是”和“否”,因此将 S S S分为两个类别集合
C 1 = C 是 = { X 3 , X 4 , X 5 , X 7 , X 9 , X 10 , X 11 , X 12 , X 13 } C 2 = C 否 = { X 1 , X 2 , X 6 , X 8 , X 14 } \begin{aligned}&C_1=C_{是}=\{X_3,X_4,X_5,X_7,X_9,X_{10},X_{11},X_{12},X_{13}\}\\[1ex] &C_2=C_{否}=\{X_1,X_2,X_6,X_8,X_{14}\}\end{aligned} C1=C={X3,X4,X5,X7,X9,X10,X11,X12,X13}C2=C={X1,X2,X6,X8,X14}

(1)计算 p ( C 1 ) , p ( C 2 ) p(C_1),p(C_2) p(C1),p(C2)

由公式 p ( C j ) = ∣ C j ∣ ∣ S ∣ \begin{aligned}p(C_j)=\frac{|C_j|}{|S|}\end{aligned} p(Cj)=SCj
p ( C 1 ) = ∣ C 1 ∣ ∣ S ∣ = 9 14   ,    p ( C 2 ) = ∣ C 2 ∣ ∣ S ∣ = 5 14 p(C_1)=\frac{|C_1|}{|S|}=\frac{9}{14}\ ,\ \ p(C_2)=\frac{|C_2|}{|S|}=\frac{5}{14} p(C1)=SC1=149 ,  p(C2)=SC2=145

(2)计算 p ( X ∣ C 1 ) p(X|C_1) p(XC1)

由公式 p ( X ∣ C 1 ) = ∏ k = 1 4 p ( x k ∣ C 1 ) \begin{aligned}p(X|C_1)=\prod_{k=1}^{4}p(x_k|C_1)\end{aligned} p(XC1)=k=14p(xkC1)
p ( x 1 ∣ C 1 ) = ∣ S 11 ∣ ∣ C 1 ∣ = 6 9   ,    p ( x 2 ∣ C 1 ) = ∣ S 12 ∣ ∣ C 1 ∣ = 1 9 p ( x 3 ∣ C 1 ) = ∣ S 13 ∣ ∣ C 1 ∣ = 4 9   ,    p ( x 4 ∣ C 1 ) = ∣ S 14 ∣ ∣ C 1 ∣ = 5 9 p(x_1|C_1)=\frac{|S_{11}|}{|C_1|}=\frac{6}{9}\ ,\ \ p(x_2|C_1)=\frac{|S_{12}|}{|C_1|}=\frac{1}{9}\\[2ex] p(x_3|C_1)=\frac{|S_{13}|}{|C_1|}=\frac{4}{9}\ ,\ \ p(x_4|C_1)=\frac{|S_{14}|}{|C_1|}=\frac{5}{9} p(x1C1)=C1S11=96 ,  p(x2C1)=C1S12=91p(x3C1)=C1S13=94 ,  p(x4C1)=C1S14=95 因此, p ( X ∣ C 1 ) = 6 9 × 1 9 × 4 9 × 5 9 ≈ 0.0183 \begin{aligned}p(X|C_1)=\frac{6}{9}×\frac{1}{9}×\frac{4}{9}×\frac{5}{9}\approx0.0183\end{aligned} p(XC1)=96×91×94×950.0183

(3)计算 p ( X ∣ C 2 ) p(X|C_2) p(XC2)

由公式 p ( X ∣ C 2 ) = ∏ k = 1 4 p ( x k ∣ C 2 ) \begin{aligned}p(X|C_2)=\prod_{k=1}^{4}p(x_k|C_2)\end{aligned} p(XC2)=k=14p(xkC2)
p ( x 1 ∣ C 2 ) = ∣ S 21 ∣ ∣ C 2 ∣ = 1 5   ,    p ( x 2 ∣ C 2 ) = ∣ S 22 ∣ ∣ C 2 ∣ = 3 5 p ( x 3 ∣ C 2 ) = ∣ S 23 ∣ ∣ C 2 ∣ = 2 5   ,    p ( x 4 ∣ C 2 ) = ∣ S 24 ∣ ∣ C 2 ∣ = 2 5 p(x_1|C_2)=\frac{|S_{21}|}{|C_2|}=\frac{1}{5}\ ,\ \ p(x_2|C_2)=\frac{|S_{22}|}{|C_2|}=\frac{3}{5}\\[2ex] p(x_3|C_2)=\frac{|S_{23}|}{|C_2|}=\frac{2}{5}\ ,\ \ p(x_4|C_2)=\frac{|S_{24}|}{|C_2|}=\frac{2}{5} p(x1C2)=C2S21=51 ,  p(x2C2)=C2S22=53p(x3C2)=C2S23=52 ,  p(x4C2)=C2S24=52 因此, p ( X ∣ C 2 ) = 1 5 × 3 5 × 2 5 × 2 5 = 0.0192 \begin{aligned}p(X|C_2)=\frac{1}{5}×\frac{3}{5}×\frac{2}{5}×\frac{2}{5}=0.0192\end{aligned} p(XC2)=51×53×52×52=0.0192

(4)求最大 p ( X ∣ C i ) p ( C i ) p(X|C_i)p(C_i) p(XCi)p(Ci)
p ( X ∣ C 1 ) p ( C 1 ) = 0.0183 × 9 14 ≈ 0.0118 p ( X ∣ C 2 ) p ( C 2 ) = 0.0192 × 5 14 ≈ 0.0069 p(X|C_1)p(C_1)=0.0183×\frac{9}{14}\approx0.0118\\[2ex] p(X|C_2)p(C_2)=0.0192×\frac{5}{14}\approx0.0069 p(XC1)p(C1)=0.0183×1490.0118p(XC2)p(C2)=0.0192×1450.0069 根据公式 p ( X ∣ C i ) p ( C i ) = m a x { p ( X ∣ C 1 ) p ( C 1 ) , p ( X ∣ C 2 ) P ( C 2 ) , ⋯   , p ( X ∣ C k ) p ( C k ) } p(X|C_i)p(C_i)=max\{p(X|C_1)p(C_1), p(X|C_2)P(C_2), \cdots, p(X|C_k)p(C_k)\} p(XCi)p(Ci)=max{p(XC1)p(C1),p(XC2)P(C2),,p(XCk)p(Ck)} m a x { p ( X ∣ C 1 ) p ( C 1 ) , p ( X ∣ C 2 ) P ( C 2 ) } = p ( X ∣ C 1 ) p ( C 1 ) max\{p(X|C_1)p(C_1), p(X|C_2)P(C_2)\}=p(X|C_1)p(C_1) max{p(XC1)p(C1),p(XC2)P(C2)}=p(XC1)p(C1) 即把类别标号 C 1 = “是” C_1=“是” C1= 赋予 X X X

因此,根据朴素贝叶斯分类方法,预测顾客 X X X会买电脑。

  • 33
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Francek Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值