学习小插曲01---多维标度法降维mds(python×matmab√)

问题

最近做聚类的时候发现在做一个名为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应该是另有用处,只是它的价值我没用好吧,如果有带劳能给我解除疑惑,为什么这两种方法的不同,欢迎评论留言…

发布了6 篇原创文章 · 获赞 0 · 访问量 69

猜你喜欢

转载自blog.csdn.net/qq_44851357/article/details/105150774