Scikit-Learn의 여러 열에 걸쳐 레이블 인코딩을 수행하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-11 02:53:02
원래의
1001명이 탐색했습니다.

How to Perform Label Encoding Across Multiple Columns in Scikit-Learn?

Scikit-Learn의 여러 열에 걸친 라벨 인코딩

범주형 데이터의 여러 열이 포함된 데이터세트를 처리할 때 다음을 인코딩해야 합니다. 기계 학습 알고리즘에 사용하기 위해 숫자로 레이블을 지정합니다. Scikit-learn은 이러한 목적으로 LabelEncoder 클래스를 제공합니다. 하지만 열 수가 많은(예: 50개) DataFrame에 이를 직접 적용하면 잘못된 입력 형태로 인해 오류가 발생할 수 있습니다.

이 문제를 극복하기 위해 모든 열에 대해 동시에 레이블 인코딩을 수행하는 우아한 방법이 있습니다. is:

df.apply(LabelEncoder().fit_transform)
로그인 후 복사

대안으로, 특히 scikit-learn 버전 0.20 이상의 경우 OneHotEncoder 사용을 고려하세요.

OneHotEncoder().fit_transform(df)
로그인 후 복사

OneHotEncoder는 기본적으로 문자열 입력을 지원하고 원-핫 인코딩된 벡터를 생성합니다. .

또는 다른 열에 대해 LabelEncoder 인스턴스를 제어해야 하거나 열의 하위 집합만 인코딩해야 하는 경우 ColumnTransformer를 사용할 수 있습니다.

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder

transformer = ColumnTransformer(
    transformers=[('labels', LabelEncoder(), ['column1', 'column2'])],
)

transformed_data = transformer.fit_transform(df)
로그인 후 복사

ColumnTransformer를 사용하면 다음을 수행할 수 있습니다. 인코딩할 열을 지정하고 별도의 LabelEncoder 인스턴스를 유지하여 데이터 준비의 유연성을 높일 수 있습니다.

위 내용은 Scikit-Learn의 여러 열에 걸쳐 레이블 인코딩을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿