在我制作了一个MDS对象mds并将它与mds.fit(X)相匹配之后,我想我将能够使用mds.transform(X_new)来投射新的点。我认为这是其他多个类中的API。但只有fit_transform。我从描述中猜测,fit_transform做了一些更合适的事情,我不想改变已经计算出来的投影!
编辑:等等,也许这没有道理。我多读了些书。如果我现在明白了,MDS算法是一个迭代算法,它“只是移动点”,直到应力值降低--而且实际上不允许投影。
不过,我还是有点不明白fit_transform是做什么的。这些文档说“适合X中的数据,并返回嵌入的坐标”。这和仅仅适合和服用mds.embedding_有什么区别?
发布于 2014-02-24 10:33:16
对于一个科学学习转换器,estimator.fit_transform(X)是从总是等价的到estimator.fit(X).transform(X),但通常实现效率更高。在这种情况下,它确实与estimator.fit(X).embedding_相同;它的存在是因为像Pipeline这样的学习类可能会调用它。
似乎在任何一个学习者身上都没有transform方法,可能是错误的;我刚刚打开了一个关于这个的问题。
发布于 2019-12-25 20:45:34
sklearn、SpectralEnbedding和TSNE不能用于分类的特征约简。它们没有独立的transform()方法,比如KernelPCA或LocallyLinearEmbedding。如果没有transform()方法,就无法对新数据进行转换和评分。
MDS和TSNE仅用于特征集分析。典型的例子是可视化,但是它们在特征分析中的应用不仅仅是可视化。
线性可分特征集采用主成分分析( PCA ),非线性可分特征集采用非线性变压器( LLE )。
https://stackoverflow.com/questions/21962204
复制相似问题