多维标度数据降维之MDS(python× matlab√)
使用anonymous-microsoft web.data的多维数据集的时候,因为该数据集没有标签,在自己打标签的过程中遇到了一些问题。
问题
最近做聚类的时候发现在做一个名为anonymous-microsoft web.data的多维数据集的时候,因为该数据集没有标签,在自己打标签的过程中遇到了一些问题。因为python用的比较多一直以来对py看的很重,以为他那个方面都很厉害。这不问题就来了:

调用方法如下:
from sklearn.manifold import MDS
mds = MDS()
data = mds.fit_transform(这里面放距离矩阵哦)
可这蓝茫茫的一片也没啥效果啊....
然后在网上看了一些其他人自己写的这个MDS降维算法,发现和这个是差不多的。郁闷了好一阵子..
解决
后来在一篇论文中发现MATLAB中也有这类算法,并且人家有成功的例子,我赶紧拿来试一试,哇咔咔

而且MATLAB是专门处理矩阵的工具,python做这个用了我笔记本30min左右才跑出来,MATLAB只用了不到5min。哦对了附上引用代码:
%这是MATLAB里面哦
data = csvread('distance.csv');
data_xy = mdscale(data,2,'criterion','metricsstress');
'''
mdscale()里面的后2个参数保证了同一个地方有两个点不会报错
'''
我果然现在还是个渣渣。
另外,我感觉sklearn中的MDS应该是另有用处,只是它的价值我没用好吧,如果有带劳能给我解除疑惑,为什么这两种方法的不同,欢迎评论留言...
【时隔几年,简单补充,其实这两个函数都是一种方法 matlab直接处理数据,python的需要先转成距离矩阵】

浙公网安备 33010602011771号