降维-多维尺度法(MDS)
来源:互联网 发布:新发行的人工智能基金 编辑:程序博客网 时间:2024/06/07 10:45
多维尺度法(Multidimensional Scaling,MDS)是一种经典的数据降维方法,是当我们仅能获得样本之间的相似性矩阵时,如何由此来重构它们的欧几里德坐标,即只知道高维空间中的样本之间的距离,基于此重构这些样本在低维空间的相对位置!下面一步一步地介绍MDS的神奇。
一、问题定义
假定
问题的求解目标是获得样本在
二、问题建模
为便于讨论,令降维后的样本
基于上式可得
因为
其中
最后可得:
三、问题求解
已确定了矩阵
其中
为了达到有效的降维效果,假定其中有
四、算法描述
输入:距离矩阵
输出:矩阵
过程:
1. 根据式(1)~(3)计算
2. 根据(4)计算
3. 对矩阵
4. 取
5. 求得矩阵
五、算法实战
scikit-learn中的MDS算法是在包manifold中,其主要的参数为n_components,它确定了降维的维数,其余参数的介绍、配置请查阅参考资料1。
# -*- coding: utf-8 -*-from sklearn.manifold import MDSimport numpy as npdata = np.array([[1,1],[1.5,1.6],[2,2],[2.4,2.4],[1.95,1.9],[3,3],[3.3,3.1]])mds2 = MDS(n_components=2)newdata2 = mds2.fit_transform(data)numdata = data.shape[0]D1 = np.zeros([numdata,numdata])D2 = np.zeros([numdata,numdata])for i in range(0,numdata): for j in range(0,numdata): D1[i,j] = np.sqrt(np.sum(np.square(data[i,:] - data[j,:]))) D2[i,j] = np.sqrt(np.sum(np.square(newdata2[i,:] - newdata2[j,:])))print "MDS前后样本间距离之差:\n",D1-D2mds1 = MDS(n_components=1)newdata1 = mds1.fit_transform(data)print "原始数据-二维:\n", dataprint "降维后数据-一维:\n", newdata1
参考资料
- http://scikit-learn.org/dev/modules/generated/sklearn.manifold.MDS.html sklearn.manifold.MDS
- https://item.jd.com/11867803.html 《机器学习》 周志华
- http://blog.csdn.net/Dark_Scope/article/details/53229427 维度打击,机器学习中的降维算法:ISOMAP & MDS
- http://blog.csdn.net/songrotek/article/details/42235097 模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现
- 降维-多维尺度法(MDS)
- MDS(多维尺度法)的原理及MATLAB实现
- MDS- Multidimensional Scaling 多维尺度法 分析
- MDS(multidimensional scaling)多维尺度分析
- MDS(multidimensional scaling)多维尺度分析
- MDS(multidimensional scaling)多维尺度分析
- MDS(multidimensional scaling)多维尺度分析
- 多维尺度分析(MDS-Multidimensional Scaling)
- 多维尺度分析 MDS
- MDS多维尺度分析
- 多维尺度变换(multidimensional scaling, MDS)
- 模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现
- 多维标度法(MDS)的Python实现
- 降维——多维缩放MDS
- 用java写MDS多维标度分析(multidimensional scaling )
- 「机器学习算法」多维缩放(MDS)
- 多维尺度变换
- 统计学习之---多尺度变换 MDS (Multidimensional Scaling)
- Ubuntu下anaconda3.5搭建tensorflow
- 删除kafka的topic
- ST表模板
- leetcode 698. Partition to K Equal Sum Subsets(记忆化搜索/状压dp)
- 对线性回归、逻辑回归、各种回归的概念学习
- 降维-多维尺度法(MDS)
- 机器学习之朴素贝叶斯法(基于西瓜数据3.0的算法实现)
- 第一周 前端基础
- 项目报错:The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the
- Nodejs学习(五)--动态网页
- Android自定义View专题三-自定义View属性
- 以程序员的角度对书法抽象画等艺术审美的理解
- EventBus简单使用
- HTML几个常用的转移符