Pythonは、データサイエンスや機械学習の分野で幅広く使用されるプログラミング言語です。データ分析において、データの正規化は非常に重要な前処理手法の一つであり、データセット内の特徴量を同じスケールに変換することで、機械学習モデルの精度を向上させることができます。Pythonでは、様々な方法でデータの正規化を行うことができます。この記事では、Numpyを用いたデータの正規化について解説していきます。
Numpyによる正規化の方法について勉強しよう!
Numpyによる正規化の方法
正規化(Normalization)は、データ分析において特徴量のスケールを揃えるために用いられる前処理の一つです。
正規化は、データの範囲を0から1の間にスケーリングする手法です。具体的には、以下の式で表されます。
\(x’ = \frac{x – \min(x)}{\max(x) – \min(x)}\)
ここで、\(x\) はスケールを揃えたい特徴量の値、\(x’\) はスケーリング後の値を表します。
\(x\) の最小値を \(\min(x)\) 、最大値を \(\max(x)\) としています。
この手法を使うことで、異なる特徴量間でスケールが異なる場合に、正しい重み付けができるようになります。また、異なるデータセットを比較する場合にも有用です。
Numpyによる正規化のサンプルコード
以下にPythonでのサンプルコードを示します。
import numpy as np
def numpy_normalization(x):
"""
データの正規化を行う関数
Parameters
----------
x : numpy.ndarray
正規化前のデータ
Returns
-------
numpy.ndarray
正規化後のデータ
"""
x_min = np.min(x)
x_max = np.max(x)
x_scaled = (x - x_min) / (x_max - x_min)
return x_scaled
この関数を使って、以下のようにデータの正規化を行うことができます。
# 正規化前のデータ
x = np.array([1, 2, 3, 4, 5])
# 正規化後のデータ
x_scaled = numpy_normalization(x)
print(x_scaled)
結果は次のようになります。
[0. 0.25 0.5 0.75 1. ]
また、多次元配列でも同様に正規化することができます。
# 正規化前のデータ
y=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
# 正規化後のデータ
y_scaled = numpy_normalization(y)
print(y_scaled)
結果は次のようになります。
[[0. 0.09090909 0.18181818 0.27272727]
[0.36363636 0.45454545 0.54545455 0.63636364]
[0.72727273 0.81818182 0.90909091 1. ]]
まとめ
データ分析において、データの正規化は非常に重要な前処理手法の一つであり、データセット内の特徴量を同じスケールに変換することで、機械学習モデルの精度を向上させることができます。この記事では、Numpyを用いたデータの正規化について解説しました。
Numpyによる正規化の方法について勉強したよ!