Quiero entrenar un clasificador, digamos SVM, o bosque aleatorio, o cualquier otro clasificador. Una de las características del conjunto de datos es una variable categórica con 1000 niveles. ¿Cuál es la mejor manera de reducir el número de niveles en esta variable? En R hay una función llamada combine.levels()
en el paquete Hmisc , que combina niveles poco frecuentes, pero estaba buscando otras sugerencias.
classification
svm
random-forest
many-categories
sabunime
fuente
fuente
Respuestas:
La mejor manera de hacerlo variará enormemente dependiendo de la tarea que esté realizando, por lo que es imposible decir qué será lo mejor de una manera independiente de la tarea.
Hay dos cosas fáciles de probar si sus niveles son ordinales:
Si los niveles no son ordinales, puede agrupar los niveles en función de otras características / variables en su conjunto de datos y sustituir los identificadores de clúster por los niveles anteriores. Hay tantas maneras de hacer esto como algoritmos de agrupamiento, por lo que el campo está abierto de par en par. Mientras lo leo, esto es lo que
combine.levels()
está haciendo. Podrías hacer lo mismo usandokmeans()
oprcomp()
. (Posteriormente, podría / debería capacitar a un clasificador para predecir los grupos de nuevos puntos de datos).fuente