[英]Undo L2 Normalization in sklearn python
一旦我使用sklearn l2規范化器對我的數據進行標准化並將其用作訓練數據:如何將預測輸出恢復為“原始”形狀?
在我的例子中,我使用標准化住房價格作為y,並將生活空間標准化為x。 每個用於適合自己的X_和Y_Normalizer。
因此y_predict也處於規范化形狀,如何進入原始原始貨幣狀態?
謝謝。
如果你正在談論規范化矩陣線的sklearn.preprocessing.Normalizer
,遺憾的是除非你在某處手工存儲它們,否則無法回到原始規范。
如果您正在使用sklearn.preprocessing.StandardScaler
,進行規范化列 ,那么你就可以得到你需要回去在定標器的屬性值( mean_
如果with_mean
設置為True
和std_
)
如果您在管道中使用規范化器,則無需擔心這一點,因為您不會在適當的位置修改數據:
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.