使用概率论方法求解分类问题,核心就是假设分布为高斯分布,通过训练数据进行最大似然求出分布的参数
朴素贝叶斯方法,前提是各个特征独立
pdf 视频
Classification 和 Regression
不建议用Regression来做Classification ,Regression函数为了得到更小的loss,会拟合右图右下角的点,导致拟合出紫色的函数。而对于分类,绿色的线更好。也就是Regression会 惩罚那些“太正确”的例子……
理想的做法
y
=
f
(
g
(
x
)
)
=
{
1
g(x)>0
0
other
y=f(g(x))= \begin{cases} 1& \text{g(x)>0}\\ 0& \text{other} \end{cases}
y=f(g(x))={10g(x)>0other
损失:
L
(
f
)
=
∑
n
δ
(
f
(
x
n
)
≠
y
^
n
)
L(f)=\sum_{n} \delta\left(f\left(x^{n}\right) \neq \hat{y}^{n}\right)
L(f)=n∑δ(f(xn)=y^n)
有以下方法可以找到最好的function: Perceptron, SVM
概率论方法
还是先把贝叶斯公式写出来:
P
(
C
1
∣
x
)
=
P
(
C
1
x
)
P
(
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\mid x) = \frac{P(C_1x)}{P(x)} = \frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)+P\left(x \mid C_{2}\right) P\left(C_{2}\right)}
P(C1∣x)=P(x)P(C1x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)
稍微解释下:
P
(
C
1
x
)
P(C_1x)
P(C1x)表示是
x
x
x且为
C
1
C_1
C1类的概率,拆分为2步:先求发生
x
x
x的概率
P
(
x
)
P(x)
P(x),然后求
x
x
x发生的条件下为
C
1
C_1
C1类的概率
P
(
C
1
∣
x
)
P(C_1\mid x)
P(C1∣x),所以
P
(
C
1
∣
x
)
≥
P
(
C
1
x
)
=
P
(
C
1
∣
x
)
P
(
x
)
P(C_1\mid x) \ge P(C_1x)=P(C_1\mid x)P(x)
P(C1∣x)≥P(C1x)=P(C1∣x)P(x)
其中
P
(
C
1
)
P(C_1)
P(C1)和
P
(
C
2
)
P(C_2)
P(C2)是已知的,可以直接得到。而
P
(
x
∣
C
1
)
P\left(x \mid C_{1}\right)
P(x∣C1)和
P
(
x
∣
C
2
)
P\left(x \mid C_{2}\right)
P(x∣C2)是需要使用最大似然(Maximum Likelihood)估计求得
C
1
C_1
C1、
C
2
C_2
C2上的概率分布后再求
x
x
x的概率值
可以假设分布是高斯分布:
f
μ
,
Σ
(
x
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
}
f_{\mu, \Sigma}(x)=\frac{1}{(2 \pi)^{D / 2}} \frac{1}{|\Sigma|^{1 / 2}} \exp \left\{-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right\}
fμ,Σ(x)=(2π)D/21∣Σ∣1/21exp{−21(x−μ)TΣ−1(x−μ)}
找一组
μ
\mu
μ和
Σ
\Sigma
Σ使得似然函数最大:
L
(
μ
,
Σ
)
=
f
μ
,
Σ
(
x
1
)
f
μ
,
Σ
(
x
2
)
f
μ
,
Σ
(
x
3
)
…
…
f
μ
,
Σ
(
x
79
)
L(\mu, \Sigma)=f_{\mu, \Sigma}\left(x^{1}\right) f_{\mu, \Sigma}\left(x^{2}\right) f_{\mu, \Sigma}\left(x^{3}\right) \ldots \ldots f_{\mu, \Sigma}\left(x^{79}\right)
L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x3)……fμ,Σ(x79)
求得:
μ
∗
=
1
79
∑
n
=
1
79
x
n
\mu^{*}=\frac{1}{79} \sum_{n=1}^{79} x^{n}
μ∗=791∑n=179xn,
Σ
∗
=
1
79
∑
n
=
1
79
(
x
n
−
μ
∗
)
(
x
n
−
μ
∗
)
T
\Sigma^{*}=\frac{1}{79} \sum_{n=1}^{79}\left(x^{n}-\mu^{*}\right)\left(x^{n}-\mu^{*}\right)^{T}
Σ∗=791∑n=179(xn−μ∗)(xn−μ∗)T
所以可以求得
P
(
C
1
x
)
P(C_1x)
P(C1x),但是准确率不高,从下图也可以看到这种分布不好区分。
如果每个class都有个
Σ
\Sigma
Σ的话参数会非常多,如果特征到7维,还会更多,会造成overfiting
修改模型:
C
1
C_1
C1和
C
2
C_2
C2的
Σ
\Sigma
Σ一样,其中
Σ
=
79
140
Σ
1
+
61
140
Σ
2
\Sigma=\frac{79}{140} \Sigma^{1}+\frac{61}{140} \Sigma^{2}
Σ=14079Σ1+14061Σ2
准确率提升到73%,而且边界是线性的。下面会说明为什么会变成线性。
朴素贝叶斯方法
前提是各个特征独立
求概率可以直接写成:
P
(
x
∣
C
1
)
=
P
(
x
1
∣
C
1
)
P
(
x
2
∣
C
1
)
…
…
P
(
x
k
∣
C
1
)
…
…
P\left(x \mid C_{1}\right)=P\left(x_{1} \mid C_{1}\right) P\left(x_{2} \mid C_{1}\right) \quad \ldots \ldots \quad P\left(x_{k} \mid C_{1}\right) \ldots \ldots
P(x∣C1)=P(x1∣C1)P(x2∣C1)……P(xk∣C1)……
分布函数也不一定就是高斯分布,如果是特征是2项分布,非黑即白,那么分布函数就写成Bernoulli分布(几何分布)
Warning
下面推导就是为了表面为什么共享使用 Σ \Sigma Σ后分界线会变成线性的
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 ) = 1 1 + P ( x ∣ C 2 ) P ( C 2 ) P ( x ∣ C 1 ) P ( C 1 ) = 1 1 + exp ( − z ) = σ ( z ) P\left(C_{1} \mid x\right)=\frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)+P\left(x \mid C_{2}\right) P\left(C_{2}\right)} \\\\ =\frac{1}{1+\frac{P\left(x \mid C_{2}\right) P\left(C_{2}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}}=\frac{1}{1+\exp (-z)}=\sigma(z) P(C1∣x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)=1+P(x∣C1)P(C1)P(x∣C2)P(C2)1=1+exp(−z)1=σ(z)
z
=
ln
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
2
)
P
(
C
2
)
z=\ln \frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{2}\right) P\left(C_{2}\right)}
z=lnP(x∣C2)P(C2)P(x∣C1)P(C1)
一堆推导省略…
当
Σ
1
=
Σ
2
=
Σ
\Sigma_{1}=\Sigma_{2}=\Sigma
Σ1=Σ2=Σ
因此:
P
(
C
1
∣
x
)
=
σ
(
w
⋅
x
+
b
)
P\left(C_{1} \mid x\right)=\sigma(w \cdot x+b)
P(C1∣x)=σ(w⋅x+b)
这就解释了为什么分类边界是线性的,那么为什么不直接求w和b,要弄这么多概率论的东西呢?下一节说…
以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用