介紹
圖片摘自stackoverflow: what-is-the-difference-between-fit-fit-transform-and-transform
例一
from sklearn.preprocessing import StandardScaler ss = StandardScaler() # 方法一,分三步:訓練模型 --> 處理訓練樣本 --> 處理測試樣本 ss.fit(X_train) # 訓練模型,以得到均值、標准差等參數 X_train = ss.transform(X_train) # 用該模型處理訓練樣本 X_test = ss.transform(X_test) # 用同一個模型處理測試樣本 # 方法一,分兩步:訓練模型 & 處理訓練樣本 --> 處理測試樣本 X_train = ss.fit_transform(X_train) # 訓練模型,然后用該模型處理訓練樣本 X_test = ss.transform(X_test) # 用同一個模型處理測試樣本
例二
import numpy as np from sklearn.manifold import TSNE X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]]) tsne = TSNE(n_components=2) # 方法一:分兩步,先訓練模型,再從模型中去取出結果 tsne.fit(X) output = tsne.embedding_ # 方法一:一步到位,直接得到結果 output = tsne.fit_transform(X)
注意,有些方法有transform()函數,如例一中的StandardScaler,有些方法沒有transform()函數,如例二中的TSNE。