9

一旦我使用 sklearn l2 归一化器对数据进行归一化并将其用作训练数据:如何将预测输出转回“原始”形状?

在我的示例中,我使用标准化的房价作为 y,使用标准化的居住空间作为 x。每个用于适合自己的 X_ 和 Y_Normalizer。

因此,y_predict 也处于标准化形状,我如何变成原始原始货币状态?

谢谢你。

4

2 回答 2

5

如果您正在谈论sklearn.preprocessing.Normalizer标准化矩阵线的 ,不幸的是,除非您将它们手动存储在某处,否则无法恢复原始规范。

如果您正在使用对sklearn.preprocessing.StandardScaler进行规范化,那么您可以获得返回该缩放器属性所需的值(如果设置为and )mean_with_meanTruestd_

如果您在管道中使用规范器,则无需担心这一点,因为您不会就地修改数据:

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

# classifier example
from sklearn.svm import SVC

pipeline = make_pipeline(Normalizer(), SVC())
于 2016-04-13T11:06:26.610 回答
2

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

对于 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”将它们“返回”为原始甲酸盐很简单。

于 2016-04-14T10:28:39.780 回答