ML—高斯判别分析
华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/12/11
高斯判别分析属于生成模型,模型终于学习一个特征-类别的联合概率。
0 多维正态分布
确定一个多维正态分布仅仅须要知道分布的均值向量μ∈Rn×1\mu\in R^{n\times 1}和一个协方差矩阵Σ∈Rn×n\Sigma\in R^{n\times n}.
其概率密度函数例如以下:
p(x;μ,Σ)=1(2π)n/2|Σ|1/2exp(−12(x−μ)TΣ−1(x−μ))(0)p(x;\mu,\Sigma)=\frac{1}{(2\pi)^{n/2}| \Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) \tag{0}
一、高斯判别分析
适用范围:输入特征是连续
模型表述:
y∼Bernoulli(ϕ)(1-1)y\sim Bernoulli(\phi) \tag{1-1}
x|y=0∼N(μ0,Σ)()x|y=0\sim N (\mu_0,\Sigma) \tag{}
x|y=1∼N(μ1,Σ)()x|y=1\sim N(\mu_1,\Sigma) \tag{}
结合公式0能够将公式1-1写为:
p(y)=ϕy(1−ϕ)1−y(1-2)p(y)=\phi^y(1-\phi)^{1-y} \tag{1-2}
p(x|y=0)=1(2π)n/2|Σ|1/2exp(−12(x−μ0)TΣ−1(x−μ0))()p(x|y=0)=\frac{1}{(2\pi)^{n/2}| \Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0)) \tag{}
p(x|y=1)=1(2π)n/2|Σ|1/2exp(−12(x−μ1)TΣ−1(x−μ1))()p(x|y=1)=\frac{1}{(2\pi)^{n/2}| \Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)) \tag{}
能够看到对于二分类高斯判别分析。模型的參数是ϕ,μ0,μ1,Σ\phi,\mu_0,\mu_1,\Sigma。注意到这里的两个n维正态分布公用了一个协方差矩阵。
对于m个输入样本,有
p(x(i),y(i);ϕ,μ0,μ1,Σ)=p(y(i);ϕ)p(x(i)|y(i);μ,Σ)(1-3)p(x^{(i)},y^{(i)};\phi,\mu_0,\mu_1,\Sigma)=p(y^{(i)};\phi)p(x^{(i)}|y^{(i)};\mu,\Sigma)\tag{1-3}
easy得到对数似然函数例如以下
l(ϕ,μ0,μ1,Σ)=log∏mi=1p(x(i),y(i);ϕ,μ0,μ1,Σ)(1-4)l(\phi,\mu_0,\mu_1,\Sigma)=\log\prod_{i=1}^{m}{p(x^{(i)},y^{(i)};\phi,\mu_0,\mu_1,\Sigma)} \tag{1-4}
求解似然函数最大化得到高斯判别分析的模型參数解形式例如以下:
ϕ=1m∑mi=11{y(i)=1}(1-5)\phi=\frac{1}{m}\sum_{i=1}^{m}{1\{{y^{(i)}}=1\}} \tag{1-5}
μ0=∑mi=11{y(i)=0}x(i)∑mi=11{y(i)=0}()\mu_0=\frac{\sum_{i=1}^{m}{1\{{y^{(i)}}=0\}x^{(i)}}}{\sum_{i=1}^{m}{1\{{y^{(i)}}=0\}}} \tag{}
μ1=∑mi=11{y(i)=1}x(i)∑mi=11{y(i)=1}()\mu_1=\frac{\sum_{i=1}^{m}{1\{{y^{(i)}}=1\}x^{(i)}}}{\sum_{i=1}^{m}{1\{{y^{(i)}}=1\}}} \tag{}
Σ=1m∑mi=1(x(i)−μy(i))(x(i)−μy(i))T()\Sigma=\frac{1}{m}\sum_{i=1}^{m}{(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T} \tag{}
二、高斯判别分析与逻辑回归
能够easy写出高斯判别分析的预測函数。因为是生成模型。模型存在两种输出p(y=1|x。ϕ,μ0,μ1,Σ)p(y=1|x。\phi,\mu_0,\mu_1,\Sigma)和p(y=0|x;ϕ,μ0,μ1,Σ)p(y=0|x;\phi,\mu_0,\mu_1,\Sigma)。在这里重点关注第一个。
p(y=1|x。ϕ,μ0,μ1,Σ)=p(y=1|x)p(y=1|x)+p(y=0|x)(2-1)p(y=1|x。\phi,\mu_0,\mu_1,\Sigma)=\frac{p(y=1|x)}{p(y=1|x)+p(y=0|x)} \tag{2-1}
经过变换,分解组合等变换操作能够得到例如以下形式:
p(y=1|x。ϕ,μ0,μ1,Σ)=11+e−θTx(2-2)p(y=1|x。\phi,\mu_0,\mu_1,\Sigma)=\frac{1}{1+e^{-\theta^Tx}} \tag{2-2}
注:分子分母同除以分子,消除同类项。系数转化为指数上的指数,矩阵展开相减消除等简单操作就可以得到。
尽管能够得到相似的格式。可是高斯判别分析与逻辑回归仍然存在非常大差别:
1、模型性质:高斯判别分析属于生成模型。逻辑回归属于判别模型
2、p(y=1|x)和p(y=0|x)在逻辑回归中和为1。在高斯判别分析中不存在这个性质。
3、模型如果:高斯判别分析如果样本特征在每一个类别下分别服从于各异的高维正态分布。逻辑回归是类别标签满足伯努利分布如果下的广义线性模型。
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
ML—高斯判别分析的更多相关文章
- [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...
- 高斯判别分析 Gaussian Discriminant Analysis
如果在我们的分类问题中,输入特征xx是连续型随机变量,高斯判别模型(Gaussian Discriminant Analysis,GDA)就可以派上用场了. 以二分类问题为例进行说明,模型建立如下: ...
- Gaussian discriminant analysis 高斯判别分析
高斯判别分析(附Matlab实现) 生成学习算法 高斯判别分析(Gaussian Discriminant analysis,GDA),与之前的线性回归和Logistic回归从方法上讲有很大的不同,G ...
- 【cs229-Lecture5】生成学习算法:1)高斯判别分析(GDA);2)朴素贝叶斯(NB)
参考: cs229讲义 机器学习(一):生成学习算法Generative Learning algorithms:http://www.cnblogs.com/zjgtan/archive/2013/ ...
- Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯
(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解 ...
- StanFord ML 笔记 第四部分
第四部分: 1.生成学习法 generate learning algorithm 2.高斯判别分析 Gaussian Discriminant Analysis 3.朴素贝叶斯 Navie Baye ...
- 【Coursera】高斯混合模型
一.高斯混合模型 软分类算法,即对每一个样本,计算其属于各个分布的概率,概率值最大的就是这个样本所属的分类. 对于训练样本的分布,看成为多个高斯分布加权得到的.其中每个高斯分布即为某一特定的类. 高斯 ...
- ML—朴素贝叶斯
华电北风吹 日期:2015/12/12 朴素贝叶斯算法和高斯判别分析一样同属于生成模型.但朴素贝叶斯算法须要特征条件独立性如果,即样本各个特征之间相互独立. 一.朴素贝叶斯模型 朴素贝叶斯算法通过训练 ...
- 生成式学习算法(三)之----高斯判别分析模型(Gaussian Discriminant Analysis ,GDA)
高斯判别分析模型(Gaussian Discriminant Analysis ,GDA) 当我们分类问题的输入特征$x $为连续值随机变量时,可以用高斯判别分析模型(Gaussian Discrim ...
随机推荐
- Cisco VPN Client Win10无法使用的解决办法
http://files.cnblogs.com/files/Flyear/VPN_Win10_ByDuke.zip 1. 关闭系统所有窗口,控制面板一定要关闭. 2. 运行winfix.exe, 按 ...
- 使用python3的typing模块提高代码健壮性
前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种 ...
- 关于iOS GangSDK的使用,为App快速集成社群公会模块
手上有一个自己开发的小游戏,想加一个家族系统活跃下游戏的氛围,想到这块儿可能会有大量的工作需要自己做,就偷了个懒去网上搜罗了一波,结果惊奇的发现居然真的有类似的服务,并且还是免费的,所以决定入坑尝试一 ...
- NodeJS寻常小毛病
在写关于NodeJS项目中常遇到的小错误 此时用到的服务器是phpstudy中的MySQL 1. First argument must be a string or Buffer 解决方法: ...
- 安卓自定义控件(四)实现自定义Layout
本来我是不准备写这篇文章的,我实在想不出有什么样奇怪的理由,会去继承ViewGroup然后自定义一个布局,大概是我的项目经验还不够吧,想了好久,想到了这样一个需求: 需求 如图:在项目中经常有一个这样 ...
- 对于Hibernate的底层浅谈
哇,我发现忙起来真的是没有时间来写,最近在学框架,感觉特别有兴趣,对于框架的感激就是又恨又爱的感觉,hibernate,没有研究太深,模拟的写了一点底层的实现,其实就是发射吧,我没有追踪源码去看,就是 ...
- 2719:陶陶摘苹果-poj
2719:陶陶摘苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米 ...
- C语言之赋值
#include<stdio.h>/*void change(int m,int n){ int t; t=m; m=n; n=t;}*/int main(){//交换两杯水,需要一个空杯 ...
- ThinkPHP中处理模板引擎的volist标签
Volist标签主要用于在模板中循环输出数据集或者多维数组 必须得属性有:name属性,要输出的数据模板变量,id是循环变量. 其他属性参见开发手册. 通常模型的select方法返回的结果是一个二维数 ...
- 一道JS 连续赋值运算的问题
原文链接:https://www.cnblogs.com/joesbell/p/6229423.html <script> var a = {n:1}; var b = a; a.x = ...