模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现

在模式识别中,我们会考虑到距离distance的问题,就是一个样本和另一个样本在空间中的距离。根据距离的大小来判断分类。那么,也存在这样的一类问题:我们只知道空间中的点(样本)的距离,那么怎么来重构这些点的相对位置呢?

显然欧式距离是最直观的距离,那么我们就会想使用欧式距离来进行计算重构,我们还希望能够在不同维度上进行重构,比如2维或者3维。

怎么做?

有这么个解决方法叫做MDS 全称为 Multidimensional Scaling。

下面Step By Step介绍MDS如何来求解这个问题。

Step 1:问题重述

我们有这么一个距离矩阵,我们通过这个矩阵计算出点的相对位置矩阵X,使得通过X反过来计算距离矩阵与原距离矩阵D差距最小。所以这是一个最优化问题。

大家可以看wikipedia上的问题描述,这里直接截图好了:

Step 2:通过矩阵的方法求解

大家也看到wiki最后说的solution用eigendecompositions 就是特征值分解。

这里就详细说明一下是怎么做的。

转4张MDS的ppt(来源于自己上课老师的ppt):

解释一下其实很简单:

1)构造了一个矩阵T,然后发现T这个矩阵可以完全由D计算出来

2)T这个矩阵可以做分解啊,那么里面特征值如果大于等于0,就可以开根号。

看这个公式:

U是特征向量,中间那个是特征值的矩阵。

这样的话X就能由选取的几个特征值和特征向量重构出来(这同时也是一种降维的方式)

Step 3:具体Matlab实现

直接转了上课给的例子,例子是知道英国几个城市的相对距离,重构出其相对位置。

Matlab代码:

clc;
clear all;
close all;

%distance matrix for: London, Cardiff, Birmingham, Manchester, York, and
%Glasgow.
d=[0,411,213,219,296,397;...
    411,0,204,203,120,152;...
    213,204,0,73,136,245;...
    219,203,73,0,90,191;...
    296,120,136,90,0,109;...
    397,152,245,191,109,0];

n=size(d,1);
t=zeros(n,n);
for i=1:n
    for j=1:n
        t(i,j)=-0.5*(d(i,j)^2 -1/n*d(i,:)*d(i,:)‘ -1/n*d(:,j)‘*d(:,j) +1/n^2*sum(sum(d.^2)));
    end
end
[V,D] = eig(t)
X=V(:,1:2)*D(1:2,1:2).^(1/2);
scatter(-X(:,2),X(:,1));
axis([-300,300,-300,300]);

Matlab得到的效果:

OK,MDS就这样吧!

时间: 2024-10-25 22:09:15

模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现的相关文章

多维尺度变换MDS(Multidimensional Scaling)

流形学习(Manifold Learning)是机器学习中一大类算法的统称,而MDS就是其中非常经典的一种方法. 多维尺度变换是一种在低维空间展示"距离"数据结构的多元数据分析技术,是一种将多维空间的研究对象简化到低维空间进行定位.分析和归类,同时又保留对象间原始关系的数据分析方法.多维尺度变换算法集中于保留高维空间中的"相似度"信息,而在一般的问题解决的过程中,这个"相似度"通常用欧式距离来定义. 通俗来讲,就是将多维数据映射到低维空间,同时保

多维尺度分析(Multidimensional scaling)与MATLAB实现

1. 几篇介绍很详细的博文 [1]http://blog.csdn.net/yang_xian521/article/details/7301121 模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现 [2]http://blog.csdn.net/songrotek/article/details/42235097 MDS(multidimensional scaling)多维尺度分析 [3]http://blog.csdn.net/mag

多维尺度分析

我们知道对应分析是一种图示分析技术,通过对应分析图能够简单直观的将变量间的关系加以呈现,多维尺度分析和对应分析类似,也是将变量间的关系通过图形进行展现,关于二者的区别后面会做论述. 一.多维尺度分析简介多维尺度分析Multidimensional Scaling,简称MDS,是一种探索性数据分析技术,主要是用适当的降维方法,将多个变量通过坐标定位在低维空间中(二维或三维),变量之间的欧氏距离就可以反映它们之间的差异性和相似性. 多维尺度分析根据数据集特征分为:1.不考虑个体差异MDS模型2.考虑

多维标度法(MDS)的Python实现

多维标度法(multidimensional scaling,MDS)是一种在低维空间展示“距离”数据结构的多元数据分析技术,是一种将多维空间的研究对象( 样本 或 变量 ) 简化到低维空间进行定位.分析和归类, 同时又保留对象间原始关系的数据分析方法. 多维标度法与主成分分析(Principle Component Analysis,PCA).线性判别分析(Linear Discriminent Analysis,LDA)类似,都可以用来降维 多维标度法的目标:当n 个对象中各对对象之间的相似

SPSS数据分析—多维尺度分析

在市场研究中,有一种分析是研究消费者态度或偏好,收集的数据是某些对象的评分数据,这些评分数据可以看做是对象间相似性或差异性的表现,也就是一种距离,距离近的差异性小,距离远的差异性大.而我们的分析目的也是想查看这些对象间的差异性或相似性情况,此时由于数据的组成形式不一样,因此不能使用对应分析,而需要使用一种专门分析此问题的方法——多维尺度分析(MDS模型).多维尺度分析和对应分析类似,也是通过可视化的图形阐述结果,并且也是一种描述性.探索性数据分析方法. 基于以上,我们可以得知,多维尺度分析经常使

多尺度几何分析(Ridgelet、Curvelet、Contourlet、Bandelet、Wedgelet、Beamlet)

稀疏基的讨论已经持续了近一个月了,这次讨论多尺度几何分析.但由于下面讨论的这些变换主要面向图像,而本人现在主要关注于一维信号处理,所以就不对这些变换深入讨论了,这里仅从众参考文献中摘抄整理一些相关内容作为自己的一个备忘录,概念也许并不一定理解的准确,若以后杀入图像处理领域再行好好揣摩研究. 一.从小波分析到多尺度几何分析 小波分析取在从多学科领域中取得巨大成功的一个关键原因在于它比傅里叶分析能更"稀疏"地表示一维分段光滑或者有界变差函数.遗憾的是,小波分析在一维时所具有的优异特性并不能

当前运维素质的分析

当前运维素质的分析... ---------------------- 将目前从事运维职业的朋友按时间大致分了三个类别: 第一批:2007年之前,目前这类朋友基本占据各公司中高层职位 第二批:2008年-2013年,这部分运维朋友基本是公司的中流砥柱,在主要的技术或是管理岗位 第三批:2013年之后从事运维工作的朋友,基本在做最基础的运维工作 第一类:学校里计算机学习成绩不错的一般都往BAT一二线公司去了,大部分还是从事研发类工作,留下一部分学习成绩一般的学生勉强去面试运维工作. 第二类:由于当

poj 2100 尺取法(尺度法)

poj 2100 尺取法(尺度法) 题意 给你一个数N,然后找到一个连续的序列,使得这个序列中的数的平方和等于N. 输出需要注意的是第一行为解的个数,剩下的每行先输出序列的长度,然后输出序列.按照序列的长度进行降序输出. 解题思路 没啥好说的,使用尺度法,进行枚举各个区间上的数. 需要注意的是数字1的答案为: 1 1 1 代码实现 #include<cmath> #include<cstdio> #include<cstring> #include<algorit

数据仓库数据库设计方法---关系模型和多维模型比较分析

数据仓库中广泛采用的数据库设计模型有两种:关系型和多维型.普遍认为在数据仓库的设计方法中关系模型是“Inmon”方法而多维模型是“Kimball”方法. 先来看下关系模型,关系型数据以一种称为“标准化”的形式存在.数据标准化是指数据库设计会使数据分解成非常低的粒度级,标准化数据以一种孤立模式 存在,这种情况下对数据表里的数据关系要求很严格.一般遵循3NF范式.采用关系型设计的数据库一般具有较强的灵活性和多功能性(可以支持数据的多种视 图). 再来看下多维模型,多维模型一般有星型模式.雪花模式.混