博客园 首页 私信博主 显示目录 隐藏目录 管理

线性判别分析(LDA)模型笔记

模型概况

线性判别方法(Linear Discrimination Analysis)是一种经典的线性学些方法,最早由Fisher提出,也叫“Fisher判别分析”。

LDA的思想非常朴素,也即是,将样例投影到一条直线上使得同类样例的投影点尽可能近,异类样例的投影点尽可能远,总结六个字就是类内小,类间大;在对新的样本进行分类时候,将其投影到同样的这条直线上,再根据投影点的位置来判断样本点的类别。LDA也是一种降维方法。
类间大,类内小

模型定义

给定数据集D={(xi,yi)i=1m,yi{0,1}}XiμiΣi分别表示第i{0,1}类示例的集合、均值向量、协方差矩阵,则将数据投影到直线w上,则两类样本的中心的投影分别为wTμ0wTμ1,协方差分别为wTΣ0wwTΣ1w。由于将样本点投射到直线这一一维空间上,则wTμ0wTμ1wTΣ0wwTΣ1w都是实数。

Xi={xi|yi=i}

μi=1Nij=1Nixj

Σi=1Nij=1Ni(xjx¯)(xjx¯)T

模型求解

为了使得同类样例的投影点尽可能接近,同类样例投影点协方差要尽量小,也即是wTΣ0w+wTΣ1w尽可能小;而为了异类样例投影点尽可能远离,类的中心的距离要尽量大。也即是说(wTμ0wTμ1)2尽可能大。

则可以定义需要最大化的目标函数为

J=(wTμ0wTμ1)2wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w

定义类内散度矩阵(within-class scatter matrix)

Sw=Σ0+Σ1

以及类间散度矩阵(between-class scatter matrix)

Sb=(μ0μ1)(μ0μ1)T

J可以重写为

J=wTSbwwTSww

这也就是LDA需要最大化的目标函数,也即是SbSw的广义瑞利商(generalized Rayleigh quotient)。

接下来只需要根据目标函数对w进行求导

dJdw=2Sbw(wTSww)1wTSbw(wTSww)22Sww=0Sbw(wTSww)=(wTSbw)Sww

其中,wTSwwwTSbw实际上都是实数,则式子变为

w=wTSbwwTSwwSw1Sbw=wTSbwwTSwwSw1(μ0μ1)(μ0μ1)Tw

其中(μ0μ1)Tw也是一个实数,由于我们求w只需要考虑其方向而不需要考虑其长度,故wTSbwwTSww(μ0μ1)Tw都可以忽略,则式子变为

w=Sw1(μ0μ1)

至此,我们求出了所要求的解。



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   胡图图Daffy  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示