2017-10-16 5 views
0

私はMLPRegressorを使用しています。これは、連続する5つのフィーチャと、40個の値のセットから値を取得する1つのフィーチャを持っています[0,1,2,.., 39]MinMaxScaler sklearn:クラスラベルも正規化する必要がありますか?

sklearn.preprocessing.MinMaxScaler(feature_range = (0,1))を使用して機能を正規化すると、MLPとLSTMの両方でパフォーマンスが向上すると言われました。

したがって、私は上記の機能を含むXtrainのマトリックスに使用しています。

しかし、カテゴリ変数を最小化する必要があることは私には奇妙に見えます。私はそれを行うべきですか?ドキュメントには、(http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html)MInMaxScalerは各機能を別々に正規化しています。カテゴリの欄を取り除き、他のすべてを正規化する必要がありますか?

また、各機能を別々に正規化すると、inverse_transformを使用したときにそれらを元に戻す方法をどのように知っていますか? MinMaxスケーラが本当にエンコードされた機能を変更しないであろうと後

+2

カテゴリの場合は、[ワンホットエンコーディング](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html#sklearn.preprocessing.OneHotEncoder)を使用してください。 – sascha

+0

カテゴリに分類される機能は、1日30時間ごとです(したがって、私は実際には '48'クラスを持っています)、それらの間に相関関係があります。また、それらの間に順序があります。これはワンホットエンコーディングでは捕捉されません –

+1

あなたが最初に質問したように、@サシャは答えを与えました。そして、 'inverse_transform()'について、MinMaxScalerはmin、max、およびscalingのための "feature(column)"の値を保持します。これは元の値を戻すために使用されます。 –

答えて

0

カテゴリ変数、すなわちone-hot encoding

と、それに応じて取り扱わなければなりません。

あなたの最後の質問に答える - スケーラは各入力featherure separatleyに対して最小値と最大値を保存するだけで、逆変換を行うことができます。また、フィーチャを独立してスケールすることは理にかなっています。

0

これらのタイプの変数空間には、自然なMetric感がないので、カテゴリ化変数のスケーリングは不要です。

2番目の答え - MinMaxScalerオブジェクトは、データに適合した後にscale_, data_range_, data_min_ data_max_を保持します(標準化された変数の長さの配列)。

この属性によって、各機能ごとに逆変換が可能です。

関連する問題