더북(TheBook)

샘플별로 특성의 제곱을 더하기 위해 sum() 함수에서 axis=1을 사용합니다. 이 값의 제곱근을 구하면 L 2 노름입니다. 그다음 각 샘플의 특성을 해당 L 2 노름으로 나눕니다.

>>> l2_norm = np.sqrt(np.sum(ex_2f ** 2, axis=1)) 
>>> print(ex_2f) 
[ 7.41619849 31.28897569] 
>>> ex_2f / l2_norm.reshape(-1, 1)
array([[0.13483997, 0.26967994, 0.40451992, 0.53935989, 0.67419986], 
       [0.03196014, 0.12784055, 0.28764125, 0.51136222, 0.79900347]])

Normalizer 클래스에 norm='l1'으로 지정하면 절댓값인 L1 노름을 사용합니다. L1 노름의 공식은 다음과 같습니다.

Normalizer(norm='l1')은 다음과 같이 절댓값인 L1 노름을 사용하여 각 샘플을 나눕니다.

>>> l1_norm = np.sum(np.abs(ex_2f), axis=1) 
>>> print(l1_norm) 
[15 55] 
>>> ex_2f / l1_norm.reshape(-1, 1)
array([[0.06666667, 0.13333333, 0.2       , 0.26666667, 0.33333333], 
       [0.01818182, 0.07272727, 0.16363636, 0.29090909, 0.45454545]])

Normalizer(norm='max')는 각 샘플의 최대 절댓값을 사용하여 나눕니다.

>>> max_norm = np.max(np.abs(ex_2f), axis=1) 
>>> print(max_norm) 
[ 5 25] 
>>> ex_2f / max_norm.reshape(-1, 1) 
array([[0.2 , 0.4 , 0.6 , 0.8 , 1. ], 
       [0.04, 0.16, 0.36, 0.64, 1. ]])
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.