《机器学习》__note2

来源:互联网 发布:md204lv4编程电缆制作 编辑:程序博客网 时间:2024/05/16 11:19

Generative Learning algorithms

上一篇文章主要讲了线性回归和逻辑回归,它们都是给定x对y进行建模,即求出
p(y| x;θ) ,本章将介绍另外一种学习算法:生成学习算法。主要思路是依据条件概率公式p(y|x) = p(x|y)p(y)/p(x),间接求出p(y| x;θ) 。通俗点讲就是对不同的输出y分别建立模型,在预测的时候带入这两个模型,看谁概率更大。用公式来表示:
这里写图片描述

针对x是连续和离散值的情况,介绍高斯判别分析(GDA)和朴素贝叶斯方法。在x为多维高斯分布的情况下,GDA比逻辑回归更能得到好的结果,但是也由于其更强的条件假设,鲁棒性比逻辑回归更差。因此一般还是逻辑回归用的更多。在文本分类中应用朴素贝叶斯算法,又分为多变量贝努力事件模型和多项式事件模型。当用高斯判别分析不能很好地对连续型变量建模时,可以将其离散化,再用朴素贝叶斯。

Gaussian discriminant analysis(GDA)

在这个模型中,假设p(x|y)服从多维高斯分布。下面首先介绍多维高斯分布。

The multivariate normal distribution

多维高斯分布写作N(μ,∑) ,其中,μ 是平均向量,*μ∈Rn*
是协方差矩阵,这里写图片描述,且 ∑>=0 , 是对称的半正定矩阵。概率密度如下:
这里写图片描述

The Gaussian Discriminant Analysis model

一个分类问题中,如果输入x是一个连续随机变量,就可以采用高斯判别分析模型(GDA),模型采用多元高斯分布对 p(x|y) 建模。,如下:
这里写图片描述
写出分布函数如下:
这里写图片描述

模型中的参数有这里写图片描述。对似然函数取对数得到:

这里写图片描述

通过求导的方式求其参数的最大似然估计,得到结果:
这里写图片描述

对该算法图形化表示如下:
这里写图片描述

两个圆分别是正负样本的高斯分布,中间的直线表示p(y=1|x) =0.5

Discussion: GDA and logistic regression

如果把 这里写图片描述 看做x的函数,它可以写成如下形式:
这里写图片描述
其中θ是这里写图片描述 的函数。这就是之前的逻辑回归模型。

GDA和逻辑回归的关系与各自应用范围:
如果p(x|y) 是多元高斯分布,那么p(y|x) 一定是逻辑回归,反之则不成立。由于GDA作出了p(x|y) 是多元高斯分布的假设,所以其更强。也就是说,如果假设正确,确实是高斯分布,那么得到的模型一定比逻辑回归更好,此时GDA是渐进有效的(随着样本数量的增加变得更加有效),在大样本量的情况下,可以说它几乎是最好的模型。反之,由于逻辑回归假设更弱,其鲁棒性就更强,使用范围更广。还有很多假设可以得到逻辑回归,比如当p(x|y) 服从泊松分布时,也可以得到p(y|x) 是逻辑回归的模型。

总结一下:
GDA有更强的模型假设,当这些假设正确时,更加数据有效(需要更少的训练样本)。逻辑回归假设更弱,鲁棒性就更好,对模型假设的容忍能力更强。特别地,当数据是非高斯的,逻辑回归总是好于GDA.鉴于此,实际中逻辑回归比GDA更常用(朴素贝叶斯也是如此,并没有逻辑回归常用)。

Naive Bayes

在GDA中,特征向量x是连续实值,本节介绍一种不同的学习算法,适用于x是离散值的情况。
通过设计垃圾邮件分类器的例子,介绍在文本分类中的两种朴素贝叶斯算法的模型:多变量贝努利事件模型和多项式事件模型。

multi-variate Bernoulli event model

首先设计一个向量x表示邮件:
这里写图片描述

x是一个长度为字典单词数的向量,xi表示这个位置的单词是否出现。为了减少参数个数,首先提出朴素贝叶斯假设:在条件y下xi是条件独立的。也就是说在条件y下一个单词出现与否和其他单词出现与否没有关系。根据这个假设得到:
这里写图片描述

写出联合似然函数:
这里写图片描述
求其最大值,得到参数的最大似然估计:
这里写图片描述

第一个式子可以解释为(垃圾邮件中某个单词出现的次数)/垃圾邮件总单词数

要预测一个邮件是否为垃圾邮件,可以根据下面公式计算:
这里写图片描述

上面的例子中,每个xi取值只有两个,{0,1}。更广泛的,xi 可以取{1,2,…,ki}个值。事实上,当x是连续实值时,也可以把它们进行分段,看成离散值,再用朴素贝叶斯模型,特别是x用高斯判别分析效果不理想时。

Event models for text classification

在文本分类中,还有一种模型叫多项式事件模型,它甚至超越了本身效果就很好的朴素贝叶斯算法。

在该模型中,定义xi表示邮件中第i个单词在字典中的索引({1,2,…|V|},|V|是词典中的单词数),一封邮件可以表示为(x1,x2,…,xn),长度为n的向量。假设每个单词的选择都是独立并且服从相同的多项式分布,那么整个邮件的概率为这里写图片描述 。在朴素贝叶斯算法中,朴素贝叶斯假设下,一封邮件出现的概率为也为这里写图片描述 。虽然两个式子完全一样,但是表示的含义并不相同。前者xi|y 是多项式分布,后者是贝努利分布。模型中的参数:
这里写图片描述
这里写图片描述这里写图片描述
这里写图片描述
注意,第二个和第三个参数是对所有的j,和单词位置无关。似然函数如下:
这里写图片描述
求其最大值得到参数的最大似然估计:
这里写图片描述

Laplace smoothing

在朴素贝叶斯算法中,当一个单词从来没有出现过时,假设“nips”是词典中的第35000个单词,并且在训练集中没出现
这里写图片描述
则:
这里写图片描述
上述式子的结果是因为每一项这里写图片描述都包含这里写图片描述这里写图片描述 这一项。

假设一个服从多项式分布的随机变量z可以取k个值{1,2,..k},给定m个独立的观测值这里写图片描述 ,它的最大似然估计可以写成
这里写图片描述
为了不出现上述0/0的情况,给分子分母分别添加一个拉普拉斯平滑项:
这里写图片描述
分母添加的是每次实验z可能出现的结果个数k,分子加1。可以验证,
这里写图片描述 仍然成立。

采用拉普拉斯平滑的:

  • 朴素贝叶斯算法
    这里写图片描述
  • 多项式事件模型
    这里写图片描述
0 0