机器学习笔记——5 生成学习算法(线性判别法LDA、二次判别法QDA及朴素贝叶斯NB算法的数学原理及其python实现)

这篇博客介绍了生成学习算法,包括高斯判别分析(GDA)、二次判别分析(QDA)和朴素贝叶斯(NB)的数学原理与Python实现。内容涵盖GDA的线性判别、几何直观和参数估计,QDA的超二次曲面决策边界,以及朴素贝叶斯的假设和参数估计。还讨论了连续与离散属性的处理方法和拉普拉斯平滑。最后,提供了一个使用LDA进行数据分类的实战项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成学习算法(高斯判别和朴素贝叶斯算法的数学原理及其python实现)

本篇介绍另外一种分类算法,这类算法跟之前广义线性模型下的各种分类特例,比如logit分类、softmax分类等,在基本思想有根本的不同,这类算法称为生成学习算法
本篇将首先介绍生成学习算法的基本思想,以此为基础,介绍在属性值为连续性和离散型下的两类常用的生成学习算法,分别是高斯判别分析(Guass Discrimination Analysis,GDA)和朴素贝叶斯(Bernoulli event model)。它们分别假设属性值的条件分布为多元正态分布和二项分布,它们可以应对大部分情形。最后我们进行适当的拓展,介绍属性值既有连续型又有离散型变量时的处理方法,多项分布下的朴素贝叶斯分类器,以及工程实现时采用的拉普拉斯平滑变换

生成学习算法的基本思想

在之前的回归分类算法中,我们做的是建立一个直接预测标签值 y y y的模型,即 h θ ( x ) = E ( y ∣ x ) h_\theta(x) = E(y|x) hθ(x)=E(yx)。这样的分类算法亦称为判别学习算法(Discrimination Learning Algorithm)。但这里存在一个问题,即是我们用一个统一的模型对不同类别的属性值进行统一的处理,输出y的期望值。

基于问题的背景,判别学习算法的好坏是很难一言蔽之的,但是我们确实可以从另外一个角度来做分类,即我们在各个类别中根据类别的具体情况 y = y i y = y_i y=yi建立属于这个类别的关于属性值 x x x的条件分布 p i ( x ∣ Y ) = p i ( x ∣ Y = y i ) p_i(x|Y) = p_i(x|Y = y_i) pi(xY)=pi(xY=yi)。因此,现在就可以利用贝叶斯后验概率公式来计算
P ( Y = y i ∣ X = x i ) = P ( Y = y i , X = x i ) P ( X = x ) = P ( Y = y i ) P ( X = x i ∣ Y = y i ) p ( X = x ) \begin{aligned} P(Y = y_i|X = x_i) = & \frac{P(Y = y_i,X = x_i)}{P(X = x)} \\ = & \frac{P(Y = y_i)P(X = x_i|Y = y_i)}{p(X = x)} \end{aligned} P(Y=yiX=xi)==P(X=x)P(Y=yi,X=xi)p(X=x)P(Y=yi)P(X=xiY=yi)然后,根据似然原理,我们选择概率最大的 y i y_i yi作为预测的类别。
注意,广义来讲,不同的 y i y_i yi对应的分布 p i ( x ∣ y ) p_i(x|y) pi(xy)可以是不同形式的,但一般取相同的分布,而且只在一些参数上做区别。

高斯判别分析(Guass Discrimination Analysis)

GDA 的数学原理(为什么是线性判别?)

在属性值为连续型变量的情形下,我们可以假设其条件分布为多元正态分布,即 p ( x ∣ Y = y i ) = 1 2 π ∣ Σ ∣ 1 2 e x p ( ( − 1 2 ) ( x − μ i ) ′ Σ − 1 ( x − μ i ) ) p(x|Y = y_i) = \frac{1}{\sqrt{2\pi}|\Sigma|^{\frac{1}{2}}}exp((-\frac{1}{2})(x-\mu_i)^{'}\Sigma^{-1}(x-\mu_i)) p(xY=yi)=2π Σ211exp((21)(xμi)Σ1(xμi))这里我们假设不同的类别下的条件分布中,协方差矩阵 Σ i = Σ , i ∈ { 0 , 1 , . . . , k − 1 } \Sigma_i = \Sigma,i \in \{0,1,...,k-1\} Σi=Σ,i{ 0,1,...,k1}从直观上讲,这实际上规定了不同类别之间属性值的分布形状是一致的,差别只在于所在中心位置 μ \mu μ的不同,当然这是一个较强的假设,但是它让我们所需要估计的参数大大减少。

现在我们讨论两个类别的多维正态分布的情况。如果我们已经有训练数据获得估计出其中的参数 ϕ y = P ( y = 1 ) , Σ , μ 0 和 μ 1 \phi_y = P(y = 1),\Sigma,\mu_0和\mu_1 ϕy=P(y=1),Σ,μ0μ1。那么就可以利用似然比 α = p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = ϕ y p ( x ∣ y = 1 ) ( 1 − ϕ y ) p ( x ∣ y = 0 ) \alpha = \frac{p(y = 1|x)}{p(y = 0|x)} = \frac{\phi_yp(x|y = 1)}{(1-\phi_y)p(x|y = 0)} α=p(y=0x)p(y=1x)=(1ϕy)p(xy=0)ϕyp(xy=1)来分类。即
y = {      1 ,                α &gt; 1      决 策 边 界 ,                α = 1      0 ,                α &lt; 1 y = \left\{ \begin{aligned} \ \ \ \ 1, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \alpha &gt; 1\\ \ \ \ \ 决策边界, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \alpha = 1\\ \ \ \ \ 0 , \ \ \ \ \ \ \ \ \ \ \ \ \ \ \alpha &lt; 1 \end{aligned} \right. y=    1,              α>1    ,              α=1    0,              α<1 α \alpha α的形式进行适当的变形,我们记

θ = 2 ( μ 0 − μ 1 ) ′ Σ − 1 \theta = 2(\mu_0 - \mu_1)^{&#x27;}\Sigma^{-1} θ=2(μ0μ1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值