9

データを sklearn l2 ノーマライザーで正規化し、それをトレーニング データとして使用したら、予測された出力を「生の」形状に戻すにはどうすればよいですか?

私の例では、正規化された住宅価格を y として使用し、正規化された居住空間を x として使用しました。それぞれが独自の X_ および Y_Normalizer に適合していました。

したがって、y_predict は正規化された形状でもあります。元の生の通貨状態に変換するにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

5

マトリックスラインを正規化する について話している場合sklearn.preprocessing.Normalizer、残念ながら、それらを手動でどこかに保存しない限り、元の基準に戻る方法はありません。

sklearn.preprocessing.StandardScalerを正規化する を使用している場合は、そのスケーラーの属性に戻る必要がある値を取得できます (がおよびに設定されている場合) 。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 に答える