簡體   English   中英

在運行算法之前 fit_transform 數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM