在我制作MDS对象mds
并使其与mds.fit(X)
匹配后,我想我可以使用mds.transform(X_new)
投射新点。我认为这是其他多种类的API。但只有fit_transform
。我想从fit_transform
做一些更合适的描述,我不想改变已经计算过的投影!
但是,我对fit_transform
的作用感到有些困惑。文档说“从X拟合数据,并返回嵌入的坐标”。这与仅仅适合和考虑mds.embedding_
?
答案 0 :(得分:1)
对于scikit-learn变换器,estimator.fit_transform(X)
为always equivalent到estimator.fit(X).transform(X)
,但通常更有效地实施。在这种情况下,它确实与estimator.fit(X).embedding_
相同;它就在那里,因为像Pipeline
这样的scikit-learn类可能会调用它。
对于任何多方学习者来说似乎没有transform
方法,可能是错误的;我刚开了一个关于此事的issue。
答案 1 :(得分:0)
sklearn MDS,SpectralEnbedding和TSNE不能用于分类的特征约简。它们没有像KernelPCA或LocallyLinearEmbedding这样的独立transform()方法。没有transform()方法,就无法转换和评分新数据。
MDS和TSNE仅用于特征集分析。典型示例用于可视化,但它们在特征分析中的用途不只是可视化。
将PCA用于线性可分离特征集,将非线性转换器(如LLE)用于非线性可分离特征集。