Fisher判别法解析与MATLAB实现
版权申诉
5星 · 超过95%的资源 22 浏览量
更新于2024-08-07
3
收藏 35KB DOCX 举报
"这篇文档详细介绍了Fisher判别分析(Fisher Linear Discriminant Analysis, FDA 或 LDA)的原理及MATLAB实现。Fisher算法旨在寻找一个投影向量,使得不同类别之间的分离度最大化,同时保持同一类别内的数据点聚集度最小化。文档中涵盖了从确定投影方向到实现MATLAB代码的全过程,包括类内离散度矩阵、类间离散度矩阵的计算,以及拉格朗日乘子法求解Fisher准则的极值问题。"
Fisher判别分析是一种统计方法,常用于特征降维和分类问题。在二分类问题中,Fisher算法的目标是找到一个投影方向,使得两类样本在投影后的一维空间中尽可能地分离,同时保持类内样本的离散度最小。投影向量w由以下Fisher准则确定:
\[ J(w) = \frac{(\mu_1 - \mu_2)^T w}{\sqrt{w^T (S_W) w}} \]
其中,\( \mu_1 \) 和 \( \mu_2 \) 分别代表两类样本的均值,\( S_W \) 是类内离散度矩阵,\( S_B \) 是类间离散度矩阵。
类内离散度矩阵 \( S_W \) 定义为:
\[ S_W = \sum_{i=1}^{n_1} (\mathbf{x}_i - \mu_1)(\mathbf{x}_i - \mu_1)^T + \sum_{i=1}^{n_2} (\mathbf{x}_i - \mu_2)(\mathbf{x}_i - \mu_2)^T \]
类间离散度矩阵 \( S_B \) 定义为:
\[ S_B = n_1 \mu_1 \mu_1^T + n_2 \mu_2 \mu_2^T - n (\mu \mu^T) \]
其中,\( n_1 \) 和 \( n_2 \) 是两类样本的数量,\( n = n_1 + n_2 \),\( \mu \) 是所有样本的均值。
通过最大化Fisher准则 \( J(w) \),我们可以求解投影向量 \( w \)。这通常涉及到拉格朗日乘子法,将Fisher准则和正则化项(即要求 \( w^T w = 1 \))一起处理。解出的 \( w \) 就是最佳的投影方向,对应的阈值 \( b \) 可以通过下面的公式计算:
\[ b = \frac{1}{2} (\mu_1 + \mu_2)^T w \]
待分类的新样本 \( \mathbf{x} \) 通过以下方式投射到一维空间并进行分类:
\[ y = \mathbf{x}^T w \]
如果 \( y > b \),样本归为第一类;否则,归为第二类。
文档还提供了MATLAB代码示例,用于读取数据并执行Fisher LDA。通过这样的过程,读者不仅可以理解Fisher算法的理论,还能学会如何在实际问题中应用这一方法。
2022-07-02 上传
2022-07-01 上传
2022-07-02 上传
2022-07-01 上传
2021-10-12 上传
2023-03-01 上传
2022-07-01 上传
阿里matlab建模师
- 粉丝: 4362
- 资源: 2852
最新资源
- Android项目之——漂亮的平台书架.zip
- 【精品推荐】智慧林业大数据智慧林业信息化建设和运营解决方案汇总共6份.zip
- Draft 2020-03-18 02:58:24-数据集
- test-Greensight
- God to Daddy-crx插件
- WebSystems_MiniProject_3:关于-互联网的工作方式
- ni-compiler:类中ni-compiler的C#版本
- c语言扔香蕉的大猩猩.rar
- aov2apr:具有计划(先验)因子的方差的双向分析。-matlab开发
- datax-web:DataX集成可视化页面,选择数据源即可使用一键生成数据同步任务,支持RDBMS,Hive,HBase,ClickHouse,MongoDB等数据源,批量创建RDBMS数据同步任务,集成嵌入式调度系统,支持分布式,增量同步数据,实时查看运行日志,监控执行器资源,KILL运行进程,数据源信息加密等
- Student-enrollment,c#获取网络数据源码,c#
- hahaCMS v1.0_hahacms_CMS程序开发模板(使用说明+源代码+html).zip
- robofriends
- data-storytelling:Repo在ENSAE主持数据故事课程的项目
- FirstRagic:这是针对Ragic的CRUD操作的实践项目
- 动画注释