分类——生成模型

分类:概率生成模型

Classification: Probabilistic Generative Model

回归做分类?NO!

——用Regreesion强制做Classification

—— NO!!!!

以二分类举例的情况下,如果回归的数值越接近于1,则我们认为是正类;否则为负类。

在这样的训练集上进行回归,某种程度上是能够拟合出一个较好的分界,使得上述成立。

但是,也有可能是,属于某个正类的回归预测值非常非常大,这样的情况下,它会error地得到另一个分界

因为 回归定义分界的好坏是(Loss Function),是点到线的距离差的平方和(某种Loss Function)

这种定义对分类来说,是不适用的

分类——生成模型

而且,这种情况下, 相当于默认了某种Class的关系

比如,在多分类问题里:

——我们将Class 1 means the target is 1; Class 2 means the target 2;Class 3 means the target 3;…

在这种情况下,我们有可能会认为第二类与第三类比较近,第四类和第三类比较远,但实际上, 我们的类上并不存在这样的关系。

; 做法

  • Function(Model) 输入x后,若f(x)>0 则输出类型1;否则输出类型2
  • Loss Function
    L ( f ) = ∑ n δ ( f ( x n ) ≠ y ^ n ) L(f)=\sum_n\delta(f(x^n)\neq \hat{y}^n)L (f )=n ∑​δ(f (x n )=y ^​n )
    我们希望它预测错误的次数越少越好
  • Find the best function:
  • Example:Perceptron,SVM

分类——生成模型

生成模型

利用 条件概率——贝叶斯公式进行分类

假设给我一个x,那么这个x属于Class 1的几率就为
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|x)=\frac{P(C_1x)}{P(x)}=\frac{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 )=P (x )P (C 1 ​∗x )​=P (x ∣C 1 ​)P (C 1 ​)+P (x ∣C 2 ​)P (C 2 ​)P (x ∣C 1 ​)P (C 1 ​)​
属于哪个类的概率越大,则x属于这个类*

——如何得到P ( x ∣ C 1 ) P(x|C_1)P (x ∣C 1 ​)

高斯分布

假设说,我们 没有见过这个x,那么在训练集上,这个P ( x ∣ C 1 ) P(x|C_1)P (x ∣C 1 ​)的概率就是显而易见为0——这是不正确的!

因为这个x其实是—— 特征向量(A feature vector)

我们可以理解为——我们的训练集是, 从一个Gaussian的分布里(也可能是别的分布),采样出来的点,我们 通过研究采样的点,来找到Gaussian的分布

——高斯分布(即正态分布)——也可能是别的密度分布函数

——本质上,我们 输入一个vector(特征向量),那么 在分布里,我们就能找到,采样到这个向量的可能性(即分布中常提到的密度分布)

  • 输入:vector x
  • 输出:Sampling x的可能性

这个分布函数的形状,取决于 mean μ \mu μ 和 covariance matrix Σ \Sigma Σ

——即取决于均数和协方差矩阵

——注意, 这里的均数μ \mu μ 也是一个vector

f μ , Σ ( x ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f_{\mu,\Sigma}(x)=\frac{1}{(2\pi)^{D/2}}\frac{1}{|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))f μ,Σ​(x )=(2 π)D /2 1 ​∣Σ∣1/2 1 ​e x p (−2 1 ​(x −μ)T Σ−1 (x −μ))

分类——生成模型

; 如何找到 μ \mu μ 和 Σ \Sigma Σ

Maximum Likelihood

比如你有79个点,那么就 这个分布采样出这79个点的概率是最大的

——Likelihood Function

L ( μ , Σ ) = f μ , Σ ( x 1 ) f ( x 2 ) . . . f ( x 79 ) L(\mu,\Sigma)=f_{\mu,\Sigma}(x_1)f(x_2)…f(x_{79})L (μ,Σ)=f μ,Σ​(x 1 ​)f (x 2 ​)…f (x 79 ​)

我们希望找到μ ∗ , Σ ∗ \mu^{},\Sigma^μ∗,Σ∗, 使得 a r g max ⁡ μ , Σ L ( μ , Σ ) arg\max_{\mu,\Sigma}L(\mu,\Sigma)a r g max μ,Σ​L (μ,Σ)
μ ∗ = 1 79 ∑ n = 1 79 x n Σ ∗ = 1 79 ∑ n = 1 79 ( x n − μ ∗ ) ( x n − μ ∗ ) T \mu^=\frac{1}{79}\sum_{n=1}^{79}x^n\ \Sigma^=\frac{1}{79}\sum_{n=1}^{79}(x^n-\mu^)(x^n-\mu^)^T μ∗=79 1 ​n =1 ∑79 ​x n Σ∗=79 1 ​n =1 ∑79 ​(x n −μ∗)(x n −μ∗)T

分类——生成模型

Why Called 生成模型

我们可以计算出每个x出现的概率,我们就知道每一个x的分布,我们就可以用这个分布来产生x,采样x
P ( x ) = P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(x)=P(x|C_1)P(C_1)+P(x|C_2)P(C_2)P (x )=P (x ∣C 1 ​)P (C 1 ​)+P (x ∣C 2 ​)P (C 2 ​)
—— 全概率公式

修改模型

不同的类其实可以 共用一个协方差矩阵

——因为协方差矩阵和特征size的平方成正比

因此协方差矩阵的增长非常快,如果不同的类给予不同的协方差矩阵

那么Model的 参数过多,参数太多则Variance就大,那么就 容易overfitting

How to Calculate

Find μ 1 , μ 2 , Σ \mu^1,\mu^2,\Sigma μ1 ,μ2 ,Σ maximizing the likelihood L ( μ 1 , μ 2 , Σ ) L(\mu^1,\mu^2,\Sigma)L (μ1 ,μ2 ,Σ)
L ( μ 1 , μ 2 , Σ ) = f μ 1 , Σ ( x 1 ) f μ 1 , Σ ( x 2 ) . . . f μ 1 , Σ ( x 79 ) ∗ f μ 2 , Σ ( x 80 ) . . . f μ 2 , Σ ( x 140 ) L(\mu^1,\mu^2,\Sigma)=f_{\mu^1,\Sigma}(x^1)f_{\mu^1,\Sigma}(x^2)…f_{\mu^1,\Sigma}(x^{79})*f_{\mu^2,\Sigma}(x^{80})…f_{\mu^2,\Sigma}(x^{140})L (μ1 ,μ2 ,Σ)=f μ1 ,Σ​(x 1 )f μ1 ,Σ​(x 2 )…f μ1 ,Σ​(x 79 )∗f μ2 ,Σ​(x 80 )…f μ2 ,Σ​(x 140 )

μ 1 , μ 2 = 1 79 ∑ n = 1 79 x n \mu^1,\mu^2=\frac{1}{79}\sum_{n=1}^{79}x^n\μ1 ,μ2 =79 1 ​n =1 ∑79 ​x n

Σ = 79 140 Σ 1 + 61 140 Σ 2 \Sigma=\frac{79}{140}\Sigma^1+\frac{61}{140}\Sigma^2 Σ=140 79 ​Σ1 +140 61 ​Σ2

分类——生成模型

——选用所有特征之后的结果

分类——生成模型

; 朴素贝叶斯做法

分类——生成模型

不同模型的选择

——你永远可以选择你喜欢的

你选择参数少的——Bias大,Variance小

你选择参数多的——Bias小,Variance大

——对于 二值特征,你不会假设它为高斯分布,因为没有办法使得它合理

而是 假设其为伯努利分布

——假设所有的特征都是独立同分布的很切合实际

那么朴素贝叶斯就会表现得非常好

后验概率

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 ) = 1 1 + P ( x ∣ C 2 ) P ( C 2 ) P ( x ∣ C 1 ) P ( C 1 ) = 1 1 + e x p ( − z ) = σ ( z ) P(C_1|x)=\frac{P(C_1*x)}{P(x)}=\frac{P(x|C_1)P(C_1)}{P(x|C_1)P(C_1)+P(x|C_2)P(C_2)}\ =\frac{1}{1+\frac{P(x|C_2)P(C_2)}{P(x|C_1)P(C_1)}}=\frac{1}{1+exp(-z)}=\sigma(z)P (C 1 ​∣x )=P (x )P (C 1 ​∗x )​=P (x ∣C 1 ​)P (C 1 ​)+P (x ∣C 2 ​)P (C 2 ​)P (x ∣C 1 ​)P (C 1 ​)​=1 +P (x ∣C 1 ​)P (C 1 ​)P (x ∣C 2 ​)P (C 2 ​)​1 ​=1 +e x p (−z )1 ​=σ(z )

其中 z = l n P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 2 ) P ( C 2 ) 其中z=ln\frac{P(x|C_1)P(C_1)}{P(x|C_2)P(C_2)}其中z =l n P (x ∣C 2 ​)P (C 2 ​)P (x ∣C 1 ​)P (C 1 ​)​

1 1 + e x p ( − z ) 称之为 S i g m o i d f u n c t i o n \frac{1}{1+exp(-z)}称之为Sigmoid\,\,\,function 1 +e x p (−z )1 ​称之为S i g m o i d f u n c t i o n

分类——生成模型

分类——生成模型

P ( C 1 ∣ x ) = σ ( w ∗ x + b ) P(C_1|x)=\sigma(w*x+b)P (C 1 ​∣x )=σ(w ∗x +b )

而你会发现,你在生成模型这里,我们需要从训练集中估计出N1,N2,μ 1 \mu^1 μ1 , μ 2 \mu^2 μ2, Σ \Sigma Σ ,然后去拥有 w 和 b

那么我们为什么不直接找到w 和 b呢?

—— w是一个vector

——敬请期待下一章

—— 逻辑斯特回归

Original: https://blog.csdn.net/Hacker_ccc/article/details/127078228
Author: Caaaaaan
Title: 分类——生成模型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/662328/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球