【Matlab】降维方法_多维尺度变换MDS

1.基本思想

MDS(多维尺度变换)是一种经典的降维算法,其基本思想是通过保持数据点之间的距离关系,将高维数据映射到低维空间中。

具体来说,MDS算法的基本步骤如下:

  1. 计算数据点之间的距离矩阵。可以使用欧氏距离、曼哈顿距离、余弦距离等不同的距离度量方式。
  2. 将距离矩阵转换为内积矩阵。内积矩阵中的每个元素表示两个数据点之间的内积,可以通过距离矩阵使用半正定矩阵的方法进行计算。
  3. 对内积矩阵进行特征值分解。得到特征值和特征向量。
  4. 根据特征值和特征向量计算降维后的坐标。将特征向量按照特征值大小排序,选择前k个特征向量,将原始数据映射到这k个特征向量构成的空间中。
  5. 将降维后的数据点绘制出来。

需要注意的是,MDS算法的效果受到距离矩阵的影响,因此距离度量方式的选择对算法的性能具有重要影响。此外,由于MDS算法是一种基于距离的方法,因此只适用于那些距离信息比较完备的数据集。

2.数据集介绍

鸢尾花(Iris)数据集是一个经典的数据集,用于机器学习和统计学习中的分类和聚类问题。该数据集包含了三种不同类型的鸢尾花(山鸢尾、变色鸢尾和维吉尼亚鸢尾)的测量数据,每种花各有50个样本。每个样本包含四个特征,即萼片长度、萼片宽度、花瓣长度和花瓣宽度,以及它所属的鸢尾花类型。

该数据集最早由英国统计学家和生物学家Ronald Fisher在1936年的一篇论文中介绍,并一直被广泛用于分类和聚类问题的研究中。由于其简单性和广泛应用性,鸢尾花数据集已成为了机器学习和统计学习中的标准数据集之一。在实践中,该数据集也常被用于学习数据可视化和降维方法,例如PCA和KPCA等。

本文采用的数据是.xlsx格式,前四列为样本的特征值,最后一列为样本的标签,标签值为1,2,3

3.文件结构

在这里插入图片描述

iris.xlsx						% 鸢尾花数据集,具体格式参考第2部分
Main.m							% 主函数

4.详细代码及注释

% 清空变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

% 加载数据
data = readmatrix('iris.xlsx');

% 将数据按行归一化
data_norm = zscore(data(:,1:end-1));

% 计算距离矩阵
D = pdist(data_norm);

% 计算坐标
Y = cmdscale(D);

% 绘制降维结果
gscatter(Y(:,1), Y(:,2), data(:,end));
xlabel('Component 1');
ylabel('Component 2');
title('MDS of Iris Dataset');

5.运行结果

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
tSNE是一种常用的数据降维方法,可以用于将高维数据降到低维空间中,使得数据在低维空间中的分布能够更加清晰地展现出来。 下面是使用tSNE对一堆向量数据进行降维的一般步骤: 1. 准备数据:将要降维的向量数据整理成一个矩阵,每一行代表一个向量,每一列代表向量的一个特征。 2. 数据预处理:如果数据中存在缺失值或离群值,需要进行数据清洗。如果不同特征的量级不同,需要进行特征缩放或标准化,以便使得不同特征对结果的影响相等。 3. 计算相似度矩阵:使用某种相似度度量方法,如欧几里得距离、余弦相似度等,计算出向量之间的相似度,得到一个相似度矩阵。 4. 计算概率分布:利用相似度矩阵计算出高维空间中每个点之间的概率分布,得到一个高维概率分布矩阵。 5. 计算低维空间中的概率分布:根据高维概率分布矩阵,使用tSNE算法计算出低维空间中每个点之间的概率分布,得到一个低维概率分布矩阵。 6. 最小化KL散度:通过最小化KL散度来使得低维概率分布矩阵与高维概率分布矩阵尽可能接近,得到降维后的向量数据。 7. 可视化:将降维后的数据可视化展示出来,以便观察数据的分布情况。 需要注意的是,tSNE算法的计算复杂度比较高,当数据量很大时,可能需要使用更高级的算法或者使用分布式计算来进行加速。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码两年半的练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值