Digamos que tengo un modelo de clasificación predictivo basado en un bosque aleatorio (usando el paquete randomForest en R). Me gustaría configurarlo para que los usuarios finales puedan especificar un elemento para generar una predicción y generará una probabilidad de clasificación. Hasta ahora, no hay problema.
Pero sería útil / genial poder generar algo como un gráfico de importancia variable, pero para el elemento específico que se predice, no para el conjunto de entrenamiento. Algo como:
Se predice que el artículo X es un perro (73% probable)
porque:
Piernas = 4
Aliento = mal
pelaje =
comida corta = desagradable
Tú entiendes. ¿Existe una forma estándar, o al menos justificable, de extraer esta información de un bosque aleatorio entrenado? Si es así, ¿alguien tiene un código que haga esto para el paquete randomForest?
fuente
m
predictores uno por uno y mirar para ver cómo el bosque predice de manera diferente parece algo costoso. Tiene que haber una mejor manera.Respuestas:
La primera idea es simplemente imitar la estrategia de eliminación de importancia variable y simplemente probar cómo mezclar cada atributo degenerará la confianza del bosque en la clasificación de objetos (en OOB y obviamente con algunas repeticiones). Esto requiere un poco de codificación, pero sin duda es posible.
Sin embargo, creo que es solo una mala idea: el resultado será probablemente variable como el infierno (sin estabilizar el impacto del promedio sobre los objetos), ruidoso (para objetos no tan seguros, los atributos sin sentido podrían tener grandes impactos) y difícil de interpretar (dos o más reglas cooperativas de atributos probablemente resultarán en impactos aleatorios de cada atributo contribuyente).
Para no dejarte con una respuesta negativa, preferiría tratar de ver la matriz de proximidad y los posibles arquetipos que puede revelar, esto parece mucho más estable y directo.
fuente
Lo intentaría con el marco de cal .
Funciona con muchos modelos (incluido el bosque aleatorio). Se puede usar para la interpretación local (es decir, para explicar una sola predicción) o para la interpretación global (es decir, para explicar un modelo completo).
Citando del extracto
Tiene paquetes para R y python , y muchos ejemplos si lo buscas en Google.
fuente