Python でベクトルを正規化する
- Python で数式を使用してベクトルを正規化する
-
Python で
numpy.linalg.norm()
関数を使用してベクトルを正規化する -
Python で
sklearn.preprocessing.normalize()
関数を使用してベクトルを正規化する
機械学習の世界で一般的な概念は、ベクトルまたはデータセットをアルゴリズムに渡す前に正規化することです。
ベクトルの正規化について話すとき、そのベクトルの大きさは単位ベクトルとして 1 であると言います。
このチュートリアルでは、numpy 配列を単位ベクトルに変換します。
Python で数式を使用してベクトルを正規化する
この方法では、数式を使用して配列のベクトルノルムを計算します。このノルムベクトルで配列を除算すると、正規化されたベクトルが得られます。次のコードはこれを実装しています。
import numpy as np
v = np.random.rand(10)
normalized_v = v / np.sqrt(np.sum(v ** 2))
print(normalized_v)
出力:
[0.10366807 0.05821296 0.11852538 0.42957961 0.27653372 0.36389277
0.47575824 0.32059888 0.2721495 0.41856126]
ベクトルの長さが 0 の場合、このメソッドはエラーを返すことに注意してください。
Python で numpy.linalg.norm()
関数を使用してベクトルを正規化する
Python の NumPy
モジュールには、配列のベクトルノルムを返すことができる norm()
関数があります。次に、このノルムベクトルで配列を除算して、正規化されたベクトルを取得します。たとえば、以下のコードでは、ランダム配列を作成し、このメソッドを使用してその正規化された形式を見つけます。
import numpy as np
v = np.random.rand(10)
normalized_v = v / np.linalg.norm(v)
print(normalized_v)
出力:
[0.10881785 0.32038649 0.51652046 0.05670539 0.12873248 0.52460815
0.32929967 0.32699446 0.0753471 0.32043046]
Python で sklearn.preprocessing.normalize()
関数を使用してベクトルを正規化する
sklearn
モジュールには、データ前処理やその他の機械学習ツールに利用できる効率的な方法があります。このライブラリの normalize()
関数は通常、2 次元行列で使用され、L1 および L2 正規化のオプションを提供します。以下のコードは、この関数を 1 次元配列で使用し、正規化された形式を見つけます。
import numpy as np
from sklearn.preprocessing import normalize
v = np.random.rand(10)
normalized_v = normalize(v[:, np.newaxis], axis=0).ravel()
print(normalized_v)
出力:
[0.19361438 0.36752554 0.26904722 0.10672546 0.32089067 0.48359538
0.01824837 0.47591181 0.26439268 0.33180998]
上記のメソッドで使用されている ravel()
メソッドは、Python で多次元配列をフラット化するために使用されます。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn