流形学习(Manifold Learning)是机器学习中一大类算法的统称,流形学习是非线性的降维方法(an approach to non-linear dimensionality reduction)。PCA、LDA等降维方法基于线性假设,经常会损失数据内部非线性的结构信息;流形学习是线性降维方法的generalization,目的是捕获数据内部非线性的结构。而MDS就是流行学习中非常经典的一种方法。

多维尺度变换是一种在低维空间展示“距离”数据结构的多元数据分析技术,是一种将多维空间的研究对象简化到低维空间进行定位、分析和归类,同时又保留对象间原始关系的数据分析方法。多维尺度变换算法集中于保留高维空间中的“相似度”信息,而在一般的问题解决的过程中,这个“相似度”通常用欧式距离来定义。

通俗来讲,就是将多维数据映射到低维空间,同时保持各个样本之间的原有相对距离不变。

多维尺度变换的目标:当n 个对象中各对对象之间的相似性(或距离)给定时,确定这些对象在低维(欧式) 空间中的表示(称为感知图, Perceptual Mapping),
并使其尽可能与原先的相似性(或距离)“大体匹配”,使得由降维所引起的任何变形达到最小。

多维尺度变换可以应用到数据可视化,通过可视化找出异常点,反欺诈应用等。

计算步骤大致如下:

第一步:计算所有数据项两两间的实际距离(可参考皮尔逊算法或欧几里德算法)

第二步:将数据项随机放置在二维图上。

第三步:针对每两两构成的一对数据项,将它们的实际距离与当前在二维图上的距离进行比较,求出一个误差值

第四步:根据误差的情况,按照比例将每个数据项的所在位置移近或移远少许量。(每一个节点的移动,都是所有其它节点施加在该节点上的推或拉的结合效应。)

第五步:重复第三步、第四步(节点每移动一次,其当前距离与实际距离的差距就会减少一些)。这一过程会不断地重复多次,直到无法再通过移动节点来减少总体误差为止。

python 实现

已知四个城市之间的距离,如何展示出他们的相对位置,原理就是利用MDS将多维数据映射到二维空间,作为经纬度坐标,同时之间的相对距离保持不变。

import numpy as np
import pandas as pd
from sklearn.manifold import MDS
import matplotlib.pyplot as plt
#%%
data = np.array([(0,1046,608,1859),
(1046,0,825,1149),
(608,825,0,1280),
(1859,1149,1280,0)
]
)
index = ['beijing','shanghai','zhengzhou','guangzhou']
columns = ['beijing','shanghai','zhengzhou','guangzhou']
Word = pd.DataFrame(data,index,columns)
Word
#%%
mds = MDS()
mds.fit(data)
#%%
a = mds.embedding_
print(a)
plt.scatter(a[0:,0],a[0:,1],color='red')

多维尺度变换MDS(Multidimensional Scaling)的更多相关文章

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

    在市场研究中,有一种分析是研究消费者态度或偏好,收集的数据是某些对象的评分数据,这些评分数据可以看做是对象间相似性或差异性的表现,也就是一种距离,距离近的差异性小,距离远的差异性大.而我们的分析目的也 ...

  2. 二维DCT变换

    DCT(Discrete Consine Transform),又叫离散余弦变换,它的第二种类型,经常用于信号和图像数据的压缩.经过DCT变换后的数据能量非常集中,一般只有左上角的数值是非零的,也就是 ...

  3. SPSS数据分析—基于最优尺度变换的典型相关分析

    传统的典型相关分析只能考虑变量之间的线性相关情况,且必须为连续变量,而我们依然可以使用最优尺度变换来拓展其应用范围,使其可以分析非线性相关.数据为分类数据等情况,并且不再仅限于两个变量间的分析, 虽然 ...

  4. 吴裕雄 python 机器学习——多维缩放降维MDS模型

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  5. 二维DCT变换 | Python实现

    引言 最近专业课在学信息隐藏与数字水印,上到了变换域隐藏技术,提到了其中的DCT变换,遂布置了一个巨烦人的作业,让手动给两个\(8\times8\)的矩阵做二维DCT变换,在苦逼的算了一小时后,我决定 ...

  6. Bitmap尺度变换

    Bitmap bitMap = BitmapFactory.decodeFile(path); int width = bitMap.getWidth(); int height = bitMap.g ...

  7. 宏基因组扩增子图表解读2散点图:组间整体差异分析(Beta多样性)

    散点图 数据点在直角坐标系平面上的分布图.在宏基因组领域,散点图常用于展示样品组间的Beta多样性,常用的分析方法有主成分分析(PCA),主坐标轴分析(PCoA/MDS)和限制条件的主坐标轴分析(CP ...

  8. R语言︱常用统计方法包+机器学习包(名称、简介)

    一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...

  9. ML—R常用多元统计分析包(持续更新中……)

    基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivaria ...

随机推荐

  1. 控件属性和InitializeComponent()关系:

    namespace Test22 { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> priv ...

  2. Saltstack(二)

    承接上篇博客 配置管理 haproxy的安装部署 创建相关目录 # 创建配置目录 [root@linux-node1 ~]# mkdir /srv/salt/prod/pkg/ [root@linux ...

  3. 第119天:移动端:CSS像素、屏幕像素和视口的关系

    移动前端中常说的 viewport (视口)就是浏览器显示页面内容的屏幕区域.其中涉及几个重要概念是 dip ( device-independent pixel 设备逻辑像素 )和 CSS 像素之间 ...

  4. C++解析(16):友元与类中的函数重载

    0.目录 1.友元的尴尬能力 2.类中的函数重载 3.小结 1.友元的尴尬能力 什么是友元? 友元是C++中的一种关系 友元关系发生在函数与类之间或者类与类之间 友元关系是单项的,不能传递 友元的用法 ...

  5. 【BZOJ5415】【NOI2018】归程(克鲁斯卡尔重构树)

    [NOI2018]归程(克鲁斯卡尔重构树) 题面 洛谷 题解 我在现场竟然没有把这道傻逼题给切掉,身败名裂. 因为这题就是克鲁斯卡尔重构树的模板题啊 我就直接简单的说一下把 首先发现答案就是在只经过海 ...

  6. VK Cup 2017 Round 3 + Codeforces Round #412

    A 读题题 B 就是你排名第p,得了x分,而最终至少需要y分,你需要最少的successful hack,使得最终得分s>=y,且由s随机取25个数,使p被选中. (1)暴力枚举hack成功几次 ...

  7. POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)

    POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化) 题意分析 前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里 离散化 有些数 ...

  8. 【数学】【CF27E】 Number With The Given Amount Of Divisors

    传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...

  9. Python3 字典 pop() 方法

     Python3 字典 描述 Python 字典 pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值.key值必须给出. 否则,返回default值. 语法 pop()方法语法: ...

  10. 我学习的第一个uiautomator从创建到运行结束

    一.新建自动化脚本     1.新建java工程包              [file]----[new]----[Java Project]    新建工程                  [右 ...