データの正規化とは、データを特定の小さな間隔にスケーリングすることです。これは、一部のデータの比較と評価でよく使用されます。典型的な正規化方法だけでなく、極値法と標準偏差法があります。
正規化方法には主に2つの形式があります。1つは数値を(0、1)の間の小数に変更する方法、もう1つは次元式を無次元式に変更する方法です。これは、デジタル信号処理の計算を簡素化する効果的な方法です。
正規化の利点:1勾配降下のソリューション速度を高速化する
、つまり、モデルの収束速度を上げる
左の写真のx1 [0-2000]とx2 [1-5]のように、2つの特徴間隔の差が非常に大きい場合、形成される輪郭は楕円形であり、「ジグザグ」ルート(垂直)に従う可能性が非常に高くなります。長軸)、収束するために多くの反復が発生します。
右の図は2つの特徴を正規化し、対応する輪郭線が丸みを帯びているため、勾配降下が解決されると収束が速くなります。
したがって、機械学習で勾配降下法を使用して最適な解を見つける場合は、正規化も必要です。そうしないと、モデルの収束が困難になるか、場合によっては失敗することさえあります。
2モデルの精度を向上させることが可能です
一部の分類器では、サンプル間の距離を計算する必要があります。フィーチャの値の範囲が非常に大きい場合、距離の計算は主にこのフィーチャに依存し、実際の状況から逸脱する場合があります。
正規化/正規化処理のタイプと意味:
線形正規化(最小-最大正規化)
この種の正規化は、値が比較的集中している状況に適しています。欠点は、maxとminが不安定な場合、正規化の結果が不安定になり、その後の効果が不安定になる可能性があることです。実際の使用では、経験的な定数を使用してmaxとminを置き換えることができます。 。
# 使用scikit-learn函数
min_max_scaler = preprocessing.MinMaxScaler()
feature_scaled = min_max_scaler.fit_transform(feature)
# 使用numpy自定义函数
def min_max_norm(x):
x = np.array(x)
x_norm = (x-np.min(x))/(np.max(x)-np.min(x))
return x_norm
標準偏差標準化(zスコア標準化)
処理されたデータは、平均が0、標準偏差が1の標準正規分布に準拠しています。
# 使用scikit-learn函数
standar_scaler = preprocessing.StandardScaler()
feature_scaled = standar_scaler.fit_transform(feature)
# 使用numpy自定义函数
def min_max_norm(x):
x = np.array(x)
x_norm = (x-np.mean(x))/np.std(x)
return x_norm
非線形正規化
これは、データの差別化が大きいシナリオでよく使用されます。その中には、値が大きいものと小さいものがあります。いくつかの数学関数を介して、元の値がマップされます。メソッドには、ログ、指数、アークタンジェントなどが含まれます。非線形関数の曲線は、データ分布に従って決定する必要があります。
ログ関数:x = lg(x)/ lg(max);アークタンジェント関数:x = atan(x)* 2 / pi
転載元:https://blog.csdn.net/index20001/article/details/78044971