参考:https://blog.csdn.net/icefire_tyh/article/details/52065224;https://blog.csdn.net/dicker6315/article/details/81265066
题
1.1
版本空间:
概念学习中,学习过程看作是在假设空间(所有特征取值组成的空间)中搜索的过程,搜索目标是寻找与训练集“匹配”的假设。
比如西瓜有色泽、根蒂、敲声3种属性/特征,每种属性/特征都各有3种取值,再加上每种属性的通配取值/泛化取值 ‘ * ’,则每种属性取值情况有4种,最后还有一种情况是不存在正例(此例中意思是 ”根本没有好瓜“),因此假设空间的大小为 4 * 4 * 4+1=65 。
因此总结为:假设数据集有n种属性,第i个属性可能的取值有
t
i
\ t_{i}
ti 种,加上该属性的泛化取值(*),所以可能的假设有
∏
i
(
t
i
+
1
)
\prod_{i}(t_{i}+1)
∏i(ti+1)。再用空集表示没有正例,假设空间中一共
∏
i
(
t
i
+
1
)
+
1
\prod_{i}(t_{i}+1)+1
∏i(ti+1)+1种假设
现实问题中常面临很大的假设空间,但学习过程是基于有限样本训练集进行的,因此存在与训练集一致的多个假设,这个假设集合,称之为版本空间。版本空间从假设空间剔除了与正例不一致的假设和与反例一致的假设,它可以看成是对正例的最大泛化。
编号 | 色泽 | 根蒂 | 敲声 | 好瓜 |
---|---|---|---|---|
1 | 青绿 | 蜷缩 | 浊响 | 是 |
2 | 乌黑 | 稍蜷 | 沉闷 | 否 |
思路一:
数据集有3个属性,每个属性2种取值,加上通配,则基于数据集的版本空间一共 3∗3∗3+1=28种假设,分别为:
1.色泽=青绿 根蒂=蜷缩 敲声=浊响
2.色泽=青绿 根蒂=蜷缩 敲声=沉闷
3.色泽=青绿 根蒂=稍蜷 敲声=浊响
4.色泽=青绿 根蒂=稍蜷 敲声=沉闷
5.色泽=乌黑 根蒂=蜷缩 敲声=浊响
6.色泽=乌黑 根蒂=蜷缩 敲声=沉闷
7.色泽=乌黑 根蒂=稍蜷 敲声=浊响
8.色泽=乌黑 根蒂=稍蜷 敲声=沉闷
9.色泽=青绿 根蒂=蜷缩 敲声=*
10.色泽=青绿 根蒂=稍蜷 敲声=*
11.色泽=乌黑 根蒂=蜷缩 敲声=*
12.色泽=乌黑 根蒂=稍蜷 敲声=*
13.色泽=青绿 根蒂=* 敲声=浊响
14.色泽=青绿 根蒂=* 敲声=沉闷
15.色泽=乌黑 根蒂=* 敲声=浊响
16.色泽=乌黑 根蒂=* 敲声=沉闷
17.色泽=* 根蒂=蜷缩 敲声=浊响
18.色泽=* 根蒂=蜷缩 敲声=沉闷
19.色泽=* 根蒂=稍蜷 敲声=浊响
20.色泽=* 根蒂=稍蜷 敲声=沉闷
21.色泽=青绿 根蒂=* 敲声=*
22.色泽=乌黑 根蒂=* 敲声=*
23.色泽=* 根蒂=蜷缩 敲声=*
24.色泽=* 根蒂=稍蜷 敲声=*
25.色泽=* 根蒂=* 敲声=浊响
26.色泽=* 根蒂=* 敲声=沉闷
27.色泽=* 根蒂=* 敲声=*
28.空集Ø
接下来在上述28种情况中,将与正例不一致的假设以及和反例一致的假设删除:
删除与正例不一致的假设:2 ~ 8,10 ~ 12,14 ~ 16,18 ~ 20,22,24,26,28
删除与反例一致的假设:27
删除后,版本空间为:
1.色泽=青绿 根蒂=蜷缩 敲声=浊响
9.色泽=青绿 根蒂=蜷缩 敲声=*
13.色泽=青绿 根蒂=* 敲声=浊响
17.色泽=* 根蒂=蜷缩 敲声=浊响
21.色泽=青绿 根蒂=* 敲声=*
23.色泽=* 根蒂=蜷缩 敲声=*
25.色泽=* 根蒂=* 敲声=浊响
思路二:
因为版本空间是正例的最大泛化,而第二条数据是反例,所以不去管他,因此每种属性有一种取值,加上通配 * ,就是两种取值,所以情况有222+1=9种,最后一种是空集,去掉,所以罗列出八种情况:
1.色泽=青绿 根蒂=蜷缩 敲声=浊响
2.色泽=青绿 根蒂=蜷缩 敲声=*
3.色泽=青绿 根蒂=* 敲声=浊响
4.色泽=* 根蒂=蜷缩 敲声=浊响
5.色泽=青绿 根蒂=* 敲声=*
6.色泽=* 根蒂=蜷缩 敲声=*
7.色泽=* 根蒂=* 敲声=浊响
8.色泽=* 根蒂=* 敲声=*(反例也符合,去掉)
所以,版本空间为上述1~7
1.2
不考虑冗余情况:
表1.1包含4个样例,3种属性,假设空间中有(第一个属性在表中只取了两个值,再加上 * ,因此是3)3∗4∗4+1=49种假设。在不考虑冗余的情况下,最多包含k个合取式来表达假设空间,显然k的取值范围是1~49,每次从中选出k个来组成析合式,共
Σ
C
49
k
=
2
49
\Sigma C_{49}^{k}=2^{49}
ΣC49k=249 种可能。但是其中包含了很多冗余的情况(冗余:至少存在一个合取式被剩余的析合式完全包含<空集除外>)。
考虑冗余情况:
在这里忽略空集,一个原因是并不是太明白空集是否应该加入析合式,另外就算需要加入,求出了前面48种假设的组合,可以很容易求出加入空集后的组合数(每种可能都可以加上空集,再加上1种空集单独的情况)。
48种假设中:
具体属性假设:2∗3∗3=18种
一个属性泛化假设:2∗3+3∗3+2∗3=21种
两个属性泛化假设:2+3+3=8种
三属性泛化:11种
当k=1时,任选一种假设都可以作为一种没有冗余的假设,共48种。
k的最大值是18,当k等于18时,就是18种具体属性假设的析取式,共11种。
当k取中间值(大于1小于18)时,请参考https://blog.csdn.net/icefire_tyh/article/details/52065626
1.3
三个属性分配不同大小的权重,按权重去分类,哪个假设与训练样本的权重之和最大,就挑哪个假设