sklearn fit, fit_transform, transform的區別


介紹

圖片摘自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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM