scikit-learn的MDS正确输入是什么?
我希望这里是发帖的正确地方,如果不是,我可以换到Stack Overflow。
无论如何,我正在使用MDS(多维尺度分析)来帮助我找到一个数据集的二维表示。简单来说,这些数据是关于氨基酸残基的pKa值,这些值是多年蛋白质数据的结果——本质上是同一范围内的小数。数据中有很多位置(大约600行),还有很多年份(大约12列)。
我的问题是:输入MDS的正确数据是数据矩阵(年份对位置),还是可以用相关矩阵(年份对年份)?我之所以问这个,是因为API文档和书面描述之间有冲突。
API文档说要用数据矩阵:http://scikit-learn.org/stable/modules/generated/sklearn.manifold.MDS.html#sklearn.manifold.MDS(也就是说,样本数,特征数)。
而书面描述则说“输入相似性矩阵”:http://scikit-learn.org/stable/modules/manifold.html
1 个回答
10
如果你在最开始的估算器中传入 dissimilarity='euclidean'
(或者默认就是这样),它会接收一个数据矩阵,然后为你计算出欧几里得距离矩阵。
如果你传入 dissimilarity='precomputed'
,那么它会直接使用一个不相似度矩阵。
不过,文档上对此确实不是很清楚;我相信如果有人提交一个请求,简单说明一下 X
参数的描述,并且澄清 'euclidean'
是默认选项(我也是查了源代码才知道的),肯定会被接受。