Python에서 벡터 정규화

Manav Narula 2023년1월30일
  1. 수학 공식을 사용하여 Python에서 벡터 정규화
  2. numpy.linalg.norm()함수를 사용하여 Python에서 벡터 정규화
  3. sklearn.preprocessing.normalize()함수를 사용하여 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에서 다차원 배열을 평면화하는 데 사용됩니다.

작가: Manav Narula
Manav Narula avatar Manav Narula avatar

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

관련 문장 - NumPy Vector