簡體   English   中英

在sklearn python中撤消L2規范化

[英]Undo L2 Normalization in sklearn python

一旦我使用sklearn l2規范化器對我的數據進行標准化並將其用作訓練數據:如何將預測輸出恢復為“原始”形狀?

在我的例子中,我使用標准化住房價格作為y,並將生活空間標准化為x。 每個用於適合自己的X_和Y_Normalizer。

因此y_predict也處於規范化形狀,如何進入原始原始貨幣狀態?

謝謝。

如果你正在談論規范化矩陣線的sklearn.preprocessing.Normalizer ,遺憾的是除非你在某處手工存儲它們,否則無法回到原始規范。

如果您正在使用sklearn.preprocessing.StandardScaler ,進行規范化 ,那么你就可以得到你需要回去在定標器的屬性值( mean_如果with_mean設置為Truestd_

如果您在管道中使用規范化器,則無需擔心這一點,因為您不會在適當的位置修改數據:

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import Normalizer

# classifier example
from sklearn.svm import SVC

pipeline = make_pipeline(Normalizer(), SVC())

非常感謝您的回答,之前我不知道管道功能

對於L2規范化的情況,你可以手動完成。 以下是小數組的一個示例:

x = np.array([5, 8 , 12, 15])

#Using Sklearn
normalizer_x = preprocessing.Normalizer(norm = "l2").fit(x)
x_norm = normalizer_x.transform(x)[0]
print x_norm

>array([ 0.23363466,  0.37381545,  0.56072318,  0.70090397])

或者用正方形的平方根的重量手動完成:

#Manually
w = np.sqrt(sum(x**2))
x_norm2 = x/w
print x_norm2

>array([ 0.23363466,  0.37381545,  0.56072318,  0.70090397])

因此,通過乘以“w”,將它們“回”到原始甲酸酯是很簡單的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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