看了JerryLead大神的博客,茅塞顿开!所以把他的文章转载过来,希望在之后对相关知识模糊的时候能够看看,加深理解。原始链接原始链接地址
上篇报告中提到的回归模型是判别模型,也就是根据特征值来求结果的概率。形式化表示为,在参数确定的情况下,求解条件概率。通俗的解释为在给定特征后预测结果出现的概率。
比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。换一种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。形式化表示为求(也包括,y是模型结果,x是特征。
利用贝叶斯公式发现两个模型的统一性:
由于我们关注的是y的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此上式改写为:
其中称为后验概率,称为先验概率。
由,因此有时称判别模型求的是条件概率,生成模型求的是联合概率。
常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。
常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。
这篇博客较为详细地介绍了两个模型:
http://blog.sciencenet.cn/home.php?mod=space&uid=248173&do=blog&id=227964
1) 多值正态分布
多变量正态分布描述的是n维随机变量的分布情况,这里的变成了向量,也变成了矩阵。写作。假设有n个随机变量X1,X2,…,Xn。的第i个分量是E(Xi),而。
概率密度函数如下:
其中|是的行列式,是协方差矩阵,而且是对称半正定的。
当是二维的时候可以如下图表示:
其中决定中心位置,决定投影椭圆的朝向和大小。
如下图:
对应的都不同。
2) 模型分析与应用
如果输入特征x是连续型随机变量,那么可以使用高斯判别分析模型来确定p(x|y)。
模型如下:
输出结果服从伯努利分布,在给定模型下特征符合多值高斯分布。通俗地讲,在山羊模型下,它的胡须长度,角大小,毛长度等连续型变量符合高斯分布,他们组成的特征向量符合多值高斯分布。
这样,可以给出概率密度函数:
最大似然估计如下:
注意这里的参数有两个,表示在不同的结果模型下,特征均值不同,但我们假设协方差相同。反映在图上就是不同模型中心位置不同,但形状相同。这样就可以用直线来进行分隔判别。
求导后,得到参数估计公式:
是训练样本中结果y=1占有的比例。
是y=0的样本中特征均值。
是y=1的样本中特征均值。
是样本特征方差均值。
如前面所述,在图上表示为:
直线两边的y值不同,但协方差矩阵相同,因此形状相同。不同,因此位置不同。
3) 高斯判别分析(GDA)与logistic回归的关系
将GDA用条件概率方式来表述的话,如下:
y是x的函数,其中都是参数。
进一步推导出
这里的是的函数。
这个形式就是logistic回归的形式。
也就是说如果p(x|y)符合多元高斯分布,那么p(y|x)符合logistic回归模型。反之,不成立。为什么反过来不成立呢?因为GDA有着更强的假设条件和约束。
如果认定训练数据满足多元高斯分布,那么GDA能够在训练集上是最好的模型。然而,我们往往事先不知道训练数据满足什么样的分布,不能做很强的假设。Logistic回归的条件假设要弱于GDA,因此更多的时候采用logistic回归的方法。
例如,训练数据满足泊松分布,
,那么p(y|x)也是logistic回归的。这个时候如果采用GDA,那么效果会比较差,因为训练数据特征的分布不是多元高斯分布,而是泊松分布。
这也是logistic回归用的更多的原因。