はい。アルゴリズムが正規化されたトレーニングデータで機能するか、必要な場合は、テストデータに正規化を適用する必要があります*。
これは、モデルがその入力ベクトルで指定された表現で機能するためです。これらの数値のスケールは、表現の一部です。これは、フィートとメートルの間の変換に少し似ています。。。モデルまたは式は、通常1種類のユニットでのみ機能します。
正規化が必要なだけでなく、トレーニングデータとまったく同じスケーリングを適用する必要があります。つまり、トレーニングデータで使用されるスケールとオフセットを保存し、それを再度使用することを意味します。一般的な初心者の間違いは、電車とテストデータを個別に正規化することです。
PythonおよびSKLearnでは、次のようにStandard Scalerを使用してinput / X値を正規化できます。
scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )
train_X
適合する関数を使用する変換(パラメーターを計算する)が正規化される方法に注意してください。test_X
変換は、電車のデータから学習したのと同じパラメーターを使用して変換するだけです。
適用するtf-idf正規化は、データセット全体(一部のドキュメント内の単語の頻度)から一部のパラメーターを学習し、各ドキュメントで見つかった比率を使用するため、同様に機能します。
*一部のアルゴリズム(決定木に基づくアルゴリズムなど)は、正規化された入力を必要とせず、異なる固有のスケールを持つ機能に対処できます。