Scikit-Learn을 사용하여 여러 DataFrame 열을 효율적으로 인코딩하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-25 10:23:11
원래의
253명이 탐색했습니다.

How to Efficiently Encode Multiple DataFrame Columns with Scikit-Learn?

Scikit-Learn을 사용하여 여러 DataFrame 열을 인코딩하는 라벨

Pandas DataFrame에서 문자열 라벨로 작업할 때 이를 다음으로 인코딩해야 하는 경우가 많습니다. 기계 학습 알고리즘과의 호환성을 위한 정수입니다. Scikit-learn의 LabelEncoder는 이 작업에 편리한 도구이지만 각 열에 여러 LabelEncoder 개체를 사용하는 것은 지루할 수 있습니다.

이를 우회하려면 다음 접근 방식을 활용할 수 있습니다.

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

이는 DataFrame의 각 열에 LabelEncoder를 적용하여 모든 문자열 레이블을 효과적으로 인코딩합니다.

OneHotEncoder를 사용한 향상된 인코딩

Scikit-Learn의 최신 버전(0.20 이상)에서는 레이블 인코딩 문자열 입력에 OneHotEncoder() 클래스가 권장됩니다. :

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

OneHotEncoder는 효율적인 원-핫을 제공합니다. 범주형 데이터에 종종 필요한 인코딩입니다.

역 변환 및 변환 작업

인코딩된 레이블을 역 변환하거나 변환하려면 다음 기술을 사용할 수 있습니다.

  1. 다음 사전을 유지 관리하세요. LabelEncoders:
from collections import defaultdict
d = defaultdict(LabelEncoder)

# Encoding
fit = df.apply(lambda x: d[x.name].fit_transform(x))

# Inverse transform
fit.apply(lambda x: d[x.name].inverse_transform(x))

# Transform future data
df.apply(lambda x: d[x.name].transform(x))
로그인 후 복사
  1. 특정 열에 ColumnTransformer 사용:
from sklearn.preprocessing import ColumnTransformer, OneHotEncoder

# Select specific columns for encoding
encoder = OneHotEncoder()
transformer = ColumnTransformer(transformers=[('ohe', encoder, ['col1', 'col2', 'col3'])])

# Transform the DataFrame
encoded_df = transformer.fit_transform(df)
로그인 후 복사
  1. Neuraxle의 FlattenForEach 단계 사용:
from neuraxle.preprocessing import FlattenForEach

# Flatten all columns and apply LabelEncoder
encoded_df = FlattenForEach(LabelEncoder(), then_unflatten=True).fit_transform(df)
로그인 후 복사

특정 사항에 따라 다름 요구 사항에 따라 Scikit-Learn에서 여러 열의 레이블 인코딩에 가장 적합한 방법을 선택할 수 있습니다.

위 내용은 Scikit-Learn을 사용하여 여러 DataFrame 열을 효율적으로 인코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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