Il semble que vous compreniez que vous pouvez avoir des nniveaux, par opposition à n-1, car contrairement à la régression linéaire, vous n'avez pas à vous soucier de la colinéarité parfaite.
(J'y arrive dans une perspective R, mais je suppose que c'est la même chose en Python.) Cela dépend de deux choses, telles que 1) quel package vous utilisez et 2) combien de niveaux de facteur vous avez.
1) Si vous utilisez le randomForestpackage de R , alors si vous avez <33 niveaux de facteur, vous pouvez continuer et les laisser dans une fonction si vous le souhaitez. En effet, dans la mise en œuvre aléatoire de la forêt de R, il vérifiera quels niveaux de facteurs doivent être d'un côté de la division et lesquels de l'autre (par exemple, 5 de vos niveaux peuvent être regroupés sur le côté gauche et 7 peuvent être groupés ensemble à droite). Si vous divisez la caractéristique catégorielle en nvariables muettes, l'algorithme n'aurait pas cette option à sa disposition.
Évidemment, si le package que vous utilisez en particulier ne peut pas gérer les fonctionnalités catégorielles, il vous suffit de créer ndes variables factices.
2) Comme je l'ai mentionné ci-dessus, l'implémentation de forêt aléatoire de R ne peut gérer que 32 niveaux de facteurs - si vous en avez plus, vous devez soit diviser vos facteurs en sous-ensembles plus petits, soit créer une variable fictive pour chaque niveau.
randomForestsont codées automatiquement, je devrais aller avec desnnuls car la colinéarité n'est pas un problème pour RF?