AN6U5 가 매우 좋은 대답을 했지만 향후 참조를 위해 몇 가지 사항을 추가하고 싶었습니다. OHE ( One Hot Encoding ) 및 Label Encoding을 고려할 때 빌드하려는 모델을 이해하고 이해해야합니다. 우리가 고려할 모델의 두 가지 범주는 다음과 같습니다.
- 트리 기반 모델 : 그라디언트 부스트 결정 트리 및 랜덤 포레스트.
- 비 트리 기반 모델 : 선형, kNN 또는 신경망 기반.
트리 기반 모델을 구축 할 때 OHE를 적용 할시기와 레이블 인코딩을 적용 할시기를 고려해 보겠습니다.
다음과 같은 경우에 OHE를 적용합니다.
- 라벨 인코딩에서 서로 가까운 값이 닫히지 않은 대상 값 (비선형 데이터)에 해당하는 경우
- 범주 형 피쳐가 서 수가 아닌 경우 (개, 고양이, 마우스).
다음과 같은 경우에 라벨 인코딩을 적용합니다.
- 범주 형 기능은 서수입니다 (Jr. kg, Sr. kg, 초등학교, 고등학교 등).
- 비슷한 범주에 가까운 레이블을 할당 하는 레이블 인코더를 만들 수 있습니다 .
- 데이터 세트의 범주 형 피쳐 수가 많은 경우 : 값이 큰 범주 형 피쳐를 원핫 인코딩하면 (1) 높은 메모리 소비와 (2) 범주 형이 아닌 피쳐가 모델에서 거의 사용되지 않는 경우가 발생할 수 있습니다. 희소 행렬을 사용하는 경우 첫 번째 경우를 처리 할 수 있습니다. 두 번째 경우는 기능의 하위 집합 만 사용하여 트리를 작성하는 경우 발생할 수 있습니다. 예를 들어, 9 개의 숫자 기능과 100 개의 고유 한 값을 가진 1 개의 범주 형이 있고 해당 범주 형 기능을 1- 핫 인코딩 한 경우 109 개의 기능이 제공됩니다. 기능의 하위 집합만으로 트리를 구축 한 경우 초기 9 개의 숫자 기능은 거의 사용되지 않습니다. 이 경우이 서브 세트의 크기를 제어하는 매개 변수를 늘릴 수 있습니다. xgboost에서는 sklearn의 Random Forest max_features에서 colsample_bytree라고합니다.
@ AN6U5가 제안한대로 OHE를 계속하려면 PCA를 OHE와 결합 할 수 있습니다.
비 트리 기반 모델을 구축하는 동안 OHE 및 라벨 인코딩을 적용 할시기를 고려할 수 있습니다.
라벨 인코딩을 적용하려면 라벨 인코딩을 효과적으로 활용하기 위해 기능과 대상 간의 종속성이 선형이어야합니다.
마찬가지로, 의존성이 비선형 인 경우 OHE를 사용하는 것이 좋습니다.
참고 : 일부 설명은 Coursera 의 데이터 과학 경쟁 에서 이기는 방법 에서 참조되었습니다 .