sklearn 的 transform() 和 predict() 方法有什么区别?

数据挖掘 机器学习 Python scikit-学习
2022-03-11 10:08:52

到目前为止,我所理解的是,transform() 为您提供与 X(您的特征)质量相似的值,而 predict() 为您提供与 y(您的标签)质量相似的值。但是我想要弄清楚的是为什么只有少数类同时具有这两种方法,例如 KMeans、PLSRegression 等。

为什么将这两种方法都放在每个类中,或者永远不要让这两个方法一起出现在同一个类中没有意义?例如,如果 KMeans 需要有一个返回欧几里德点的方法,为什么不让它有一个单独的方法呢?在我看来,实现 transform() 来实现这个功能,消除了这两种方法之间的明显区别。同样,在 PLSRegression 中,我一直无法理解这两种方法之间的区别。

1个回答

偏最小二乘回归是一种监督学习技术,也可以进行降维。PLSRegression需要transformpredict接口来正确实现偏最小二乘回归的行为。transform方法是降维的接口。predict方法是用于从经过训练的回归模型生成目标的接口。

并非 scikit-learn 中的所有 Estimator 都同时进行特征操作和预测(通常是目标),因此并非所有类都会同时具有变换和预测接口。