You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scikit Learn PCA中fit_transform的作用、与fit的差异及transform步骤解析

Scikit-Learn中PCA的fit、transform与fit_transform区别

核心区别与作用

  • fit(X):仅完成PCA的统计建模,不对数据做变换。它会分析输入数据X,计算出后续变换所需的关键统计量:包括数据的全局均值(用于中心化)、协方差矩阵,进而推导得到主成分特征向量(沿方差最大方向的正交轴)和对应特征值(各主成分的方差占比)。这些结果会被存储在PCA模型实例中,供后续的transform步骤使用。

  • transform(X):执行实际的PCA数据变换,依赖之前fit得到的统计量。具体操作分为两步:

    1. 将输入数据X减去fit阶段算出的均值,完成中心化;
    2. 将中心化后的数据投影到fit得到的主成分特征向量构成的新空间中。
      最终输出的是数据在新主成分轴上的坐标,也就是降维后的特征矩阵。
  • fit_transform(X):是fit(X) + transform(X)的合并操作,一次性完成模型统计量计算和对输入数据X的变换,返回变换后的结果。这是处理训练集时最常用的方式,避免重复调用两个方法。

代码示例

from sklearn.decomposition import PCA
import numpy as np

# 生成5维的随机示例数据
X = np.random.rand(100, 5)

# 初始化PCA,指定保留3个主成分
pca = PCA(n_components=3)

# 仅拟合统计量,无数据输出
pca.fit(X)

# 用已拟合的模型变换数据
X_transformed = pca.transform(X)

# 一步完成拟合+变换
X_fit_transformed = pca.fit_transform(X)

# 验证两种变换结果一致
print(np.allclose(X_transformed, X_fit_transformed))  # 输出: True

内容的提问来源于stack exchange,提问作者user2138149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:03:19