在 sklearn 中撤消 L2 规范化 python
Undo L2 Normalization in sklearn python
一旦我使用 sklearn l2 归一化器归一化我的数据并将其用作训练数据:
如何将预测输出转回 "raw" 形状?
在我的示例中,我使用规范化房价作为 y,规范化生活 space 作为 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])
因此,将它们 "back" 与 "w" 相乘很简单。
一旦我使用 sklearn l2 归一化器归一化我的数据并将其用作训练数据: 如何将预测输出转回 "raw" 形状?
在我的示例中,我使用规范化房价作为 y,规范化生活 space 作为 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])
因此,将它们 "back" 与 "w" 相乘很简单。