Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 scikit-learn 라이브러리를 사용하여 L1 정규화를 구현하는 방법을 설명하십시오.

<시간/>

값 범위를 표준화된 값 범위로 변환하는 프로세스를 정규화라고 합니다. 이 값은 -1에서 +1 또는 0에서 1 사이일 수 있습니다. 데이터는 빼기와 나누기의 도움으로 정규화될 수도 있습니다.

학습 알고리즘에 입력으로 제공되는 데이터는 일관되고 구조화되어 있어야 합니다. 값을 효과적으로 예측하려면 입력 데이터의 모든 기능이 단일 척도에 있어야 합니다. 그러나 현실 세계에서 데이터는 구조화되지 않고 대부분 동일한 규모가 아닙니다.

이것은 정규화가 그림으로 등장할 때입니다. 가장 중요한 데이터 준비 과정 중 하나입니다.

입력 데이터 세트의 열 값을 동일한 척도로 변경하는 데 도움이 됩니다.

정규화 과정에서 값의 범위가 왜곡되지 않도록 보장됩니다.

참고 − 머신 러닝 알고리즘에 제공되는 모든 입력 데이터 세트를 정규화해야 하는 것은 아닙니다. 정규화는 데이터세트의 기능이 완전히 다른 값 척도인 경우에만 필요합니다.

다양한 종류의 정규화가 있습니다 -

  • 최소-최대 정규화
  • Z 정규화
  • 단위 벡터 정규화

L1 정규화가 어떻게 작동하는지 이해합시다.

최소 절대 편차라고도 하며 모든 행에서 절대값의 합이 1로 유지되도록 데이터를 변경합니다.

Python에서 scikit Learn을 사용하여 L1 정규화를 구현하는 방법을 살펴보겠습니다.

예시

import numpy as np
from sklearn import preprocessing
input_data = np.array(
   [[34.78, 31.9, -65.5],[-16.5, 2.45, -83.5],[0.5, -87.98, 45.62],[5.9, 2.38, -55.82]]
)
data_normalized_l1 = preprocessing.normalize(input_data, norm='l1')
print("\nL1 normalized data is \n", data_normalized_l1)

출력

L1 normalized data is
[[ 0.26312604 0.24133757 -0.49553639]
[-0.16105417 0.0239141 -0.81503172]
[ 0.00372856 -0.65607755 0.34019389]
[ 0.09204368 0.03712949 -0.87082683]]

설명

  • 필요한 패키지를 가져옵니다.

  • 입력 데이터는 Numpy 라이브러리를 사용하여 생성됩니다.

  • 'preprocessing' 클래스에 있는 'normalize' 함수는 데이터를 정규화하는 데 사용됩니다.

  • 정규화 유형은 'l1'으로 지정됩니다.

  • 이렇게 하면 배열의 모든 데이터가 정규화되고 모든 행의 합은 1이 됩니다.

  • 이 정규화된 데이터는 콘솔에 표시됩니다.