[딥러닝] Norm, 노름 이해하기
Norm : 원점과 벡터 x와의 거리
L1-Norm : 벡터x 요소들의 절대값의 합 (x=[1,-2,3] / L1-Norm = 1+(-2)+3 =2 )
import pandas as pd import numpy as np from numpy import linalg df = pd.DataFrame(np.random.randint(low=-3, high=3, size=(3,3))) df.columns=['move_1', 'move_2', 'move_3'] print(df.head()) movements = df.values # ord=1 : L1-Norm print(linalg.norm(movements, ord=1, axis=1))
L2-Norm : 각 요소에 제곱해서(절대값) 합하고 루트 씌운거 / 원점에서 가장 가까운 벡터놈 찾기
kNN, kmean 알고리즘에 사용하므로 개념을 알아야 할 필요가 있음.
import pandas as pd import numpy as np from numpy import linalg import matplotlib.pyplot as plt import seaborn as sns df = pd.DataFrame(np.random.randint(low=2, high=10, size=(3,2))) df.columns=['x', 'y'] print(df.head()) sns.lmplot('x','y',data=df, fit_reg=False, scatter_kws={"s":200}) plt.title('data point visual') plt.xlabel('X') plt.ylabel('Y') data_points = df.values print(data_points) print(linalg.norm(data_points, ord=2, axis=1)) plt.show()
데이터가 아래와 같다고 할때, L2-norm값을 구해 원점에서 가장 가까운 저 [3,3] 벡터를 찾을 수 있다.
최근 댓글