機械学習における標準化/正規化

データの正規化とは、データを特定の小さな間隔にスケーリングすることです。これは、一部のデータの比較と評価でよく使用されます。典型的な正規化方法だけでなく、極値法と標準偏差法があります。

正規化方法には主に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

おすすめ

転載: blog.csdn.net/xiezhen_zheng/article/details/84560144