다양한 범주형 인코더 비교

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 와인 리뷰 데이터셋에서 다양한 범주형 인코더의 성능을 비교합니다. 예측 대상 변수로 'points' 열을 사용합니다. 다음 인코더를 비교합니다: TargetEncoder, OneHotEncoder, OrdinalEncoder, 그리고 범주 제거. 또한, HistGradientBoostingRegressor의 기본 범주형 특징 지원 방법도 살펴봅니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습용 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업 검증은 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

OpenML 데이터 로드

먼저, scikit-learn 의 datasets 모듈에서 fetch_openml 함수를 사용하여 와인 리뷰 데이터셋을 로드합니다. 데이터에서 숫자형 및 범주형 특징의 일부만 사용할 것입니다. 다음과 같은 숫자형 및 범주형 특징의 하위 집합을 사용합니다: numerical_features = ["price"]categorical_features = ["country", "province", "region_1", "region_2", "variety", "winery"].

서로 다른 인코더를 사용한 파이프라인 학습 및 평가

이 섹션에서는 서로 다른 인코딩 전략을 사용한 HistGradientBoostingRegressor 파이프라인을 평가합니다. 교차 검증을 사용하여 모델을 평가하고 결과를 기록합니다.

기본 범주형 특징 지원

이 섹션에서는 HistGradientBoostingRegressor에서 기본 범주형 특징 지원을 사용하는 파이프라인을 구축하고 평가합니다. HistGradientBoostingRegressor는 최대 255 개의 고유 범주만 지원합니다. 범주형 특징을 저카디널리티 (low cardinality) 특징과 고카디널리티 (high cardinality) 특징으로 그룹화합니다. 고카디널리티 특징은 대상 인코딩 (target encoding) 을 사용하고, 저카디널리티 특징은 그래디언트 부스팅에서 기본 범주형 특징을 사용합니다.

결과 시각화

이 섹션에서는 테스트 및 학습 점수를 플롯하여 결과를 표시합니다.

요약

이 실험에서는 와인 리뷰 데이터 세트에서 다양한 범주형 인코더의 성능을 비교했습니다. 또한 HistGradientBoostingRegressor에서 기본 범주형 특징 지원을 사용하는 방법을 살펴보았습니다. 결과적으로 범주 제거가 가장 나쁜 성능을 보였고, 대상 인코더가 가장 좋은 성능을 보였습니다. 순서형 인코딩은 특징에 임의의 순서를 부여하여 HistGradientBoostingRegressor가 이를 숫자 값으로 처리하게 합니다. 원 - 핫 인코딩 방식은 희귀 범주가 우연히 대상과 상관 관계가 있을 때 특징의 수가 폭발적으로 증가하여 파이프라인이 과적합될 가능성이 높았을 것입니다. 대상 인코더를 사용할 때 동일한 구간화가 발생하지만, 인코딩된 값이 대상 변수와의 주변적 연관성에 따라 통계적으로 순서가 지정되기 때문에 HistGradientBoostingRegressor가 사용하는 구간화가 의미가 있고 좋은 결과를 가져옵니다.