再由模糊集G和H求出r2所表示的模糊关系R2m, R2c, R2g 再由模糊集F和H求出r3所表示的模糊关系R3m, R3c, R3g 然后再将R1m, R1c, R1g分别与R2m, R2c, R2g合成得R12 m, R12c, R12g 最后将R12 m, R12c, R12g分别与R3m, R3c, R3g比较
第7章
7-6 设训练例子集如下表所示:
序号 1 2 3 4 5 6 属性 x1 T T T F F F x2 T T F F T T 分类 + + - + _ _ 机器学习参考答案
请用ID3算法完成其学习过程。
解:设根节点为S,尽管它包含了所有的训练例子,但却没有包含任何分类信息,因此具有最大的信息熵。即:
H(S)= - (P(+)log2 P(+) + P(-)log2 P(-))
式中
P(+)=3/6,P(-)=3/6
分别是决策方案为“+”或“-”时的概率。因此有
H(S)= - ((3/6)log2(3/6) + (3/6)log2(3/6)) =1
按照ID3算法,需要选择一个能使S的期望熵为最小的一个属性对根节点进行扩展,因此我们需要先计算S关于每个属性的条件熵:
H(S|xi)= ( |ST| / |S|)* H(ST) + ( |SF| / |S|)* H(SF)
其中,T和F为属性xi的属性值,ST和SF分别为xi=T或xi=F时的例子集,|S|、| ST|和|SF|分别为例子集S、ST和SF 的大小。
下面先计算S关于属性x1的条件熵: 在本题中,当x1=T时,有: ST={1,2,3} 当x1=F时,有:
SF={4,5,6}
其中,ST 和SF中的数字均为例子集S中的各个例子的序号,且有|S|=6,| ST |=| SF |=3。
33
由ST可知,其决策方案为“+”或“-”的概率分别是: PST(+)=2/3
PST (-)=1/3
因此有:
H(ST)= - (PST (+)log2 PST (+) + PST (-)log2 PST (- ))
= - ((2/3)log2(2/3) + (1/3)log2(1/3)) =0.9183
再由SF可知,其决策方案为“+”或“-”的概率分别是: PSF (+)=1/3
PSF (-)=2/3
则有:
H (SF)= - (PSF (+)log2 PSF (+) + PSF (-)log2 PSF (- ))
= - ((1/3)log2(1/3)+ (2/3)log2(2/3)) =0.9183
将H(ST)和H (SF)代入条件熵公式,有:
H(S|x1)=(|ST|/|S|)H(ST)+ (|SF|/|S|)H(SF) =(3/6)﹡0.9183 + (3/6)﹡0.9183
=0.9183
下面再计算S关于属性x2的条件熵: 在本题中,当x2=T时,有: ST={1,2,5,6} 当x2=F时,有:
SF={3,4}
其中,ST 和SF中的数字均为例子集S中的各个例子的序号,且有|S|=6,| ST |=4,| SF |=2。
由ST可知: PST (+) = 2/4
P ST (-) = 2/4
则有:
H(ST)= - (P ST (+)log2 P ST (+) + P ST (-)log2 P ST (- ))
= - ((2/4)log2(2/4) + (2/4)log2(2/4)) =1
再由SF可知: P SF (+)=1/2
P SF (-)=1/2
则有:
H(SF)= - (P(+)log2 P(+) + P(-)log2 P(- ))
= - ((1/2)log2(1/2)+ (1/2)log2(1/2)) =1
将H(ST)和H (SF)代入条件熵公式,有:
H(S|x2)=(|ST|/|S|)H(ST)+ (|SF|/|S|)H(SF)
34
=(4/6)﹡1 + (2/6)﹡1
=1
可见,应该选择属性x1对根节点进行扩展。用x1对S扩展后所得到的部分决策树如下图所示。
x1=T (+,+,-) S x1=F (+,-,-) 扩展x1后的部分决策树
在该决策树中,其2个叶节点均不是最终决策方案,因此还需要继续扩展。而要继续扩展,只有属性x2可选择,因此不需要再进行条件熵的计算,可直接对属性x2进行扩展。
对x2扩展后所得到的决策树如下图所示:
x1=T (+,+,-) x2=T (+,+) S x2=F (+,-,-) x2=F x2=T (-) (-,-) x2=F (+)
7-9假设w1(0)=0.2, w2(0)=0.4, θ(0)=0.3, η=0.4,请用单层感知器完成逻辑或运算的学习过程。 解:根据“或”运算的逻辑关系,可将问题转换为: 输入向量:X1=[0, 0, 1, 1] X2=[0, 1, 0, 1] 输出向量:Y=[0, 1, 1, 1]
由题意可知,初始连接权值、阈值,以及增益因子的取值分别为: w1(0)=0.2, w2(0)=0.4, θ(0)=0.3,η=0.4
即其输入向量X(0)和连接权值向量W(0)可分别表示为: X(0)=(-1, x1 (0), x2 (0))
W(0)=(θ(0), w1(0), w2 (0))
根据单层感知起学习算法,其学习过程如下:
设感知器的两个输入为x1(0)=0和x2(0)=0,其期望输出为d(0)=0,实际输出为:
y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0)) =f(0.2*0+0.4*0-0.3)=f(-0.3)=0 实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(0)=0和x2(0)=1,其期望输出为d(0)=1,实际输出为:
y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0)) =f(0.2*0+0.4*1-0.3)=f(0.1)=1
35
扩展x2后得到的完整决策树
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(0)=1和x2(0)=0,其期望输出为d(0)=1,实际输出为:
y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0)) =f(0.2*1+0.4*0-0.3)
=f(-0.1)=0
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(1)=θ(0)+η(d(0)- y(0))*(-1)=0.3+0.4*(1-0)*(-1)= -0.1 w1(1)=w1(0)+η(d(0)- y(0))x1(0)=0.2+0.4*(1-0)*1=0.6 w2(1)=w2(0)+η(d(0)- y(0))x2(0)=0.4+0.4*(1-0)*0=0.4
再取下一组输入:x1(1)=1和x2(1)=1,其期望输出为d(1)=1,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1)) =f(0.6*1+0.4*1+0.1)
=f(1.1)=1
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(1)=0和x2(1)=0,其期望输出为d(0)=0,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1)) =f(0.6*0+0.4*0 + 0.1)=f(0.1)=1 实际输出与期望输出不同,需要调节权值,其调整如下:
θ(2)=θ(1)+η(d(1)- y(1))*(-1)= -0.1+0.4*(0-1)*(-1)= 0.3 w1(2)=w1(1)+η(d(1)- y(1))x1(1)=0.6+0.4*(0-1)*0=0.6 w2(2)=w2(1)+η(d(1)- y(1))x2(1)=0.4+0.4*(0-1)*0=0.4
再取下一组输入:x1(2)=0和x2(2)=1,其期望输出为d(2)=1,实际输出为:
y(2)=f(w1(2) x1(2)+ w2(2) x2(2)-θ(2)) =f(0.6*0+0.4*1 - 0.3)=f(0.1)=1 实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(2)=1和x2(2)=0,其期望输出为d(2)=1,实际输出为:
y(2)=f(w1(2) x1(2)+ w2(2) x2(2)-θ(2)) =f(0.6*1+0.4*0 - 0.3)=f(0.3)=1 实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(2)=1和x2(2)=1,其期望输出为d(2)=1,实际输出为:
y(2)=f(w1(2) x1(2)+ w2(2) x2(2)-θ(2)) =f(0.6*1+0.4*1 - 0.3)=f(0.7)=1 实际输出与期望输出相同,不需要调节权值。
至此,学习过程结束。最后的得到的阈值和连接权值分别为:
θ(2)= 0.3 w1(2)=0.6 w2(2)= 0.4 不仿验证如下:
对输入:“0 0”有y=f(0.6*0+0.4*0-0.3)=f(-0.3)=0 对输入:“0 1”有y=f(0.6*0+0.4*1-0.3)=f(0.1)=1
36