一旦我使用 sklearn l2 归一化器对数据进行归一化并将其用作训练数据:如何将预测输出转回“原始”形状?
在我的示例中,我使用标准化的房价作为 y,使用标准化的居住空间作为 x。每个用于适合自己的 X_ 和 Y_Normalizer。
因此,y_predict 也处于标准化形状,我如何变成原始原始货币状态?
谢谢你。
一旦我使用 sklearn l2 归一化器对数据进行归一化并将其用作训练数据:如何将预测输出转回“原始”形状?
在我的示例中,我使用标准化的房价作为 y,使用标准化的居住空间作为 x。每个用于适合自己的 X_ 和 Y_Normalizer。
因此,y_predict 也处于标准化形状,我如何变成原始原始货币状态?
谢谢你。
如果您正在谈论sklearn.preprocessing.Normalizer
标准化矩阵线的 ,不幸的是,除非您将它们手动存储在某处,否则无法恢复原始规范。
如果您正在使用对列sklearn.preprocessing.StandardScaler
进行规范化,那么您可以获得返回该缩放器属性所需的值(如果设置为and )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”将它们“返回”为原始甲酸盐很简单。