各种数据降维方法ICA、 ISOMAP、 LDA、LE、 LLE、MDS、 PCA、 KPCA、SPCA、SVD、 JADE

news2024/11/24 14:30:13

 独立分量分析 ICA
等度量映射 ISOMAP
线性判别分析 LDA
(拉普拉斯)数据降维方法 LE
局部线性嵌入 LLE
多维尺度变换MDS
主成分分析 PCA
核主成分分析 KPCA
稀疏主成分分析SPCA
奇异值分解SVD
特征矩阵的联合近似对角化 JADE

各种数据降维方法(matlab代码)代码获取戳此处代码获取戳此处



降维目的:克服维数灾难,获取本质特征,节省存储空间,去除无用数据,实现数据可视化。

目前很多实验所需要的数据均为高维数据,也就是多列变量值决定目标值。高维数据有一定的优点,数据维度高,则其所包含的信息量就大,则可供决策的依据就较多。但是数据不是维度越高越好,因为还需要考虑实际的计算能力,高维度数据的缺点,消耗计算资源,计算时间大,同时使得冗余且耦合的数据对实验结果造成影响,甚至造成“维度灾难”。所以为了适应需要,获取数据的本质特征,降维算法随之诞生。以下是对提到的各种数据分析方法的简要分析:

  1. 独立分量分析 (ICA)

独立分量分析是一种计算方法,用于从多元统计数据中找到隐藏的因子或成分,这些因子或成分在统计上是尽可能独立的。ICA在信号处理、神经科学和盲源分离等领域有广泛应用。

  1. 等度量映射 (ISOMAP)

等度量映射是一种非线性降维技术,它试图保持数据点之间的测地距离(即两点之间的最短路径距离)。ISOMAP特别适用于发现嵌入在高维空间中的低维流形结构。

  1. 线性判别分析 (LDA)

线性判别分析是一种监督学习方法,用于分类和降维。它通过找到一个投影方向,使得同类之间的投影点尽可能接近,而不同类之间的投影点尽可能远离。

  1. (拉普拉斯)数据降维方法 (LE)

拉普拉斯特征映射(Laplacian Eigenmaps,简称LE)是一种基于图的非线性降维技术。它构建了一个表示数据点之间相似性的图,并试图保持数据点之间的局部邻接关系。

  1. 局部线性嵌入 (LLE)

局部线性嵌入是一种无监督的非线性降维方法。它假设数据点可以由其局部邻域的线性组合近似,并试图在降维后的空间中保持这种局部线性关系。

  1. 多维尺度变换 (MDS)

多维尺度变换是一种统计技术,用于将高维空间中的对象(如观测值或变量)映射到低维空间,同时尽可能保留对象之间的相似性。

  1. 主成分分析 (PCA)

主成分分析是一种广泛使用的线性降维技术。它通过正交变换将原始特征转换为一组线性不相关的新特征,称为主成分,这些主成分按照方差大小排序。

  1. 核主成分分析 (KPCA)

核主成分分析是PCA的非线性扩展,它通过使用核函数将数据映射到高维特征空间,然后在这个空间中执行PCA。这使得KPCA能够发现数据中的非线性结构。

  1. 稀疏主成分分析 (SPCA)

稀疏主成分分析是PCA的一个变种,它试图找到的主成分在原始特征上具有稀疏性,即大部分系数为零。这有助于解释性和可解释性。

  1. 奇异值分解 (SVD)

奇异值分解是一种在线性代数中常用的方法,它可以对矩阵进行分解,类似于PCA中的协方差矩阵分解。SVD在信号处理、图像处理等领域有广泛应用。

  1. 特征矩阵的联合近似对角化 (JADE)

特征矩阵的联合近似对角化是一种用于盲源分离的技术,特别是用于独立分量分析。它试图通过联合对角化多个特征矩阵来找到一组独立的源信号。

这些技术各自具有不同的特点和适用场景,选择哪种方法取决于数据的性质、问题的需求以及计算资源的限制。

%加载数据,数据为480*8的矩阵,总共12类,每类40*8,这是对12类进行聚类
clc
clear

load('data.mat')
addpath('Fun')
%% 进行二维可视化,需要生长与数据相对应的标签
mm=40; % mm为每类样本数
lable=[ones(mm,1); 2*ones(mm,1); 3*ones(mm,1); 4*ones(mm,1);...
    5*ones(mm,1); 6*ones(mm,1); 7*ones(mm,1); 8*ones(mm,1);...
    9*ones(mm,1); 10*ones(mm,1); 11*ones(mm,1); 12*ones(mm,1)];

%% 利用降维方法对数据进行降维处理,二维可视化,就降到2维,三维可视化,就降到3维

k=3; %最近邻数,这个参数影响聚类效果
d=3;% 最终降到的维度,2
lambda = 1; % 正则化系数

data2DLLE = LLE(data, k, d); %生成2D降维数据
data2Dtran = LE(data, k , d);
% [U,D,V]=MySVD(data);
[alpha, w, err] = spca(data, d, lambda);
eig_vec_selected=PCA(data',d);
reduced_features=LDA(data,lable);
data_kpca=KPCA(data,d);
[A,S]=jade(data,d);
%MDSMat = MyMDS(data', d);%data需要方阵
% Z = isomap(data', k, d);%data需要方阵
%ZZ = MDS(data, d); %data需要方阵

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

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

相关文章

一篇文章讲清楚Java中的反射

介绍 每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。 类加载相当于 Class 对象的加载。类在第一次使用时才动态加载到 JVM 中,可以使用 Class…

组件通信 Vue3

1.props 1.child <template><div class"child"><h3>子组件</h3><h4>玩具&#xff1a;{{ toy }}</h4><h4>父给的车&#xff1a;{{ car }}</h4><button click"sendToy(toy)">把玩具给父亲</butt…

Python进阶03-闭包和装饰器

零、文章目录 Python进阶03-闭包和装饰器 1、作用域 &#xff08;1&#xff09;作用域 在Python代码中&#xff0c;作用域分为两种情况&#xff1a; 全局作用域局部作用域 &#xff08;2&#xff09;变量的作用域 随着函数的出现&#xff0c;作用域被划分为两种 在全局定…

江协科技STM32学习- P7 GPIO输入

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

docker安装AWVS15(网络拉取失败,提供百度云镜像下载)

一.背景 准备在服务器上安装AWVS15用于扫描&#xff0c;直接拉取一直提示网络错误&#xff0c;刚好本地上有容器&#xff0c;就直接将本地的AWVS容器打包上传了&#xff0c;顺带上传到百度云来避免今后直接拉取网络出错的情况。考虑到其他师傅可能也会遇到相似问题&#xff0c…

最新高仿拼夕夕源码/拼单系统源码/拼单商城/类目功能齐全

源码简介&#xff1a; 高仿拼夕夕源码&#xff0c;拼单商城系统源码、拼团商城源码&#xff0c;改的版本。拼夕夕拼团商城系统源码源码 多商户多区域拼团系统源码。 自己改的版本&#xff0c;类似于拼单的商城&#xff0c;功能齐全&#xff0c;看着还挺不错&#xff0c;绝对值…

上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型&#xff1b; 2.多图输出、多指标输出(MAE、RMSE、MSE、R2)&#xff0c;多输入单输出&#xff0c;含不同置信区间图、概率…

多任务学习MTL模型:多目标Loss优化策略

前言 之前的文章中多任务学习MTL模型&#xff1a;MMoE、PLE&#xff0c;介绍了针对多任务学习的几种模型&#xff0c;着重网络结构方面的优化&#xff0c;减缓task之间相关性低导致梯度冲突&#xff0c;模型效果差&#xff0c;以及task之间的“跷跷板”问题。 但其实多任务学…

文件包含之session.upload_progress的使用

目录 原理 环境搭建 渗透 结果 一次项目经历复现 原理 session.auto_start顾名思义&#xff0c;如果开启这个选项&#xff0c;则PHP在接收请求的时候会自动初始化Session&#xff0c;不再需要执行session_start()。但默认情况下&#xff0c;也是通常情况下&#xff0c;这…

k8s声明式管理方式(yaml文件实现)

首先在/opt目录下创建 mkdir k8s-yaml cd k8s-yaml/ yaml文件 1.deployment的部署方式 首先 kubectl explain deployment 获取它的类型kind和标签version vim nginx-deploy.yaml apiVersion: apps/v1 #定义api版本的标签 kind: Deployment #定义资源的类型&#xff08;kin…

【数模修炼之旅】10 遗传算法 深度解析(教程+代码)

【数模修炼之旅】10 遗传算法 深度解析&#xff08;教程代码&#xff09; 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法&#xff0c;大家可以关注这个专栏&#xff0c;持续学习哦&#xff0c;对于大家的能力提高会有极大的帮助。 1 遗传算法介绍及应用 …

网络安全面试经验80篇

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

《JavaEE进阶》----5.<SpringMVC②剩余基本操作(CookieSession)>

Cookie和Session简介。 Spring MVC的请求中 Cookie的设置和两种获取方式 Session的设置和三种获取方式。 三、&#xff08;接上文&#xff09;SpringMVC剩余基本操作 3.2postman请求 3.2.10 获取Cookie和Session 1.理解Cookie 我们知道HTTP协议自身是“无状态”协议。 &qu…

2024.8.28 C++

使用C手动封装一个顺序表&#xff0c;包含成员数组一个&#xff0c;成员变量N个 代码 #include <iostream> //使用C手动封装一个顺序表&#xff0c;包含成员数组一个&#xff0c;成员变量N个 using namespace std;using datatype int; struct Seqlist { private:datat…

flink 实战理解watermark,maxOutOfOrderness,allowedLateness

watermark watermark的作用 就是延迟触发窗口&#xff0c;让乱序到达的元素依然能够落在正确的窗口内。为啥能实现这个效果&#xff0c;一直通过公式更新watermark,如果乱序到的元素就不能更新watermark,相当于就是延迟触发计算操作。触发时间 watermark 大于窗口的最大值allo…

我的易经代码

本人从2000年起&#xff0c;就开始写一款算命软件&#xff0c;第一版用的是powerbuilder。后来改成企业版&#xff0c;名为“始皇预测”&#xff0c;用Java Swing编写&#xff0c;支持五大神数&#xff0c;三式&#xff0c;主要应用还是六爻、四柱、风水&#xff0c;其它如称骨…

2024118读书笔记|《岳阳楼记》——天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数

2024118读书笔记|《岳阳楼记》——天高地迥&#xff0c;觉宇宙之无穷&#xff1b;兴尽悲来&#xff0c;识盈虚之有数 爱莲说陋室铭小石潭记醉翁亭记赤壁赋桃花源记归去来兮辞木兰辞阿房宫赋滕王阁序岳阳楼记 《岳阳楼记》范仲淹&#xff0c;都是背过的古文&#xff0c;挺不错的…

【Qt窗口】—— 工具栏

前情摘要&#xff1a; 工具栏相当于菜单栏中的众多快捷方式&#xff0c;毕竟很多操作都是通过菜单栏来直接访问的&#xff0c;但是可能会查找很长时间&#xff0c;首先就是查找在哪个菜单里面&#xff0c;打开菜单才能进一步操作。而工具栏则是把一些常用的操作都给列举出来&am…

生产者与消费者模型

生产者与消费者模型 生产者&#xff1a;生产数据的线程&#xff0c;这类的线程负责从用户端、客户端接收数据&#xff0c;然后把数据Push到存储中介。 消费者&#xff1a;负责消耗数据的线程&#xff0c;对生产者线程生产的数据进行&#xff08;判断、筛选、使用、响应、存储&…