データ正規化mapminmax

#データの正規化
1.なぜ正規化する必要があるのですか?
次元式を無次元式に変更するためのデータの標準化は、データを小さな特定の間隔にスケーリングすることです。正規化は主にデータ処理の便宜のために提案されています。データを0から1の範囲にマッピングする方が便利で高速です。これは変換であり、無次元式に変換され、スカラーになります。これにより、計算の利便性が確保されるだけでなく、物理量の本質的な意味が浮き彫りになります。正規化の重要な機能は、物理量の値と寸法の違いの影響を排除し、実験データの変化の法則が考慮されるすべての物理量の統一されたスケールを確立することです。正規化は主に寸法の影響を排除することです

知乎は正規化について別の説明をし
ましたが、ここに小さな例を挙げて後で追加したほうがいいと思います。
2.サンプルまたは機能で正規化しますか?
train_data =
[1 3 7
2 4 8]
各列はサンプルを表し、各行はサンプルの特徴を表します。
まず、データは特徴ごとに正規化する、つまり行ごとに正規化する必要があると思います。

3.トレーニングサンプルとテストサンプルは、一緒に正規化する必要がありますか、それとも別々に正規化する必要がありますか?
回帰については、トレーニングサンプルの入力とテストサンプルの入力を一緒に正規化し、トレーニングサンプルの出力とテストサンプルの出力を一緒に正規化する必要があると感じています。
サンプルの1行は同じ属性に属しているため、すべての入力をまとめて正規化する必要があります。
トレーニングサンプルが最初に正規化された場合、たとえば、
rain_data =
[1 3 7
2 4 8]
次に、入力サンプルによって正規化された最大情報と最小情報、明らかにテストサンプルの9、10に従ってテストサンプルが正規化されます。 1に属さない-7の範囲内では、これは無理です。
test_data =
9 10
6 2
4.データを正規化するMatlab関数
1.基本的な使用法
[y、ps] = mapminmax(x、ymin、ymax)%ここで、ymin、ymaxが指定されていない場合、yminはデフォルトで-1、Ymaxになります。デフォルトは1で、xが0,1の範囲に正規化されている場合、[y、ps] = mapminmax(x、0,1)
mapminmax(data)デフォルトの正規化範囲は[-1,1]であり、それぞれを正規化します。行。行を正規化することを忘れないでください!
psに記録されたサンプル行列xの情報には、xの行数、xの各行の最大値と最小値、およびその他の情報が含まれます。
matlabコードを実行します:
x = [2,3,4,5,6;
7,8,9,10,11 6、5、4、5、7
];
[xx、ps] = mapminmax(x、0、 1);
実行後:
ここに画像の説明を挿入
実際には、mapminmaxはxの各行に対してy =(ymax-ymin)*(x-xmin)/(xmax-xmin)+ yminを実行
ます。yは上記の表の各行の値です。つまりxは上記のアルゴリズムの結果に従って計算されます。
psに記録されたx操作の前後の情報。xrowsはxの行数を表し、xmaxはxの各行の最大値を表し、xminはxの各行の最小値を表し、xrangeはxの各行の値の範囲を表し、yrowsはxの各行の行数を表します。上記の表で、ymaxはyの最大値を示します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/JGL121314/article/details/108740286
おすすめ