MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍:

费舍尔线性判别分析(Fisher's Linear Discriminant Analysis,简称 LDA),用于将两个类别的数据点进行二分类。以下是代码的整体思路:

  1. 生成数据

    • 使用 randn 函数生成随机数,构建两个类别的合成数据点。
    • 第一个类别的数据点分布在以 (2,2) 为中心的正态分布中。
    • 第二个类别的数据点分布在以 (-2,-2) 为中心的正态分布中。
  2. 计算类别均值和散布矩阵

    • 计算每个类别的数据点的均值(类别中心)。
    • 计算每个类别的散布矩阵(类别内离散度矩阵)。
  3. 计算费舍尔线性判别

    • 计算费舍尔判别向量 W,它是使类间散布与类内散布的比值最大化的向量。
    • 计算类内散布矩阵的总和 Sw
    • 利用线性代数中的求逆和乘法,计算出判别向量 W。
  4. 生成测试样本 (x)

         使用 randn 函数生成一个随机测试样本。
  5. 对测试样本进行分类

          将测试样本投影到判别向量 W 上,并与预先设定的阈值比较以进行分类。
  6. 绘图

    • 绘制两个类别的数据点,以红色和蓝色表示。
    • 标记测试样本点,并根据分类结果用不同的颜色表示。
    • 绘制费舍尔判别线,表示分类的决策边界。
    • 绘制判别线上的阈值点。
    • 绘制测试样本在判别线上的投影点,并画出测试样本与其投影点之间的连线。

通过这些步骤,代码能够实现费舍尔线性判别分析,并对新的测试样本进行分类和可视化。

部分代码:

m1=mean(X(1:N,:));
m2=mean(X(N+1:2*N,:));
S1=0;S2=0;
for i=1:NS1=S1+(X(i,:)-m1)*(X(i,:)-m1)';
end
for i=N+1:2*NS1=S1+(X(i,:)-m1)*(X(i,:)-m1)';
end
Sw=S1+S2;
W=inv(Sw)*(m1-m2);
W=W./norm(W)
% ====================================================================
x=randn(1,2);%待判样本
y0=W*(m1+m2)'/2;
if W*x'>y0disp('待判样本属于第一类')hold on,plot(x(1),x(2),'r+','MarkerSize',10,'LineWidth',2)
elsedisp('待判样本属于第二类')hold on,plot(x(1),x(2),'b+','MarkerSize',10,'LineWidth',2)
end
legend('Cluster 1','Cluster 2','x','Location','NW')
% =================画投影直线=====================
X1=-8:0.05:8;
X2=(W(2)/W(1))*X1-6;
hold on,plot(X1,X2,'k','LineWidth',2);
% ================求投影直线上的阈值点============
x0=W(1)*(y0)/W(2);
y0=W(2)^2*y0-6*W(1)^2+W(1)*W(2)*x0;
x0=(y0+6)*W(1)/W(2);
hold on,plot(x0,y0,'ro','MarkerSize',10);
% =============求待判样本在投影直线上的投影点==============
y1=W(1)^2*x(1)+6*W(1)*W(2)+W(1)*W(2)*x(2);
y2=W(2)/W(1)*y1-6;
hold on,plot(y1,y2,'r.','MarkerSize',30);
hold on,plot([x(1) y1],[x(2) y2],'g','LineWidth',2);

结果展示:

获取代码:MATLAB分类与判别模型算法:基于Fisher算法的分类程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js中事件的捕获和冒泡的区别

在JavaScript中,事件的捕获和冒泡是描述事件传播的两种不同机制,它们决定了事件处理器被调用的顺序。这两种机制是事件流模型的一部分,对于理解和控制事件如何在DOM(文档对象模型)中传播至关重要。以下是它们的主要区别…

基于微信小程序开发的一款 高颜值在线答题刷题考试程序

大家好,我是兔兔。今天给大家分享的内容是,兔兔答题模板三的发布。 兔兔答题模板三是一款基于uniapp开发,后端使用PHP,前端使用图鸟UI的微信答题小程序应用程序。相必兔兔答题模板一和兔兔答题模板二,进行了系统架构的…

上位机图像处理和嵌入式模块部署(f103 mcu中main入口函数误解)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 学习stm32代码的时候,关于汇编文件,大家一般都会参考官方给出的汇编文件。通常情况下,不会自己去写汇编文件。特…

flask 登录记录session

在Flask中,可以使用session对象来记录用户的登录状态。以下是一个简单的示例,展示了如何在用户登录后将用户信息存储在session中,并在其他页面检查session来确认用户是否已经登录。 首先,安装Flask: pip install Flas…

凡事有利有弊,如果生了一个自闭症的小孩,请说出有利的部分 :独特、专注力、诚实和直接,记忆力

生育一个自闭症小孩可能带来一些独特的优势和积极的方面,尽管也会面临许多挑战。以下是一些可能的有利方面: 独特的视角:自闭症儿童通常有独特的思维方式和视角,他们可能在某些方面比普通人更敏锐。这种独特性可以带来创新的解决方…

Nginx/阿里云/二级域名的配置和使用

阿里云域名解析配置如下: nginx配置如下: 访问地址: zhadmin.iotzzh.com image.png

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11安装iperf并测试网速

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11安装iperf并测试网速 2024/5/29 15:09 服务器端:瑞芯微官方Toybrick TB-RK3588开发板:Debian11 客户端:笔记本电脑:Ubuntu20.04 两者通过千兆交换机连接! toybr…

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目,详细工程库创建过程如下链接: 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 3.修改main.c…

VRTK4教程 一:资源导入、Unity设置、连接头盔

文章目录 VRTK4的分包导入VRTK4的资源包unity设置连接头盔 VRTK4的分包 vrtk4的资源包和旧版不同,采用了分包导入的思想,我们要用什么功能,就导入什么包,可以有效减小程序体积 如下图,已经导入的vrtk包会显示在Packag…

【JS红宝书学习笔记】第4章 变量、作用域和内存

第4章 变量、作用域和内存 1. 原始值和引用值(面试题) ECMAScript 变量可以包含两种不同类型的数据:原始值和引用值。原始值(primitive value)就是最简单的数据(Undefined、Null、Boolean、Number、Strin…

电话客服软件系统:为什么它是现代企业不可或缺的伙伴?

一、引言 在当今这个数字化快速发展的时代,企业的运营方式和客户服务模式都发生了翻天覆地的变化。其中,电话客服软件系统作为连接企业与客户的桥梁,在现代企业中扮演着至关重要的角色。它不仅提高了客户服务效率,还为企业带来了…

DxO PhotoLab 6 for Mac/Win:专业RAW图片编辑的利器

DxO PhotoLab 6 for Mac/Win是一款专为摄影师和摄影爱好者打造的专业RAW图片编辑软件,它将先进的技术、丰富的功能与直观的操作完美结合,为用户提供了一款全面而强大的图片处理工具。 一、技术领先,处理RAW图片更高效 DxO PhotoLab 6采用了…

迅睿CMS邮箱设置QQ邮箱为例

邮箱设置 1、服务器地址两个,普通与企业。 普通:ssl://smtp.qq.com企业:ssl://smtp.exmail.qq.com 2、端口号为:465 3、邮箱账号:填写自己的QQ邮箱作为发布服务器。 4、邮箱密码:到QQ邮箱账号中获取“…

keil4和5版本代码编译错误问题

需求: 在工作中, 遇到了keil4工程的老代码, 需要烧录到板子中. 问题: 电脑中只有keil5软件, 使用keil5软件打开, 编译后报了一堆错, 还是官方库文件的错误, 这就是版本不兼容了. 解决方法: 下载keil4软件, 不要和keil5放到一起. 进行如下操作. 0. 根据如下链接来下载keil4.7…

Compose第一弹 可组合函数+Text

目标: 1.Compose是什么?有什么特征? 2.Compose的文本控件 一、Compose是什么? Jetpack Compose 是用于构建原生 Android 界面的新工具包。 Compose特征: 1)声明式UI:使用声明性的函数构建一…

2024-2025年跨境电商展览会计划表:共筑未来跨境行业的繁荣

-----------------------------2024年跨境电商展计划如下---------------------------- 2024年,2025年国内跨境电商行业将迎来一系列重大的展会活动,是企业展示品牌、交流趋势、拓展商机的重要平台。全国各地展会排期信息现已出炉,记得收藏哦…

Linux中断

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、中断的相关概念1.中断号2.中断的申请和释放申请API函数如下:释放API函数如下:中断处理函数如下:使能和禁止中断 二、上半…

el-select 组件获取整个对象

法一:要获取整个对象的话,如果有列表就可以遍历列表,找到指定对象 let obj this.chainTaskList.find((item) > item.chainTaskNo e); if (obj) {this.form.storeNo obj.storeNo;this.form.storeName obj.couponVO.storeName; }或 fo…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.05.10-2024.05.20

文章目录~ 1.MeteoRA: Multiple-tasks Embedded LoRA for Large Language Models2.Zero-Shot Stance Detection using Contextual Data Generation with LLMs3.A Multi-Perspective Analysis of Memorization in Large Language Models4.Improved Content Understanding With E…

CF609D D. Gadgets for dollars and pounds

题目链接 题意: 在最少的时间内并且价格在s内从m个物品中购买k个物品 题解: 如果Nura能在x天内买到k个小玩意,那么她也能在x1天内买到这些小玩意。所以,这个答案是单调的。因此,我们可以使用二分查找来找到最小的天…