机器学习入门-线性判别分析(LDA)

Posted my-love-is-python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习入门-线性判别分析(LDA)相关的知识,希望对你有一定的参考价值。

用途:分类预处理中的降维,做分类任务

目的:LDA关心的是能够最大化类间区分度的坐标轴

将特征空间(数据中的多维样本,将投影到一个维度更小的K维空间,保持区别类型的信息)

 

监督性:LDA是“有监督”的,它计算的是另一个类特定的方向

投影:找到更适用的分类空间

与PCA不同: 更关心分类而不是方差(PCA更关心的是方差)

技术分享图片

如图所示,找到合适的方向投影后的数据更加的分散

 

LDA的数据原理:

目标找到投影:y = w^T * x  ,我们需要求解出w

技术分享图片

LDA的第一个目标是使得投影后两个类别之间的距离越大越好,使用的判别依据,是投影后两个类别的中心点的距离越大越好,即均值u1^ - u2^

 

第一步:求出当前均值和投影后的均值

J(W) = |w^T(u1 - u2)|   # 计算投影以后的两个类别中心位置之差

技术分享图片

LDA的第二个目标是使得投影后的类别之间的距离越来越小,从图一中我们可以看出,只讨论类别之间的距离是不够的, 同类之间的距离使用单个类别的数据到类别中心之差来表示,值越大,同类数据越分散,值越小,同类数据越集中,我们需要使得这个值的大小越小越好

技术分享图片

根据上面两个目标函数,我们做一个组合, 分子使用类间距离, 分母使用类内距离,求得组合后的最大值

技术分享图片

 

该图表示的是最终的目标函数(类间距离/类内距离),这里的类内散布矩阵:通过同种类别数据-该类别的均值之差进行加和后求得

求得类间距离的散步矩阵

技术分享图片

 

上述的目标矩阵就是我们求解的方程,我们需要求得其最大值

构造拉格朗日方程, 我们对分母进行缩放,使得w^TSw*w = 1, 作为限制条件

cw = w^T*SB*w - a(w^T*Sw*w-1) --构造的拉格朗日方程

cw/dw = w^T*SB*w - a(w^T*Sw*w-1) / dw   对上述方程使用dw进行求导,求偏导等于零求最大值

2SB*w - 2*a*Sw * w = 0 

 

a * w = Sw^-1*SB*w  ---- a*w = A*w 

w是Sw^-1*SB的特征向量

技术分享图片

 

以上是关于机器学习入门-线性判别分析(LDA)的主要内容,如果未能解决你的问题,请参考以下文章

机器学习线性分类——线性判别分析LDA(理论+图解+公式推导)

我的机器学习/深度学习之路--LDA线性判别分析

R语言机器学习 | 4 线性判别分析 (LDA)

机器学习算法的Python实现 :logistics回归 与 线性判别分析(LDA)

机器学习——降维(主成分分析PCA线性判别分析LDA奇异值分解SVD局部线性嵌入LLE)

SIGAI机器学习第十集 线性判别分析