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

의견을 추가하다

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