Classification 和 Regression

不建议用Regression来做Classification ,Regression函数为了得到更小的loss,会拟合右图右下角的点,导致拟合出紫色的函数。而对于分类,绿色的线更好。也就是Regression会 惩罚那些“太正确”的例子……

笔记:ML-LHY-4 Classification

理想的做法

y=f(g(x))={1g(x)>00othery=f(g(x))= \begin{cases} 1& \text{g(x)>0}\\ 0& \text{other} \end{cases}
损失:
L(f)=nδ(f(xn)y^n)L(f)=\sum_{n} \delta\left(f\left(x^{n}\right) \neq \hat{y}^{n}\right)
有以下方法可以找到最好的function: Perceptron, SVM

概率论方法

回顾:贝叶斯公式最大似然估计法

还是先把贝叶斯公式写出来:
P(C1x)=P(C1x)P(x)=P(xC1)P(C1)P(xC1)P(C1)+P(xC2)P(C2)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(C1x)P(C_1x)表示xxC1C_1类的概率,拆分为2步:先求发生xx的概率P(x)P(x),然后求xx发生的条件下为C1C_1类的概率P(C1x)P(C_1\mid x),所以P(C1x)P(C1x)=P(C1x)P(x)P(C_1\mid x) \ge P(C_1x)=P(C_1\mid x)P(x)

其中P(C1)P(C_1)P(C2)P(C_2)是已知的,可以直接得到。而P(xC1)P\left(x \mid C_{1}\right)P(xC2)P\left(x \mid C_{2}\right)是需要使用最大似然(Maximum Likelihood)估计求得C1C_1C2C_2上的概率分布后再求xx的概率值
可以假设分布是高斯分布:
fμ,Σ(x)=1(2π)D/21Σ1/2exp{12(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\}
笔记:ML-LHY-4 Classification
找一组μ\muΣ\Sigma使得似然函数最大:
L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x3)fμ,Σ(x79)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)

求得:
μ=179n=179xn\mu^{*}=\frac{1}{79} \sum_{n=1}^{79} x^{n}Σ=179n=179(xnμ)(xnμ)T\Sigma^{*}=\frac{1}{79} \sum_{n=1}^{79}\left(x^{n}-\mu^{*}\right)\left(x^{n}-\mu^{*}\right)^{T}
所以可以求得P(C1x)P(C_1x),但是准确率不高,从下图也可以看到这种分布不好区分。

笔记:ML-LHY-4 Classification
如果每个class都有个 Σ\Sigma的话参数会非常多,如果特征到7维,还会更多,会造成overfiting
修改模型:C1C_1C2C_2Σ\Sigma一样,其中Σ=79140Σ1+61140Σ2\Sigma=\frac{79}{140} \Sigma^{1}+\frac{61}{140} \Sigma^{2}

笔记:ML-LHY-4 Classification
准确率提升到73%,而且边界是线性的。下面会说明为什么会变成线性。

朴素贝叶斯方法

前提是各个特征独立

求概率可以直接写成:
P(xC1)=P(x1C1)P(x2C1)P(xkC1)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

分布函数也不一定就是高斯分布,如果是特征是2项分布,非黑即白,那么分布函数就写成Bernoulli分布(几何分布)

Warning

下面推导就是为了表面为什么共享使用Σ\Sigma后分界线会变成线性的

lP(C1x)=P(xC1)P(C1)P(xC1)P(C1)+P(xC2)P(C2)=11+P(xC2)P(C2)P(xC1)P(C1)=11+exp(z)=σ(z){l} 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)

z=lnP(xC1)P(C1)P(xC2)P(C2)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)}
一堆推导省略…
Σ1=Σ2=Σ\Sigma_{1}=\Sigma_{2}=\Sigma
笔记:ML-LHY-4 Classification
因此:
P(C1x)=σ(wx+b)P\left(C_{1} \mid x\right)=\sigma(w \cdot x+b)
这就解释了为什么分类边界是线性的,那么为什么不直接求w和b,要弄这么多概率论的东西呢?下一节说…

相关文章: