0

임의의 포리스트와 관련하여 질문이 있습니다. 사용자와 아이템의 상호 작용에 대한 데이터가 있다고 가정 해보십시오. 항목 수는 약 10,000 개입니다. 임의의 포리스트에 대한 내 출력은 사용자가 (추천 시스템과 같은) 상호 작용할 가능성이있는 항목이어야합니다. 모든 사용자에게 과거에 상호 작용 한 항목을 설명하는 기능을 사용하고자합니다. 그러나 범주 형 제품 기능을 일회성 인코딩으로 매핑하는 것은 사용자가 많게는 몇백 개 이상, 때로는 5 개 미만으로 상호 작용할 때 매우 비효율적 인 것처럼 보입니다.XGBoost/CatBoost에서 범주가 많은 범주 형 변수

어떻게 하시겠습니까? 입력 특징 중 하나가 ~ 10 000 개의 가능한 값을 갖는 범주 형 변수이고 출력이 ~ 10,000 개의 가능한 값을 갖는 범주 형 변수 인 경우 임의의 포레스트를 구성하는 방법? CatBoost를 범주 형 기능과 함께 사용해야합니까? 또는 one-hot 인코딩을 사용해야합니까? 그렇다면 XGBoost 또는 CatBoost가 더 좋다고 생각합니까?

+0

이 코드는 https://datascience.stackexchange.com/에 문의하는 것이 좋습니다. 코드에 대한 것보다 이론적 인 것으로 보입니다. – josh

+0

대신에 시도해보십시오. 감사합니다. –

답변

0

도메인 전문 지식이 충분하다고 가정하면 기존 열에서 새로운 범주 형 열을 만들 수 있습니다. 예 : - 하면 열이 아래의 경우는 A, B, C가 유사한 D, E, F가 유사하고 새 열이

것 G, H는 비슷 것을 알고있는 경우

A,B,C,D,E,F,G,H 

Z,Z,Z,Y,Y,Y,X,X. 

임의의 포리스트 모델에서 이전 열을 제거하고이 새 열만 포함해야합니다. 이와 같이 귀하의 기능을 변환함으로써 귀하는 귀하의 모드에 대한 설명이 어려울 것입니다.

0

XGBoost는 카테고리 기능을 직접 지원하지 않으므로 catfeatures와 함께 사용하려면 사전 처리가 필요합니다. 예를 들어 one-hot 인코딩을 할 수 있습니다. 고양이 기능의 빈번한 값이있는 경우 일회성 인코딩이 일반적으로 잘 작동합니다.

CatBoost는 분류 기능에 대한 다양한 통계의 원 핫 인코딩 및 계산과 같은 범주 기능을 지원합니다. one-hot 인코딩을 사용하려면 one_hot_max_size 매개 변수로 활성화해야합니다. 기본적으로 통계가 계산됩니다. 통계는 대개 많은 값을 가진 범주 형 기능에서 더 잘 작동합니다.