1.分类
分类,顾名思义就是给我们一堆输入,某种规则将它们分为几类,例如利用信用卡信誉积分将顾客分为几档,从而决定是否给与贷款;根据病人的年龄、症状、患病时间来判断病人所患的病也是一种分类等等。现在还是以宝可梦为例,假设现在随着宝可梦越来越多,我们想要知道新抓的宝可梦是属于哪一种属性的。
先来看看假如用前面学过的线性回归的方法将它作为二值分类来解决会出现什么情况。
2.概率模型
贝叶斯公式:
(1)
P
(
A
i
∣
B
)
=
P
(
B
∣
A
i
)
P
(
A
i
)
∑
j
=
1
n
P
(
B
∣
A
i
)
P
(
A
i
)
i
=
1
,
2
,
⋯
 
,
n
P(A_i|B)=\frac {P(B|A_i)P(A_i)}{\sum\limits_{j=1}^nP(B|A_i)P(A_i)}\ \ \ \ \ \ \ \ \ \ \ \ i=1,2,\cdots,n\tag 1
P(Ai∣B)=j=1∑nP(B∣Ai)P(Ai)P(B∣Ai)P(Ai) i=1,2,⋯,n(1)其中,
(2)
P
(
B
)
=
∑
j
=
1
n
P
(
B
∣
A
i
)
P
(
A
i
)
P(B)=\sum\limits_{j=1}^nP(B|A_i)P(A_i)\tag2
P(B)=j=1∑nP(B∣Ai)P(Ai)(2)即全概率公式;
P
(
A
∣
B
)
P(A|B)
P(A∣B)在事件
B
B
B发生的条件下事件
A
A
A发生的概率。
A
1
,
A
2
.
⋯
⋯
 
,
A
n
A_1,A_2.\cdots\cdots,A_n
A1,A2.⋯⋯,An为完备事件组。例如有两类数据,如果给定一个
x
x
x,它属于
c
1
c_1
c1的概率为
(3)
P
(
c
1
∣
x
)
=
P
(
x
∣
c
1
)
P
(
c
1
)
P
(
x
∣
c
1
)
P
(
c
1
)
+
P
(
x
∣
c
2
)
P
(
c
2
)
P(c_1|x)=\frac {P(x|c_1)P(c_1)}{P(x|c_1)P(c_1)+P(x|c_2)P(c_2)}\tag 3
P(c1∣x)=P(x∣c1)P(c1)+P(x∣c2)P(c2)P(x∣c1)P(c1)(3)如图
假设现在我们统计180个宝可梦的类别属性,其中有79个水系宝可梦,61个正常系宝可梦,那么 P ( c 1 ) = 79 ( 79 + 61 ) = 0.56 , P ( c 2 ) = 61 ( 79 + 61 ) = 0.44 P(c_1)=\frac{79}{(79+61)}=0.56,P(c_2)=\frac{61}{(79+61)}=0.44 P(c1)=(79+61)79=0.56,P(c2)=(79+61)61=0.44,来看看怎么求 P ( x ∣ c 1 ) P(x|c_1) P(x∣c1)。
图中每一个点代表一个宝可梦,假设有一只我们没见过的宝可梦而说它为水系宝可梦的概率为0显然是不正确的(这只宝可梦一看就知道是水系的),这时候就需要根据训练集数据找出水系宝可梦的概率分布,这里假设服从高斯分布(也可以假设为别的分布):
(5)
f
u
,
Σ
(
x
)
=
1
2
π
D
/
2
1
∣
Σ
∣
1
/
2
e
x
p
(
−
1
2
(
x
−
u
)
T
Σ
−
1
(
x
−
u
)
)
f_{u,\Sigma}(x)=\frac1{{2\pi}^{D/2}}\frac1{{|\Sigma|}^{1/2}}exp{(-\frac12(x-u)^T\Sigma^{-1}(x-u))}\tag5
fu,Σ(x)=2πD/21∣Σ∣1/21exp(−21(x−u)TΣ−1(x−u))(5)其中,
u
u
u为均值(mean),
Σ
\Sigma
Σ为协方差阵(covariance matrix)。根据这79个点,我们用极大似然估计求出该高斯分布的均值和协方差阵
3.分类
根据上面的分析我们可以做分类了,当求出的
P
(
c
1
∣
x
)
>
0
P(c_1|x)>0
P(c1∣x)>0时,我们认为宝可梦为水系,否则为正常系。结果如图:
通常是将两个属性共用一个协方差矩阵,因为如果用不同的协方差矩阵,参数会很多,就容易造成过拟合,减少参数的一个有效方法就是对不同的属性,用相同的协方差矩阵。如图:
4.sigmoid函数
具体求解过程请大家参照概率论 ↩︎