Python에서 라벨 인코딩을 수행하는 방법(예제 포함)


종종 기계 학습에서는 범주형 변수를 알고리즘에서 쉽게 사용할 수 있는 숫자 형식으로 변환하려고 합니다.

이를 수행하는 한 가지 방법은 각 범주형 값에 알파벳 순서에 따라 정수 값을 할당하는 레이블 인코딩을 사용하는 것입니다 .

예를 들어 다음 스크린샷에서는 Team 이라는 범주형 변수의 각 고유 값을 알파벳 순서에 따라 정수 값으로 변환하는 방법을 보여줍니다.

다음 구문을 사용하여 Python에서 레이블 인코딩을 수행할 수 있습니다.

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' my_column '] = lab. fit_transform (df[' my_column '])

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Python의 레이블 인코딩

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print (df)

  team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29

다음 코드를 사용하여 레이블 인코딩을 수행하여 열의 각 범주 값을 정수 값으로 변환할 수 있습니다.

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' team '] = lab. fit_transform (df[' team '])

#view updated DataFrame
print (df)

   team points
0 0 25
1 0 12
2 1 15
3 1 14
4 1 19
5 1 23
6 2 25
7 2 29

결과에서 우리는 다음을 볼 수 있습니다:

  • 각 “A” 값은 0 으로 변환되었습니다.
  • 각 “B” 값은 1 로 변환되었습니다.
  • 각 “C” 값은 2 로 변환되었습니다.

inverse_transform() 함수를 사용하여 열의 원래 값을 가져올 수도 있습니다.

 #display original team labels
lab. inverse_transform (df[' team '])

array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 범주형 변수를 숫자로 변환하는 방법
Pandas에서 부울 값을 정수 값으로 변환하는 방법
Pandas에서 Factorize()를 사용하여 문자열을 숫자로 인코딩하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다