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()를 사용하여 문자열을 숫자로 인코딩하는 방법