Losowy pakiet R. pakietu R nie może obsłużyć współczynnika z więcej niż 32 poziomami. Gdy ma więcej niż 32 poziomy, emituje komunikat o błędzie:
Nie obsługuje predyktorów jakościowych z więcej niż 32 kategoriami.
Ale dane, które mam, mają kilka czynników. Niektóre z nich mają ponad 1000 poziomów, a niektóre ponad 100. Ma nawet „stan” stanów zjednoczonych, który wynosi 52.
Oto moje pytanie.
Dlaczego są takie ograniczenia? randomForest odmawia uruchomienia nawet dla prostej sprawy.
> 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.
Jeśli jest to spowodowane ograniczeniem pamięci, w jaki sposób scikit learn randomForeestRegressor może działać z więcej niż 32 poziomami?
Jak najlepiej poradzić sobie z tym problemem? Załóżmy, że mam zmienne niezależne X1, X2, ..., X50, a Y jest zmienną zależną. Załóżmy, że X1, X2 i X3 mają ponad 32 poziomy. Co powinienem zrobić?
Myślę o uruchomieniu algorytmu grupowania dla każdego z X1, X2 i X3, w którym odległość jest zdefiniowana jako różnica w Y. Uruchomię trzy klastry, ponieważ istnieją trzy zmienne problematyczne. I w każdej grupie chciałbym znaleźć podobne poziomy. I połączę je.
Jak to brzmi?
randomForest
może obsługiwać predyktory jakościowe z maksymalnie 53 poziomami. Wiadomości