[英]fit_transform with the training data and transform with the testing
[英]fit_transform data before running algorithm
預處理模塊還提供了一個實用程序類 StandardScaler,它實現了 Transformer API 來計算訓練集的均值和標准差,以便以后能夠在測試集上重新應用相同的轉換。 http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler.fit_transform
在轉換運行算法的數據集時,如何將結果鏈接回原始數據集?
例如
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
print(data);
-->[[0, 0], [0, 0], [1, 1], [1, 1]]
myData = StandardScaler().fit_transform(data)
print(myData);
-->[[-1. -1.]
[-1. -1.]
[ 1. 1.]
[ 1. 1.]]
在 myData(無監督)上運行算法時,如果該數據集在運行前發生更改,您如何解釋該數據集的結果? 例如,當您在 myData 上運行聚類算法時,您並未對原始數據進行聚類。
應用inverse_transform
返回原始數據:
from sklearn.preprocessing import StandardScaler
import numpy as np
data = [[0, 0], [0, 1], [1, 0], [1, 1]]
scaler = StandardScaler()
myData = scaler.fit_transform(data)
restored = scaler.inverse_transform(myData)
assert np.allclose(restored, data) # check we got the original data back
請注意StandardScaler
的實例如何存儲在變量中以供以后使用。 擬合后,此實例包含重復或撤消轉換所需的所有信息。
現在,如果您對myData
執行聚類,則可以將聚類原型(中心,或從聚類算法中獲得的任何內容)傳遞給scaler.inverse_transform
以獲取原始數據空間中的聚類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.