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 중국어 웹사이트의 기타 관련 기사를 참조하세요!