1
a
划分前的熵: E n t r o p y ( 0 ) = − 0.4 ⋅ l o g 2 { 0.4 } − 0.6 ⋅ l o g 2 { 0.6 } = 0.9710 Entropy_{(0)}=-0.4\cdot log_2\{0.4\}-0.6\cdot log_2\{0.6\}=0.9710 Entropy(0)=−0.4⋅log2{0.4}−0.6⋅log2{0.6}=0.9710
-
按照A划分
A = T A = F + 4 0 - 3 3 7 3 E n t r o p y ( A = T ) = − 4 7 ⋅ l o g 2 4 7 − 3 7 ⋅ l o g 2 3 7 = 0.9852 Entropy_{(A = T)}=-\frac{4}{7}\cdot log_2{\frac{4}{7}}-\frac{3}{7}\cdot log_2{\frac{3}{7}}=0.9852 Entropy(A=T)=−74⋅log274−73⋅log273=0.9852
E n t r o p y ( A = F ) = − 0 3 ⋅ l o g 2 0 3 − 3 3 ⋅ l o g 2 3 3 = 0 Entropy_{(A = F)}=-\frac{0}{3}\cdot log_2{\frac{0}{3}}-\frac{3}{3}\cdot log_2{\frac{3}{3}}=0 Entropy(A=F)=−30⋅log230−33⋅log233=0所以,信息增益为:
Δ i n f o − A = E n t r o p y ( 0 ) − 7 10 E n t r o p y ( A = T ) − 3 10 E n t r o p y ( A = F ) = 0.2813 \Delta_{info-A}=Entropy_{(0)}-\frac{7}{10}Entropy_{(A = T)}-\frac{3}{10}Entropy_{(A = F)}=0.2813 Δinfo−A=Entropy(0)−107Entropy(A=T)−103Entropy(A=F)=0.2813 -
按照B划分
B = T B = F + 3 1 - 1 5 4 6 E n t r o p y ( B = T ) = − 3 4 ⋅ l o g 2 3 4 − 1 4 ⋅ l o g 2 1 4 = 0.8113 Entropy_{(B = T)}=-\frac{3}{4}\cdot log_2{\frac{3}{4}}-\frac{1}{4}\cdot log_2{\frac{1}{4}}=0.8113 Entropy(B=T)=−43⋅log243−41⋅log241=0.8113
E n t r o p y ( B = F ) = − 1 6 ⋅ l o g 2 1 6 − 5 6 ⋅ l o g 2 5 6 = 0.6500 Entropy_{(B = F)}=-\frac{1}{6}\cdot log_2{\frac{1}{6}}-\frac{5}{6}\cdot log_2{\frac{5}{6}}=0.6500 Entropy(B=F)=−61⋅log261−65⋅log265=0.6500所以,信息增益为:
Δ i n f o − B = E n t r o p y ( 0 ) − 4 10 E n t r o p y ( B = T ) − 6 10 E n t r o p y ( B = F ) = 0.2565 \Delta_{info-B}=Entropy_{(0)}-\frac{4}{10}Entropy_{(B = T)}-\frac{6}{10}Entropy_{(B = F)}=0.2565 Δinfo−B=Entropy(0)−104Entropy(B=T)−106Entropy(B=F)=0.2565
所以,比较可得出,应按照A划分
b
-
按照A划分
G i n i ( A = T ) = 1 − ( 4 7 ) 2 − ( 3 7 ) 2 = 0.4898 Gini_{(A = T)}=1-(\frac{4}{7})^2-(\frac{3}{7})^2=0.4898 Gini(A=T)=1−(74)2−(73)2=0.4898
G i n i ( A = F ) = 1 − ( 0 3 ) 2 − ( 3 3 ) 2 = 0 Gini_{(A = F)}=1-(\frac{0}{3})^2-(\frac{3}{3})^2=0 Gini(A=F)=1−(30)2−(33)2=0所以,基尼指数为:
G i n i ( A ) = 7 10 G i n i ( A = T ) + 3 10 G i n i ( A = F ) = 0.3429 Gini_{(A)}=\frac{7}{10}Gini_{(A = T)}+\frac{3}{10}Gini_{(A = F)}=0.3429 Gini(A)=107Gini(A=T)+103Gini(A=F)=0.3429 -
按照B划分
G i n i ( B = T ) = 1 − ( 3 4 ) 2 − ( 1 4 ) 2 = 0.3750 Gini_{(B = T)}=1-(\frac{3}{4})^2-(\frac{1}{4})^2=0.3750 Gini(B=T)=1−(43)2−(41)2=0.3750
G i n i ( B = F ) = 1 − ( 1 6 ) 2 − ( 5 6 ) 2 = 0.2778 Gini_{(B = F)}=1-(\frac{1}{6})^2-(\frac{5}{6})^2=0.2778 Gini(B=F)=1−(61)2−(65)2=0.2778所以,基尼指数为:
G i n i ( B ) = 4 10 G i n i ( B = T ) + 6 10 G i n i ( B = F ) = 0.3167 Gini_{(B)}=\frac{4}{10}Gini_{(B = T)}+\frac{6}{10}Gini_{(B = F)}=0.3167 Gini(B)=104Gini(B=T)+106Gini(B=F)=0.3167
所以,比较可得出,应按照B划分
c
可能的。
由前两问可以看出:熵和基尼指数有在一定的相同范围内变化趋势相同,而它们支持不同的属性,这是因为它们对增益的度量方式不同,可能导致具体结果有一定的不同。
2
a
对于父节点P:
基尼指数:
G
i
n
i
P
=
1
−
(
7
10
)
2
−
(
3
10
)
2
=
0.42
Gini_P=1 - (\frac{7}{10})^2 - (\frac{3}{10})^2 = 0.42
GiniP=1−(107)2−(103)2=0.42
错误分类的错误率:
e
r
r
o
r
P
=
1
−
m
a
x
{
0.7
,
0.3
}
=
0.3
error_P=1 - max\{0.7, 0.3\} = 0.3
errorP=1−max{0.7,0.3}=0.3
b
对于子节点:
G
i
n
i
(
C
1
)
=
1
−
(
3
3
)
2
−
(
0
3
)
2
=
0
Gini_{(C_1)}=1-(\frac{3}{3})^2-(\frac{0}{3})^2=0
Gini(C1)=1−(33)2−(30)2=0
G
i
n
i
(
C
2
)
=
1
−
(
4
7
)
2
−
(
3
7
)
2
=
0.4898
Gini_{(C_2)}=1-(\frac{4}{7})^2-(\frac{3}{7})^2=0.4898
Gini(C2)=1−(74)2−(73)2=0.4898
所以,加权基尼指数为:
G
i
n
i
C
=
3
10
G
i
n
i
(
C
1
)
+
7
10
G
i
n
i
(
C
2
)
=
0.3429
Gini_C=\frac{3}{10}Gini_{(C_1)}+\frac{7}{10}Gini_{(C_2)}=0.3429
GiniC=103Gini(C1)+107Gini(C2)=0.3429
如果将基尼指数用作不纯性测量,会考虑这个属性测试条件,因为:
从计算结果可得出,子结点的加权基尼指数更低,即子结点纯度更高。
c
加权错误率为:
e
r
r
o
r
C
=
3
+
0
10
=
0.3
error_C=\frac{3+0}{10}=0.3
errorC=103+0=0.3
如果使用错误分类率作为不纯性测量,可以考虑也可以不考虑这个属性测试条件,因为:
从计算结果可得出,子结点的加权错误分类率与父节点相同。
3
-
第一层:属性X、Y和Z的错误率。
-
属性X:
X C1 C2 0 60 60 1 40 40 X的分类错误率为: e r r o r X = 60 + 40 200 = 0.5 error_X=\frac{60 + 40}{200} = 0.5 errorX=20060+40=0.5
-
属性Y:
Y C1 C2 0 40 60 1 60 40 Y的分类错误率为: e r r o r Y = 40 + 40 200 = 0.4 error_Y=\frac{40 + 40}{200} = 0.4 errorY=20040+40=0.4
-
属性Z:
Z C1 C2 0 30 70 1 70 30 Z的分类错误率为: e r r o r Z = 30 + 30 200 = 0.3 error_Z=\frac{30 + 30}{200} = 0.3 errorZ=20030+30=0.3
因为Z的分类错误率最低,选择Z为第一层的划分属性。
-
-
第二层:
-
Z = 0 Z = 0 Z=0
X C1 C2 0 15 45 1 15 25 Y C1 C2 0 15 45 1 15 25 X和Y的分类错误率相同,均为: e r r o r X 1 = e r r o r Y 1 = 15 + 15 100 = 0.3 error_{X_1}=error_{Y_1}=\frac{15 + 15}{100} = 0.3 errorX1=errorY1=10015+15=0.3
-
Z = 1 Z = 1 Z=1
X C1 C2 0 45 15 1 25 15 Y C1 C2 0 25 15 1 45 15 X和Y的分类错误率相同,均为: e r r o r X 2 = e r r o r Y 2 = 15 + 15 100 = 0.3 error_{X_2}=error_{Y_2}=\frac{15 + 15}{100} = 0.3 errorX2=errorY2=10015+15=0.3
-
所以总错误率为: e r r o r = 15 + 15 + 15 + 15 100 + 100 = 0.3 error=\frac{15+15+15+15}{100+100} = 0.3 error=100+10015+15+15+15=0.3
b
选择X为第一层的划分属性后:
-
X = 0 X = 0 X=0
Y C1 C2 0 5 55 1 55 5 Z C1 C2 0 15 45 1 45 15 Y分类错误率: e r r o r Y 1 = 5 + 5 120 = 0.0833 error_{Y_1}=\frac{5 + 5}{120} = 0.0833 errorY1=1205+5=0.0833
Z分类错误率: e r r o r Z 1 = 15 + 15 120 = 0.25 error_{Z_1}=\frac{15 + 15}{120} = 0.25 errorZ1=12015+15=0.25所以,选择Y划分
-
X = 1 X = 1 X=1
Y C1 C2 0 35 5 1 5 35 Z C1 C2 0 15 25 1 25 15 Y分类错误率: e r r o r Y 1 = 5 + 5 80 = 0.125 error_{Y_1}=\frac{5 + 5}{80} = 0.125 errorY1=805+5=0.125
Z分类错误率: e r r o r Z 1 = 15 + 15 80 = 0.375 error_{Z_1}=\frac{15 + 15}{80} = 0.375 errorZ1=8015+15=0.375所以,选择Y划分
所以总错误率为: e r r o r = 5 + 5 + 5 + 5 120 + 80 = 0.1 error=\frac{5+5+5+5}{120+80} = 0.1 error=120+805+5+5+5=0.1
c
比较上两问结果可知:第二问构建的决策树分类错误率比第一问构建的更小,所以:贪心法并不一定能产生最优决策树。
4
a
划分前的分类错误率为: e r r o r 0 = 1 − m a x ( 50 100 , 50 100 ) = 0.5 error_0 = 1 − max( \frac{50}{100}, \frac{50}{100}) = 0.5 error0=1−max(10050,10050)=0.5
-
按照A划分
A = T A = F + 25 25 - 0 50 e r r o r ( A = T ) = 0 25 = 0 error_{(A=T)} = \frac{0}{25} = 0 error(A=T)=250=0
e r r o r ( A = F ) = 25 75 = 0.3333 error_{(A=F)} = \frac{25}{75} = 0.3333 error(A=F)=7525=0.3333分类错误率的增益为:
Δ A = e r r o r 0 − 25 100 e r r o r ( A = T ) − 75 100 e r r o r ( A = F ) = 0.25 \Delta_A = error_0 − \frac{25}{100}error_{(A=T)} − \frac{75}{100}error_{(A=F)} = 0.25 ΔA=error0−10025error(A=T)−10075error(A=F)=0.25 -
按照B划分
B = T B = F + 30 20 - 20 30 e r r o r ( B = T ) = 20 50 = 0.4 error_{(B=T)} = \frac{20}{50} = 0.4 error(B=T)=5020=0.4
e r r o r ( B = F ) = 20 50 = 0.4 error_{(B=F)} = \frac{20}{50} = 0.4 error(B=F)=5020=0.4分类错误率的增益为:
Δ B = e r r o r 0 − 50 100 e r r o r ( B = T ) − 50 100 e r r o r ( B = F ) = 0.1 \Delta_B = error_0 − \frac{50}{100}error_{(B=T)} − \frac{50}{100}error_{(B=F)} = 0.1 ΔB=error0−10050error(B=T)−10050error(B=F)=0.1 -
按照C划分
C = T C = F + 25 25 - 25 25 e r r o r ( C = T ) = 25 50 = 0.5 error_{(C=T)} = \frac{25}{50} = 0.5 error(C=T)=5025=0.5
e r r o r ( C = F ) = 25 50 = 0.5 error_{(C=F)} = \frac{25}{50} = 0.5 error(C=F)=5025=0.5分类错误率的增益为:
Δ C = e r r o r 0 − 50 100 e r r o r ( C = T ) − 50 100 e r r o r ( C = F ) = 0 \Delta_C = error_0 − \frac{50}{100}error_{(C=T)} − \frac{50}{100}error_{(C=F)} = 0 ΔC=error0−10050error(C=T)−10050error(C=F)=0
所以,比较增益可得出,应选择A作为第一个划分属性
b
对于
A
=
T
A=T
A=T,已经完全正确分类了,不需要再划分。
对于
A
=
F
A=F
A=F:
划分前的分类错误率为:
e
r
r
o
r
0
=
25
75
=
0.3333
error_0= \frac{25}{75} = 0.3333
error0=7525=0.3333
-
按照B划分
B = T B = F + 25 0 - 20 30 e r r o r ( B = T ) = 20 45 = 0.4444 error_{(B=T)} = \frac{20}{45} = 0.4444 error(B=T)=4520=0.4444
e r r o r ( B = F ) = 0 30 = 0 error_{(B=F)} = \frac{0}{30} = 0 error(B=F)=300=0分类错误率的增益为:
Δ B = e r r o r 0 − 45 75 e r r o r ( B = T ) − 30 75 e r r o r ( B = F ) = 0.0667 \Delta_B = error_0 − \frac{45}{75}error_{(B=T)} − \frac{30}{75}error_{(B=F)} = 0.0667 ΔB=error0−7545error(B=T)−7530error(B=F)=0.0667 -
按照C划分
C = T C = F + 0 25 - 25 25 e r r o r ( C = T ) = 0 25 = 0 error_{(C=T)} = \frac{0}{25} = 0 error(C=T)=250=0
e r r o r ( C = F ) = 25 50 = 0.5 error_{(C=F)} = \frac{25}{50} = 0.5 error(C=F)=5025=0.5分类错误率的增益为:
Δ C = e r r o r 0 − 25 75 e r r o r ( C = T ) − 50 75 e r r o r ( C = F ) = 0 \Delta_C = error_0 − \frac{25}{75}error_{(C=T)} − \frac{50}{75}error_{(C=F)} = 0 ΔC=error0−7525error(C=T)−7550error(C=F)=0
所以,比较增益可得出,应选择B划分
c
20 20 20
d
选择C为划分属性后:
-
C = T C = T C=T
划分前的分类错误率为: e r r o r 0 = 25 50 = 0.5 error_0= \frac{25}{50} = 0.5 error0=5025=0.5
-
按照A划分
A = T A = F + 25 0 - 0 25 e r r o r ( A = T ) = 0 25 = 0 error_{(A=T)} = \frac{0}{25} = 0 error(A=T)=250=0
e r r o r ( A = F ) = 0 25 = 0 error_{(A=F)} = \frac{0}{25} = 0 error(A=F)=250=0分类错误率的增益为:
Δ A = e r r o r 0 − 25 50 e r r o r ( A = T ) − 25 50 e r r o r ( A = F ) = 0.5 \Delta_A = error_0 − \frac{25}{50}error_{(A=T)} − \frac{25}{50}error_{(A=F)} = 0.5 ΔA=error0−5025error(A=T)−5025error(A=F)=0.5 -
按照B划分
B = T B = F + 5 20 - 20 5 e r r o r ( B = T ) = 5 25 = 0.2 error_{(B=T)} = \frac{5}{25} = 0.2 error(B=T)=255=0.2
e r r o r ( B = F ) = 5 25 = 0.2 error_{(B=F)} = \frac{5}{25} = 0.2 error(B=F)=255=0.2分类错误率的增益为:
Δ B = e r r o r 0 − 25 50 e r r o r ( B = T ) − 25 50 e r r o r ( B = F ) = 0.3 \Delta_B = error_0 − \frac{25}{50}error_{(B=T)} − \frac{25}{50}error_{(B=F)} = 0.3 ΔB=error0−5025error(B=T)−5025error(B=F)=0.3
所以,选择A划分
-
-
C = F C = F C=F
划分前的分类错误率为: e r r o r 0 = 25 50 = 0.5 error_0= \frac{25}{50} = 0.5 error0=5025=0.5
-
按照A划分
A = T A = F + 0 25 - 0 25 e r r o r ( A = T ) = 0 25 = 0 error_{(A=T)} = \frac{0}{25} = 0 error(A=T)=250=0
e r r o r ( A = F ) = 25 50 = 0.5 error_{(A=F)} = \frac{25}{50} = 0.5 error(A=F)=5025=0.5分类错误率的增益为:
Δ A = e r r o r 0 − 0 50 e r r o r ( A = T ) − 50 50 e r r o r ( A = F ) = 0 \Delta_A = error_0 − \frac{0}{50}error_{(A=T)} − \frac{50}{50}error_{(A=F)} = 0 ΔA=error0−500error(A=T)−5050error(A=F)=0 -
按照B划分
B = T B = F + 25 0 - 0 25 e r r o r ( B = T ) = 0 25 = 0 error_{(B=T)} = \frac{0}{25} = 0 error(B=T)=250=0
e r r o r ( B = F ) = 0 25 = 0 error_{(B=F)} = \frac{0}{25} = 0 error(B=F)=250=0分类错误率的增益为:
Δ B = e r r o r 0 − 25 50 e r r o r ( B = T ) − 25 50 e r r o r ( B = F ) = 0.5 \Delta_B = error_0 − \frac{25}{50}error_{(B=T)} − \frac{25}{50}error_{(B=F)} = 0.5 ΔB=error0−5025error(B=T)−5025error(B=F)=0.5
所以,选择B划分
-
总错误率为: e r r o r = 0 error= 0 error=0
e
有前几问的结果可以看出:贪心法并不一定能产生最优决策树。
5
a
乐观方法的泛化错误率: e r r o r = 3 10 = 0.3 error=\frac{3}{10}=0.3 error=103=0.3
b
悲观方法的泛化错误率: e r r o r = 3 + 4 × 0.5 10 = 0.5 error=\frac{3+4\times0.5}{10}=0.5 error=103+4×0.5=0.5
c
e r r o r = 4 5 = 0.8 error=\frac{4}{5}=0.8 error=54=0.8
6
因为有16个属性,所以为每个内部结点编码的代价为:
l
o
g
2
(
16
)
=
4
log_2(16) = 4
log2(16)=4
因为有3个类别,所以为每个叶结点编码的代价为:
⌈
l
o
g
2
(
3
)
⌉
=
2
\lceil log_2(3)\rceil = 2
⌈log2(3)⌉=2
为每个错误编码的代价为:
l
o
g
2
(
n
)
log_2(n)
log2(n)
所以:
决策树(a)的总代价为:
2
×
4
+
3
×
2
+
7
×
l
o
g
2
n
=
14
+
7
⋅
l
o
g
2
n
2 \times 4 + 3 \times 2 + 7 \times log_2 n = 14 + 7 \cdot log_2n
2×4+3×2+7×log2n=14+7⋅log2n
决策树(b)的总代价为:
4
×
4
+
5
×
2
+
4
×
l
o
g
2
n
=
26
+
4
⋅
l
o
g
2
n
4 \times 4 + 5 \times 2 + 4 \times log_2 n = 26 + 4 \cdot log_2 n
4×4+5×2+4×log2n=26+4⋅log2n
所以:
n
<
16
n < 16
n<16时,(a)更好
n
>
16
n > 16
n>16时,(b)更好
7
a
根据表3.7中的准确率,我认为,决策树
T
10
T_{10}
T10 在未知实例上有更好的性能。
因为我认为决策树
T
10
T_{10}
T10 在泛化到新实例时可能更可靠,并且可能更少地受到过拟合的影响,虽然决策树
T
100
T_{100}
T100 具有更多的叶节点和更复杂的结构,但它在数据集B上的性能相对较差,这可能意味着它过度拟合了数据集A中的特定模式,而这些模式在数据集B中并不适用。所以我会选择决策树
T
10
T_{10}
T10。
b
T
10
T_{10}
T10 在数据集(A+B)上的准确率为
0.85
0.85
0.85,而
T
100
T_{100}
T100 在数据集(A+B)上的准确率为
0.87
0.87
0.87,所以我会选择决策树
T
100
T_{100}
T100进行分类。
因为相比之下,决策树
T
10
T_{10}
T10 的准确率在整个数据集上略低。这可能表示决策树
T
10
T_{10}
T10 在整个数据集上的性能相对较差,而决策树
T
100
T_{100}
T100 在整个数据集上的性能相对更好。
8
分类器 | 决策树 | 朴素贝叶斯 | 支持向量机 |
---|---|---|---|
决策树 | 0 - 0 - 23 | 9 - 3 - 11 | 2 - 7 - 14 |
朴素贝叶斯 | 3 - 9 - 11 | 0 - 0 - 23 | 0 - 8 - 15 |
支持向量机 | 7 - 2 - 14 | 8 - 0 - 15 | 0 - 0 - 23 |