Scikit-learn: 다중 열 레이블 코딩 사용
기계 학습에서 레이블 인코딩은 범주형 변수 의 값을 정수 값으로 변환하는 프로세스입니다.
예를 들어 다음 스크린샷에서는 Team 이라는 범주형 변수의 각 고유 값을 알파벳 순서에 따라 정수 값으로 변환하는 방법을 보여줍니다.
다음 구문을 사용하여 Python에서 다중 열 레이블 인코딩을 수행할 수 있습니다.
from sklearn. preprocessing import LabelEncoder #perform label encoding on col1, col2 columns df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Python의 레이블 인코딩
다양한 농구 선수에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
' points ': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
print (df)
team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12
다음 코드를 사용하여 레이블 인코딩을 수행하여 team , position 및 all_star 열의 각 범주 값을 정수 값으로 변환할 수 있습니다.
from sklearn. preprocessing import LabelEncoder #perform label encoding across team, position, and all_star columns df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform ) #view udpated DataFrame print (df) team position all_star points 0 0 1 1 11 1 0 0 0 8 2 1 1 1 10 3 1 0 1 6 4 1 0 1 6 5 2 1 0 5 6 2 1 1 9 7 3 0 0 12
그 결과, team , position , all_star 컬럼의 각 값이 정수값으로 변환된 것을 확인할 수 있습니다.
예를 들어 팀 열에서 다음을 볼 수 있습니다.
- 각 “A” 값은 0 으로 변환되었습니다.
- 각 “B” 값은 1 로 변환되었습니다.
- 각 “C” 값은 2 로 변환되었습니다.
- 각 “D” 값은 3 으로 변환되었습니다.
이 예에서는 DataFrame의 세 열에 대해 레이블 인코딩을 수행했지만 유사한 구문을 사용하여 원하는 만큼 많은 범주형 열에 대해 레이블 인코딩을 수행할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas에서 범주형 변수를 숫자로 변환하는 방법
Pandas에서 부울 값을 정수 값으로 변환하는 방법
Pandas에서 Factorize()를 사용하여 문자열을 숫자로 인코딩하는 방법