如何解决为什么不从SciKit学习工作的非度量MDS?
我试图用scikit学习的多维尺度再现3D空间中的一个点集从距离图。在这个例子中的情况下,我想恢复一个简单的正弦波。我的代码如下:
import numpy as np
from scipy.spatial import distance_matrix
from sklearn.manifold import MDS
import pylab
coords = np.array([[x,np.sin(x),0] for x in range(0,20)])
D = distance_matrix(coords,coords)
pylab.matshow(D,cmap="viridis_r")
pylab.colorbar()
pylab.show()
random_state = np.random.RandomState(seed=1238)
mds = MDS(metric=True,n_components=3,max_iter=1000,eps=1e-9,random_state=random_state,dissimilarity="precomputed")
coords_rec = mds.fit(D).embedding_
my_plotting_function(coords,coords_rec)
在现实生活中我希望我的距离图件被损坏或丢失,所以我想换成用零这些值和执行非度量MDS。这是通过开关实现metric=False
在MDS构造。
不幸的是,如果使用这个开关(离开距离矩阵不变现在)此恢复不工作在所有:
为什么不能点来使用这种方法回收的?非度量是MDS错误的方法完成这个任务或者是有什么毛病sklearn实现/我的设置?
在此先感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。