Python scikit学习';的正确输入是什么;什么是MDS?

Python scikit学习';的正确输入是什么;什么是MDS?,python,scikit-learn,multi-dimensional-scaling,Python,Scikit Learn,Multi Dimensional Scaling,我希望这是一个正确的地方张贴-如果不是,我愿意改变这样做 在任何情况下,我都使用MDS来帮助我找到数据集的二维表示。从本质上讲,这些是多年蛋白质数据中氨基酸残基的pKa值——核心是相同尺度的十进制数。有很多位置(~600行),有很多年(~12列) 我的问题是:MDS的正确输入是数据矩阵(年与职位),还是我可以输入相关矩阵(年与年)?我这样问是因为API文档与书面描述冲突 API文档表示数据矩阵:(即n_样本,n_特征) 书面描述为“输入相似性矩阵”:如果您将相异性='euclidean'传递给初

我希望这是一个正确的地方张贴-如果不是,我愿意改变这样做

在任何情况下,我都使用MDS来帮助我找到数据集的二维表示。从本质上讲,这些是多年蛋白质数据中氨基酸残基的pKa值——核心是相同尺度的十进制数。有很多位置(~600行),有很多年(~12列)

我的问题是:MDS的正确输入是数据矩阵(年与职位),还是我可以输入相关矩阵(年与年)?我这样问是因为API文档与书面描述冲突

API文档表示数据矩阵:(即n_样本,n_特征)


书面描述为“输入相似性矩阵”:

如果您将
相异性='euclidean'
传递给初始估计器(或默认情况下),它将获取一个数据矩阵并为您计算欧几里德距离矩阵


如果您传递
相异性='precomputed'
,它将采用相异性矩阵


不过,文件在这方面确实不是非常清楚;我确信,在
X
参数的描述中添加一个简短的注释,并澄清
'euclidean'
是默认值(我必须检查源代码)的请求将被接受。

非常感谢,@Dougal!我还需要再等6分钟。接受您的回答。:-)根据数据矩阵(例如,7行3列)计算的欧几里德距离矩阵中的条目
(i,j)
应该是什么?@Sigur如果您有一个形状
(7,3)
的数据矩阵,这意味着在scikit中,您可以了解到您有7个输入点,具有三维特征。如果使用的是
dissimility='precomputed'
dissimility[i,j]
应该是
i
th和
j
th输入点之间的差异,例如
np.linalg.norm(X[i]-X[j])
。请注意,这将为您计算欧几里德距离。因此,数据被读取为每行的点,并且维度来自列数!所以,如果我转置,情况就完全不同了。非常感谢。@Sigur是的,这是scikit学习中的标准:参见中的“数据数组的形状”。