LDA算法实现鸢尾花数据集降维
目录
- 1. 作者介绍
- 2. LDA降维算法
- 2.1 基本概念
- 2.2 算法流程
- 3. LDA算法实现
- 3.1 数据集介绍
- 3.2 代码实现
- 3.3 结果展示
1. 作者介绍
唐杰,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:3225033259@qq.com
陈梦丹,女,西安工程大学电子信息学院,2022级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1169738496@qq.com
2. LDA降维算法
2.1 基本概念
线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的降维方法。和主成分分析PCA不考虑样本类别输出的无监督降维技术不同,LDA是一种监督学习的降维技术,数据集的每个样本有类别输出。
LDA分类思想:多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成1维数据进行处理。对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。
如果用一句话概括LDA思想,即“投影后类内方差最小,类间方差最大”。
2.2 算法流程
LDA算法流程如下:

3. LDA算法实现
3.1 数据集介绍
Iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set。Iris包含150个样本,对应数据集的每行数据。每行数据包含每个样本的四个特征和样本的类别信息,所以Iris数据集是一个150行5列的二维表。
通俗地说,Iris数据集是用来给花做分类的数据集,每个样本包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征(前4列),我们需要建立一个分类器,分类器可以通过样本的四个特征来判断样本属于山鸢尾、变色鸢尾还是维吉尼亚鸢尾(这三个名词都是花的品种)。
Iris的每个样本都包含了品种信息,即目标属性(第5列,也叫target或label)。如下所示:

3.2 代码实现
import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt2# 定义LDA类
class LDA:def __init__(self, n_components=2, kernel='rbf', gamma=400):self.n_components = n_componentsself.kernel = kernelself.gamma = gammadef fit(self, X, y):# 计算内部和外部类别散度矩阵X_mean = np.mean(X, axis=0)S_W = np.zeros((X.shape[1], X.shape[1]))S_B = np.zeros((X.shape[1], X.shape[1]))for i in range(3):X_class = X[y == i, :]X_class_mean = np.mean(X_class, axis=0)S_W += np.dot((X_class - X_class_mean).T, (X_class - X_class_mean))S_B += len(X_class) * np.dot((X_class_mean - X_mean).reshape(-1, 1), (X_class_mean - X_mean).reshape(1, -1))# 使用LDA算法计算投影矩阵Weig_val, eig_vec = np.linalg.eig(np.dot(np.linalg.inv(S_W), S_B))idx = np.argsort(-eig_val.real)self.W = eig_vec[:, idx[:self.n_components]]# 归一化处理scaler = MinMaxScaler()self.W = scaler.fit_transform(self.W)def transform(self, X):# 投影到特征空间X_new = np.dot(X, self.W)# 归一化处理scaler = MinMaxScaler()X_new = scaler.fit_transform(X_new)return X_new# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target# 模型训练
lda = LDA(n_components=2, kernel='rbf')
lda.fit(X, y)# 数据转换
X_new = lda.transform(X)# 可视化降维前的数据分布
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()# 可视化降维后的数据分布
plt2.scatter(X_new[:, 0], X_new[:, 1], c=y)
plt2.show()
3.3 结果展示
运行结果如下:
图一 鸢尾花数据集前两维分布图

图二 降维后数据分布图

相关文章:
LDA算法实现鸢尾花数据集降维
目录 1. 作者介绍2. LDA降维算法2.1 基本概念2.2 算法流程 3. LDA算法实现3.1 数据集介绍3.2 代码实现3.3 结果展示 1. 作者介绍 唐杰,男,西安工程大学电子信息学院,2022级研究生 研究方向:机器视觉与人工智能 电子邮件ÿ…...
深入理解Linux虚拟内存管理
系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三…...
自动化测试框架、Python面向对象以及POM设计模型简介
目录 1 自动化测试框架概述 2 自动化测试框架需要的环境 3 自动化测试框架设计思想:Python面向对象 4 自动化测试框架设计思想:POM(Page Object Model)页面对象模型 1 自动化测试框架概述 所谓的框架其实就是一个解决问题…...
【CSSpart4--盒子模型】
CSSpart4--盒子模型 网页布局的三大核心:盒子模型,浮动,定位网页布局的过程(本质):盒子模型的组成四部分:边框,内容,内边距,外边距 一 、盒子边框border:1.1 …...
Linux - Java 8 入门安装与重装教程集锦
一、入门初始安装 1. 具体安装教程 1. linux 系统中如何安装java环境(通过tar.gz文件) 安装包下载链接 Java 的 tar.gz 安装包下载链接传送门 Linux 系统的 Java 环境变量配置教程 1. linux查看java版本,以及配置java home 2. Linux环…...
2023年最新企业网盘排行榜出炉
随着云计算技术的不断发展,企业日常工作中大量的资料、文档等信息需要实现集中管理,此时企业网盘工具就应运而生。企业网盘是一种可用于企业内部管理、团队协作及文件共享的云存储平台,能够极大提高企业办公效率和安全性。 一、企业网盘的帮助…...
C++内存分类
内存分配方式(内存布局): 内存5分类 堆、栈、自由存储区、全局/静态存储区、常量存储区 (1)栈:内存由编译器在需要时自动分配和释放。通常用来存储局部变量和函数参数,函数调用后返回的地址。(为运行函数而…...
不是说00后已经躺平了吗,怎么还是这么卷.....
都说00后已经躺平了,但是有一说一,该卷的还是卷。 前段时间我们部门就来了个00后,工作都还没两年,跳到我们公司起薪20K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。最近和…...
国内免费版ChatGPT
目录 前言:网站大全 1. ChatGPT是什么 2. ChatGPT的发展历程 3. ChatGPT对程序员的影响 4. ChatGPT对普通人的影响 5. ChatGPT的不足之处 前言:网站大全 AI文本工具站 (laicj.cn) ——gpt-3.5 功能强大(推荐) Chatgpt在线网页版-…...
常用本地事务和分布式事务解决方案模型
目录 1 DTP模型2 2PC2.1 方案简介2.2 处理流程2.2.1 阶段1:准备阶段2.2.2 阶段2:提交阶段 2.3 方案总结 3 3PC3.1 方案简介3.2 处理流程3.2.1 阶段1:canCommit3.2.2 阶段2:preCommit3.3.3 阶段3:do Commit 3.3 方案总结…...
无代码玩转GIS应用,我也在行【文末送书】
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…...
xlsx是什么格式
xlsx是什么格式? xlsx是Excel文档的扩展名,其基于Office Open XML标准的压缩文件格式,取代了其以前专有的默认文件格式,在传统的文件名扩展名后面添加了字母x,即.xlsx取代.xls。 xlsx文件是什么格式? xlsx是Excel表格的文件格…...
将 Maven 配置为使用阿里云镜像
将 Maven 配置为使用阿里云镜像的步骤如下: 打开 Maven 的 settings.xml 文件:在 Maven 安装目录下的 conf 文件夹中,找到 settings.xml 文件,并打开它。 添加镜像配置:在 settings.xml 文件中,找到 <m…...
行业报告 | 2022文化科技十大前沿应用趋势(下)
原创 | 文 BFT机器人 04 商业创新 趋势7:区块链技术连接传统文化,数字藏品市场在探索中发展 核心内容: 2022年,数字藏品在区块链技术的助力下应运而生。狭义的数字藏品是指使用区块链技术、基于特定的文化资源所生成唯一的数字凭…...
ASEMI代理韩景元可控硅C106M参数,C106M封装,C106M尺寸
编辑-Z 韩景元可控硅C106M参数: 型号:C106M 断态重复峰值电压VDRM:600V 通态电流IT(RMS):4A 通态浪涌电流ITSM:30A 平均栅极功耗PG(AV):0.2W 峰值门功率耗散PGM:1W 工作接点温度Tj&…...
ChatGPT资料汇总学习
🧠 Awesome-ChatGPT ChatGPT资料汇总学习,持续更新… ChatGPT再一次掀起了AI的热潮,是否还会像BERT一样成为AI进程上的里程碑事件,还是噱头炒作,持续关注,让时间流淌~ ChatGPT免费体验入口网址 http://c…...
什么是垂直扩容和水平扩容
垂直扩容和水平扩容是架构设计中常用的两种扩容方式,它们各有优势,应根据具体场景选择合适的扩容方式。 1.垂直扩容 垂直扩容是通过增加单个节点的处理能力来提高整个系统的性能,通常是通过增加服务器的硬件配置、升级CPU、内存、硬盘等来实…...
Fiddler抓不到包Fiddler chrome Edge无法抓包原因排查Fiddler死活抓不了包
一、问题描述 我这电脑上的Fiddler莫名其妙的死活就是无法抓包,换了几个版本的Fiddler都没有解决,这里参考了一些网上的教程,最终解决了,该文章算是比较详细的一篇介绍Fiddler无法抓包的教程。无法抓包主要由以下原因导致的&#…...
11. TCP并发网络编程
本文主要介绍TCP并发网络的编程,重点介绍io多路复用的epoll实现 一、TCP/IP 网络通信过程 要完成一个完整的 TCP/IP 网络通信过程,需要使用一系列函数来实现。这些函数包括 bind、listen、accept 和 recv/send 等。下面是它们的配合流程: 创…...
[GUET-CTF2019]number_game[数独]
目录 题目 学到的知识点: 题目 在buu上看到了一道数独题,没见过,记录一下 下载附件,查壳,无壳,在IDA中打开,直接找到主函数 unsigned __int64 __fastcall main(int a1, char **a2, char **a3…...
OpenScreen快捷键记忆技巧:轻松掌握视频编辑的高效操作组合键
OpenScreen快捷键记忆技巧:轻松掌握视频编辑的高效操作组合键 【免费下载链接】openscreen Create stunning demos for free. Open-source, no subscriptions, no watermarks, and free for commercial use. An alternative to Screen Studio. 项目地址: https:/…...
利用快马平台五分钟搭建openmaic网页版图像描述演示原型
最近在调研多模态AI框架时,发现OpenMAIC这个开源项目很有意思。它整合了视觉理解和文本生成能力,特别适合做图像描述这类应用。不过对于想快速验证效果的新手来说,本地部署整套环境还是有点门槛。正好发现InsCode(快马)平台能极速搭建演示原型…...
PE结构 --->8.PE对齐的概念 文件对齐VS磁盘对齐
目录 PE结构中对齐概念详解 原理 磁盘文件对齐(File Alignment, 0x200): 内存对齐(Section Alignment, 0x1000): 关系与CPU页管理: 详细步骤:PE文件加载到内存的对齐过程 读取…...
突破性方案:智能引擎助力黑苹果EFI自动生成
突破性方案:智能引擎助力黑苹果EFI自动生成 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾在深夜对着满屏的ACPI补丁代码感到迷茫…...
交通顶刊TR Part C 2026年5月论文导读(上)
一期刊简介Transportation Research Part C (TR-C): Emerging Technologies 是交通领域顶刊,由 Elsevier 出版,中科院与 JCR 均为 1 区,近年影响因子约8–9.6。该期刊以交通系统为核心,聚焦 AI、大数据、运筹学等新兴技术对交通规…...
15 从 MLP 到 LeNet:PyTorch 网络代码为什么总像模板?
PyTorch 网络代码为什么总像模板? 很多人第一次看 PyTorch 网络代码时,都会有一种很熟悉的感觉: 代码不长每一行单独看也认识但合在一起,就完全不知道这个网络到底是怎么搭出来的 尤其是下面这几个东西,最容易让人越看…...
Go Routine 调度策略与公平性控制
Go Routine调度策略与公平性控制 在Go语言中,Goroutine作为轻量级线程,是并发编程的核心。其高效的调度机制和公平性控制保证了高并发场景下的性能与稳定性。本文将深入探讨Goroutine的调度策略及其公平性控制机制,帮助开发者理解其底层原理…...
你的手机‘出卖’了你:从加速度传感器到麦克风,揭秘硬件动态特征如何生成唯一设备指纹
手机硬件的隐秘指纹:从传感器偏差到声纹特征的唯一身份标识 当你在咖啡店用手机支付时,是否想过这台设备正在通过陀螺仪的微小颤动向系统"自报家门"?现代智能设备中那些被忽视的硬件特性——加速度计的校准误差、麦克风的频率响应偏…...
【Seed-Labs 2.0】从攻到防:实战解析SQL注入漏洞与预编译语句防御
1. SQL注入漏洞:从入门到实战 第一次接触SQL注入时,我被这种攻击方式的简单粗暴震惊了。只需要在登录框输入admin#,就能直接绕过密码验证进入系统。这让我意识到,很多看似复杂的系统安全问题,其实都源于最基础的编码疏…...
2026最权威的AI辅助写作神器解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 伴随人工智能技术迅猛发展,AI工具于毕业论文写作里的运用愈发广泛,学…...
