R의 randomForest 패키지는 32 개 이상의 레벨을 가진 요인을 처리 할 수 없습니다. 32 개 이상의 레벨이 제공되면 오류 메시지가 나타납니다.
범주가 32 개 이상인 범주 형 예측 변수를 처리 할 수 없습니다.
그러나 내가 가지고있는 데이터에는 몇 가지 요소가 있습니다. 그들 중 일부는 1000 + 레벨을 가지고 있고 일부는 100 +를 가지고 있습니다. 미국의 '상태'는 52입니다.
자, 여기 내 질문이 있습니다.
왜 그런 제한이 있습니까? randomForest는 간단한 경우에도 실행을 거부합니다.
> d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories.
단순히 메모리 제한으로 인해 scikit learn의 randomForeestRegressor가 32 개 이상의 레벨로 실행될 수있는 방법은 무엇입니까?
이 문제를 처리하는 가장 좋은 방법은 무엇입니까? X1, X2, ..., X50 독립 변수가 있고 Y가 종속 변수라고 가정하십시오. 그리고 X1, X2 및 X3의 레벨이 32 개 이상이라고 가정하십시오. 어떻게해야합니까?
내가 생각하고있는 것은 거리가 Y의 차이로 정의되는 X1, X2 및 X3 각각에 대해 클러스터링 알고리즘을 실행하는 것입니다. 문제가있는 세 가지 변수가 있으므로 3 개의 클러스터링을 실행합니다. 그리고 각 군집에서 비슷한 수준을 찾을 수 있기를 바랍니다. 그리고 그것들을 합칠 것입니다.
이 소리는 어때?