データを sklearn l2 ノーマライザーで正規化し、それをトレーニング データとして使用したら、予測された出力を「生の」形状に戻すにはどうすればよいですか?
私の例では、正規化された住宅価格を y として使用し、正規化された居住空間を x として使用しました。それぞれが独自の X_ および Y_Normalizer に適合していました。
したがって、y_predict は正規化された形状でもあります。元の生の通貨状態に変換するにはどうすればよいですか?
ありがとうございました。
データを 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」を掛けることで簡単です。