《机器学习》(西瓜书)---周志华习题1.2学习记录

旨在交流和学习,我自学,又没有好的交流方式,于是我想到了在csdn上写博客

西瓜书习题1.2

题目内容:
与使用单个合取式来进行假设表示相比,使用“析合范式”将使得假设空间具有更强的表达能力,例如:

好瓜←→ ((色泽=*)∧(根蒂=蜷缩)∧(敲声=*))∨((色泽=乌黑)∧(根蒂=*)∧(敲声=沉闷))

会把“(色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆)”以及“(色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆)”都分类为“好瓜”。若使用最多包含k个合取式的析合范式来表达下表西瓜分类问题的假设空间,试估算共有多少中可能的假设。

表1 西瓜数据集

编号 色泽 根蒂 敲声 是否是好瓜
1 青绿 蜷缩 浊响
2 乌黑 蜷缩 浊响
3 青绿 硬挺 清脆
4 乌黑 稍蜷 沉闷

题面解析

这题目本身好难理清,若不懂得其中设计到的概念根本无从下手。“单个合取式”,“析合范式”,‘∨’ ‘∧’ ‘←→’是离散数学上的逻辑表达式和逻辑运算符。
假设空间hypothesis space):空间的意思就是集合,若想表示假设空间,找出该集合的所有子集即可。假设空间中的子集包括 空集,1维子集,2维子集,…n(n集合的最大单子集数)维子集。
举例,集合S=[1,2,3,4,5] 1维子集,即为,S→S的映射[1,2,3,4,5],S集合所在假设空间的2维子集为S⊗S→S的映射[^1][(1,1),(1,2),(1,3),…,(5,3),(5,4),(5,5)]

S⊗S⊗S⊗S⊗S→S的映射[(1,1,1,1,1),(1,1,1,1,2),…,(5,5,5,5,4),(5,5,5,5,5)]

下午又考虑到,其实像(1,1,1,1,1)这样的子集的确是假设空间的一个子集,但是实际却没有意义,比如,你说什么是好瓜,你把其中一种可能,罗列五次,即k=5的析合范式,与k=1的合取式是等价的。
k=5的析合范式

((色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆))((色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆))((色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆))((色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆))((色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆))

与k=1的合取式,是等价的

(色泽=青绿)∧(根蒂=蜷缩)∧(敲声=清脆)

与k=2,3,4也是等价的,
所以上面举例集合S=[1,2,3,4,5] 1维子集,即为,S→S的映射[1,2,3,4,5],S集合所在假设空间的2维子集为S⊗S→S的映射[(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)]因为(i,j)与(j,i)所代表的k=2析合范式是等价的

S⊗S⊗S⊗S⊗S→S的映射[(1,2,3,4,5)]
我在解题思路中并没有使用通配符星号,因为我发觉这样会带来不必要的计算,并且,在后面还要去掉所谓的冗余的情况。
这里S集(类比与上面的举例)为2x3x3=18个一维子集,并不考虑通配符的情况,这个问题我考虑了好久,出现通配符的冗余,很困难摒除冗余。若不考虑通配符,问题反而变得简单起来。
[a1b1c1,a1b1c2,a1b1c3,a1b2c1,a1b2c2,a1b2c3,a1b3c1,a1b3c2,a1b3c3,
a2b1c1,a2b1c2,a2b1c3,a2b2c1,a2b2c2,a2b2c3,a2b3c1,a2b3c2,a2b3c3]
其中

1 2 3
a 色泽=青绿 色泽=乌黑 ----
b 根蒂=蜷缩 根蒂=稍蜷 根蒂=硬挺
c 敲声=浊响 敲声=清脆 敲声=沉闷

把上集合简化为[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
k=1,时所有的析合式为:
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
k=2,时,所有的析合范式为:
[(1,2),(1,3),(1,4),(1,5),…,(1,17),(1,18),(2,3),(2,4),(2,5),…(2,18),…,(16,17),(16,17),(16,18),(17,18)] 所有可能的析合范式的个数为,17+16+15+…+3+2 即为152
k=3时,[(1,2,3),(1,2,4),(1,2,5),…(1,3,4),(1,3,5),(1,3,6).(1,3,7),…(1,16,17)

result=0
for i in range(1,17):
    for j in range((i+1),19):
        for k in range((j+1),19):
            print((i,j,k))
            result=result+1

print(result)

运行结果

(1, 2, 3)
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 2, 7)
(1, 2, 8)
(1, 2, 9)
(1, 2, 10)
(1, 2, 11)
(1, 2, 12)
(1, 2, 13)
(1, 2, 14)
(1, 2, 15)
(1, 2, 16)
(1, 2, 17)
(1, 2, 18)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)
(1, 3, 7)
(1, 3, 8)
(1, 3, 9)
(1, 3, 10)
(1, 3, 11)
(1, 3, 12)
(1, 3, 13)
(1, 3, 14)
(1, 3, 15)
(1, 3, 16)
(1, 3, 17)
(1, 3, 18)
(1, 4, 5)
(1, 4, 6)
(1, 4, 7)
(1, 4, 8)
(1, 4, 9)
(1, 4, 10)
(1, 4, 11)
(1, 4, 12)
(1, 4, 13)
(1, 4, 14)
(1, 4, 15)
(1, 4, 16)
(1, 4, 17)
(1, 4, 18)
(1, 5, 6)
(1, 5, 7)
(1, 5, 8)
(1, 5, 9)
(1, 5, 10)
(1, 5, 11)
(1, 5, 12)
(1, 5, 13)
(1, 5, 14)
(1, 5, 15)
(1, 5, 16)
(1, 5, 17)
(1, 5, 18)
(1, 6, 7)
(1, 6, 8)
(1, 6, 9)
(1, 6, 10)
(1, 6, 11)
(1, 6, 12)
(1, 6, 13)
(1, 6, 14)
(1, 6, 15)
(1, 6, 16)
(1, 6, 17)
(1, 6, 18)
(1, 7, 8)
(1, 7, 9)
(1, 7, 10)
(1, 7, 11)
(1, 7, 12)
(1, 7, 13)
(1, 7, 14)
(1, 7, 15)
(1, 7, 16)
(1, 7, 17)
(1, 7, 18)
(1, 8, 9)
(1, 8, 10)
(1, 8, 11)
(1, 8, 12)
(1, 8, 13)
(1, 8, 14)
(1, 8, 15)
(1, 8, 16)
(1, 8, 17)
(1, 8, 18)
(1, 9, 10)
(1, 9, 11)
(1, 9, 12)
(1, 9, 13)
(1, 9, 14)
(1, 9, 15)
(1, 9, 16)
(1, 9, 17)
(1, 9, 18)
(1, 10, 11)
(1, 10, 12)
(1, 10, 13)
(1, 10, 14)
(1, 10, 15)
(1, 10, 16)
(1, 10, 17)
(1, 10, 18)
(1, 11, 12)
(1, 11, 13)
(1, 11, 14)
(1, 11, 15)
(1, 11, 16)
(1, 11, 17)
(1, 11, 18)
(1, 12, 13)
(1, 12, 14)
(1, 12, 15)
(1, 12, 16)
(1, 12, 17)
(1, 12, 18)
(1, 13, 14)
(1, 13, 15)
(1, 13, 16)
(1, 13, 17)
(1, 13, 18)
(1, 14, 15)
(1, 14, 16)
(1, 14, 17)
(1, 14, 18)
(1, 15, 16)
(1, 15, 17)
(1, 15, 18)
(1, 16, 17)
(1, 16, 18)
(1, 17, 18)
(2, 3, 4)
(2, 3, 5)
(2, 3, 6)
(2, 3, 7)
(2, 3, 8)
(2, 3, 9)
(2
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值