HOWTO · NumPy

Python에서 벡터 정규화

이 자습서는 Python에서 벡터를 정규화하는 방법을 보여줍니다.

머신 러닝 세계에서 널리 사용되는 개념은 알고리즘에 전달하기 전에 벡터 또는 데이터 세트를 정규화하는 것입니다.

벡터 정규화에 대해 이야기 할 때 벡터 크기는 단위 벡터로 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이면 오류를 반환합니다.

numpy.linalg.norm()함수를 사용하여 Python에서 벡터 정규화

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]

sklearn.preprocessing.normalize()함수를 사용하여 Python에서 벡터 정규화

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에서 다차원 배열을 평면화하는 데 사용됩니다.