写在前面的话
这段时间做毕业论文-贝叶斯分类器。为了写它的一个优化,着实读了一些文献,感慨知网文献难懂程度,对于一些基础的数学概率公式讲解非常系统化、规范化,但也造成如我等萌新阅读起来困难异常。总结一下就是如下过程:
朴素贝叶斯
朴素贝叶斯算法作为机器学习十大入门算法之一,网络上和其相关的视频、文字资料可以说是铺天盖地了,这里笔者偷个懒,不做详细解读。给几认为将的不错的博客链接
朴素贝叶斯分类:原理
机器学习 | 算法笔记- 朴素贝叶斯(Naive Bayesian)
朴素贝叶斯中的出现的问题
朴素贝叶斯最大的问题在其“朴素”二字,何为“朴素”?“朴素”=“不相关”。朴素贝叶斯中有一个极其大胆的假设:所有条件属性互不条件相关。显然,在实际应用中,这个条件是难以达到的。于是乎,各路大佬开始改进它。
条件属性集合里面有相关的属性,那取其中不相关的属性集合作为新的属性集合就好啦!
于是乎,粗糙集登场了(其实还有很多方法,就笔者知道的,主成分分析,方差分析都是数学上不错的属性约减算法)
粗糙集
什么是粗糙集
有点啰嗦,但希望可以看完
笔者认为粗糙集主要功能就是用现有的不完全知识去描绘某样事物。
比如,如果社会对成功人士的定义为:有一个女朋友and一份体面工作。那么如果在已知小明拥有一个女朋友and某大厂干着体面工作的情况下,不需要任何粗糙集知识就可以判断他是一个成功人士。但对于小刚,假设我们只知道他qq天天响特别关心提示音and每天都西装革履,这个时候,我们没有办法一口咬定,小刚也是成功人士,也是在这个时候,粗糙集派上用场。
粗糙集理论
不写了,我知道你们不想看,直接上例子!!!
粗糙集实战
编号 | α 1 \alpha_1 α1 | α 2 \alpha_2 α2 | α 3 \alpha_3 α3 | α 4 \alpha_4 α4 | α 7 \alpha_7 α7 |
---|---|---|---|---|---|
a | 1 | 1 | 0 | 0 | 0 |
b | 1 | 1 | 1 | 1 | 0 |
c | 0 | 0 | 1 | 1 | 1 |
d | 1 | 1 | 0 | 1 | 0 |
e | 0 | 0 | 1 | 1 | 1 |
f | 1 | 1 | 0 | 0 | 0 |
g | 1 | 1 | 1 | 0 | 0 |
h | 0 | 0 | 0 | 1 | 1 |
i | 1 | 1 | 0 | 0 | 0 |
j | 1 | 1 | 0 | 0 | 0 |
我们要干什么?
答:判断哪个属性对于分类是多余的(有他没他都一样)。
论域U={a,b,c,d,e,f,g,h,i,j}条件属性集合A={
α
1
\alpha_1
α1,
α
2
\alpha_2
α2,
α
3
\alpha_3
α3,
α
4
\alpha_4
α4}决策属性B={
α
7
\alpha_7
α7} 。
用符号 “U/IND(属性)” 表示把原来全体成员按照属性划分之后的结果。
例如:
U
/
I
N
D
(
α
1
U/IND(\alpha_1
U/IND(α1)={{a,b,f,g,j,d,i}{c,e,h}}:其中{a,b,f,g,d,i}的属性
α
1
\alpha_1
α1值都是1,而{c,e,h}的属性
α
1
\alpha_1
α1值都是0.同理可得:
可以按照一个属性分,那多个呢?可以观察到a、f、i、j无论按照
α
1
\alpha_1
α1
α
2
\alpha_2
α2
α
3
\alpha_3
α3
α
4
\alpha_4
α4中的哪一种属性去分,都在同一个一个{ }里面,这样的“好兄弟”,按照
α
1
\alpha_1
α1
α
2
\alpha_2
α2
α
3
\alpha_3
α3
α
4
\alpha_4
α4同样是分一类的。
这个时候我们就得到了5大类,我们将其称为“知识”,它们分别是
下面解释一个出现在很多其他博客和论文,但具体计算方式比较隐晦的数学符号:
p
o
s
A
(
B
)
pos_A(B)
posA(B).
p o s A ( B ) pos_A(B) posA(B)
这个符号叫作正域,其值和“下近似”相等。最初
p
o
s
A
(
B
)
pos_A(B)
posA(B)中的B是一个论域的子集。比方说,
p
o
s
A
pos_A
posA({a,b,c,d})表示:从属性A的知识库里面选几个知识去表示集合{a,b,c,d},注意:可以少选,不可以多选。
在知识1里面f、i、j都不在集合{a,b,c,d}里面的,所以知识1不能用;同理知识2中e也不是,所以知识2也不能拿来用,知识3全部在{a,b,c,d}集合中,可以拿来用;同理知识4可以,知识5和6都不可以。
于是
p
o
s
A
(
B
)
pos_A(B)
posA(B)=知识3U知识4={b,d}
但是 在网上大部分属性约算法中
p
o
s
A
(
B
)
pos_A(B)
posA(B)中B指的是决策属性集合{
α
7
\alpha_7
α7}.这个时候就等价于
p
o
s
A
(
U
/
I
N
D
pos_A(U/IND
posA(U/IND{
α
7
\alpha_7
α7})
p
o
s
A
(
B
)
pos_A(B)
posA(B)
=
p
o
s
A
(
U
/
I
N
D
pos_A(U/IND
posA(U/IND{
α
7
\alpha_7
α7})
=
p
o
s
A
(
pos_A(
posA({{a,b,d,f,g,i,j}{c,e,h}})
=
p
o
s
A
(
pos_A(
posA({a,b,d,f,g,i,j})U
p
o
s
A
(
pos_A(
posA({c,e,h})
={a,f,i,j,b,d,g}U{c,e,h}=全体论域U
属性约减
首先计算
U / I N D ( U/IND( U/IND({ α 1 , α 2 , α 3 , α 4 \alpha_1,\alpha_2,\alpha_3,\alpha_4 α1,α2,α3,α4})={{a,f,i,j},{c,e},{b},{d},{g},{h}}
p o s A ( B ) pos_A(B) posA(B)={a,f,i,j,b,d,g,c,e,h}=全体论域U
U / I N D ( U/IND( U/IND({ α 2 , α 3 , α 4 \alpha_2,\alpha_3,\alpha_4 α2,α3,α4})={{a,d,f,i,j},{c,e},{b},{g},{h}}
p o s A − α 1 ( B ) pos_{A-\alpha_1}(B) posA−α1(B)={a,f,i,j,b,d,g,c,e,h}= p o s A ( B ) pos_A(B) posA(B)
说明 α 1 \alpha_1 α1是非必要属性,有他没他分类结果一样。
U / I N D ( U/IND( U/IND({ α 1 , α 3 , α 4 \alpha_1,\alpha_3,\alpha_4 α1,α3,α4})={{a,f,i,j},{c,e},{b},{d},{g},{h}}
p o s A − α 2 ( B ) pos_{A-\alpha_2}(B) posA−α2(B)={a,f,i,j,b,d,g,c,e,h}= p o s A ( B ) pos_A(B) posA(B)
说明 α 2 \alpha_2 α2也是非必要属性,有他没他分类结果一样。
U / I N D ( U/IND( U/IND({ α 1 , α 2 , α 4 \alpha_1,\alpha_2,\alpha_4 α1,α2,α4})={{a,f,g,i,j},{c,e,h},{b},{d}}
p o s A − α 3 ( B ) pos_{A-\alpha_3}(B) posA−α3(B)={a,f,i,j,b,d,g,c,e,h}= p o s A ( B ) pos_A(B) posA(B)
说明 α 3 \alpha_3 α3也是非必要属性,有他没他分类结果一样。
U / I N D ( U/IND( U/IND({ α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3})={{a,d,f,i,j},{c,e},{b},{g},{h}}
p o s A − α 4 ( B ) pos_{A-\alpha_4}(B) posA−α4(B)={a,f,i,j,b,d,g,c,e,h}= p o s A ( B ) pos_A(B) posA(B)
说明 α 4 \alpha_4 α4也是非必要属性,有他没他分类结果一样。
然后删去属性集中一个非必要属性,这里注意一下,不可以一次将所有非必要属性全部删除,这个道理就和线性代数里面线性相关的概念类似。
{ α 1 , α 2 , α 3 , α 4 \alpha_1,\alpha_2,\alpha_3,\alpha_4 α1,α2,α3,α4}线性相关,但删掉任意一个向量后,都有可能变成线性无关的向量组
选择不同的属性删除会得到不同的结果,至于选择谁,可以参考其他文献,属性不多的情况下也可以遍历一下所有结果。这里选择
α
1
\alpha_1
α1删除。
令
A
1
A_1
A1={
α
2
,
α
3
,
α
4
\alpha_2,\alpha_3,\alpha_4
α2,α3,α4}
U / I N D ( U/IND( U/IND({ α 2 , α 3 , α 4 \alpha_2,\alpha_3,\alpha_4 α2,α3,α4})={{a,f,i,j},{c,e},{b},{d},{g},{h}}
p o s A 1 ( B ) pos_{A_1}(B) posA1(B)={a,f,i,j,b,d,g,c,e,h}=全体论域U
U / I N D ( U/IND( U/IND({ α 3 , α 4 \alpha_3,\alpha_4 α3,α4})={{a,d,f,i,j},{b,c,e},{g},{h}}
p o s A 1 − α 2 ( B ) = { a , f , i , j , d , g , h } ≠ p o s A 1 ( B ) pos_{A_1-\alpha_2}(B)=\{a,f,i,j,d,g,h\} \neq pos_{A_1}(B) posA1−α2(B)={a,f,i,j,d,g,h}=posA1(B)
说明 α 2 \alpha_2 α2是必要属性。
U / I N D ( U/IND( U/IND({ α 2 , α 4 \alpha_2,\alpha_4 α2,α4})={{a,f,g,i,j},{c,e,h},{b,d}}
p o s A 1 − α 3 ( B ) pos_{A_1-\alpha_3}(B) posA1−α3(B)={a,f,i,j,b,d,g,c,e,h}= p o s A 1 ( B ) pos_{A_1}(B) posA1(B)
说明 α 3 \alpha_3 α3是非必要属性,有他没他分类结果一样。
U / I N D ( U/IND( U/IND({ α 2 , α 3 \alpha_2,\alpha_3 α2,α3})={{a,d,f,i,j},{c,e},{b},{g},{h}}
p o s A 1 − α 4 ( B ) pos_{A_1-\alpha_4}(B) posA1−α4(B)={a,f,i,j,b,d,g,c,e,h}= p o s A 1 ( B ) pos_{A_1}(B) posA1(B)
说明 α 4 \alpha_4 α4也是非必要属性,有他没他分类结果一样。
这里选择
α
3
\alpha_3
α3删除。
令
A
2
A_2
A2={
α
2
,
α
4
\alpha_2,\alpha_4
α2,α4}
U / I N D ( U/IND( U/IND({ α 2 , α 4 \alpha_2,\alpha_4 α2,α4})={{a,f,i,j},{c,e,h},{b,d},{g}}
p o s A 2 ( B ) pos_{A_2}(B) posA2(B)={a,f,i,j,b,d,g,c,e,h}=全体论域U
α 2 \alpha_2 α2已经在上一步已经判断是必要属性。这里不需要再计算
U / I N D ( U/IND( U/IND({ α 4 \alpha_4 α4})={{a,f,g,i,j},{b,c,d,e,h}}
p o s A 2 − α 2 ( B ) = ∅ ≠ p o s A 2 ( B ) pos_{A_2-\alpha_2}(B)=\emptyset\neq pos_{A_2}(B) posA2−α2(B)=∅=posA2(B)
说明 α 4 \alpha_4 α4是必要属性
于是得到A的一个约减{ α 2 \alpha_2 α2, α 4 \alpha_4 α4}