在我mds
一个MDS对象,并用mds.fit(X)
拟合它之后,我想我可以使用mds.transform(X_new)
投影新的点。我认为这是其他流形类中的 API。但只有fit_transform
.我想从描述中fit_transform
做一些更合适,我不想改变已经计算好的投影!
编辑:等等,也许这没有意义。我又读了一些书。如果我现在理解正确,MDS算法是一个迭代算法,它"只是移动点",直到应力值变低 - 并且实际上不允许投影。
但是,我仍然对fit_transform
做什么有点困惑。文档说"拟合来自 X 的数据,并返回嵌入的坐标"。这与仅仅试穿和服用mds.embedding_
有何不同?
对于scikit-learn转换器,estimator.fit_transform(X)
总是等同于estimator.fit(X).transform(X)
,但通常实现效率更高。在这种情况下,它确实与estimator.fit(X).embedding_
相同;它之所以存在,是因为像Pipeline
这样的scikit-learn课程可能会称之为它。
似乎在任何流形学习器上都没有transform
方法,也许是错误的;我刚刚打开了一个关于这个的问题。
sklearn MDS,SpectralEnbedding和TSNE不能用于分类的特征缩减。它们没有像 KernelPCA 或 LocalLinearEmbedding 那样独立的 transform() 方法。如果没有 transform() 方法,就无法转换和评分新数据。
MDS 和 TSNE 仅用于特征集分析。典型的示例是可视化,但它们在特征分析中的用途不仅仅是可视化。
将 PCA 用于线性可分特征集,将非线性转换器(如 LLE)用于非线性可分特征集。