2011-06-10 21 views
5

Estoy utilizando un sistema experto con un motor de inferencia (encadenamiento directo) y me gustaría explicar por qué es mejor que un árbol de decisión utilizando conceptos muy simples. (en una situación particular)Motores de inferencia vs Árboles de decisión

Sé que hay un similar question en stackoverflow pero no es la respuesta que estoy buscando.

Aquí está mi problema:

Por gestión de clientes y estoy usando gran cantidad de reglas de negocio (que inducen reglas de diálogo) para ayudar al cliente a tomar una decisión sobre un producto. Nota: Las reglas se agregan con frecuencia (2 por día).

El cliente responde una serie de preguntas antes de obtener su respuesta. Las reglas comerciales mezcladas con las reglas de diálogo hacen que el cuestionario resultante se vea como el que generaría un Árbol de decisión óptimo. Aunque el razonamiento oculto es completamente diferente.

Me gustaría saber cuáles son los principales argumentos a favor (o tal vez en contra) del motor de inferencia en términos de escalabilidad, robustez, complejidad y eficiencia en comparación con un árbol de decisión en tal caso.

Ya tengo algunas ideas, pero como tengo que convencer a alguien, es como si nunca tuviera suficientes argumentos.

Gracias de antemano por sus ideas y me alegraría si pudiera aconsejarme buenos documentos para leer sobre este tema.

Respuesta

3

Los motores de inferencia de encadenamiento directo admiten especificaciones en lógica de primer orden completa (traducidas a reglas if-then), mientras que los árboles de decisión solo pueden marchar por un conjunto a un subconjunto específico. Si está utilizando tanto para, por ejemplo, determinar qué coche un usuario desea, a continuación, en la lógica de primer orden se puede decir (CHR sintaxis; <=> reemplaza por LHS RHS):

user_likes_color(C), available_color(C) <=> car_color(C). 

además de todas las reglas que determina la marca/tipo de automóvil que el usuario quiere, y el motor de inferencia elegirá el color así como los otros atributos.

Con árboles de decisión, tendría que configurar un árbol adicional para el color. Está bien, siempre y cuando el color no interactúe con otras propiedades, pero una vez que lo hacen, estás jodido: es posible que tengas que replicar el árbol completo para cada color, excepto los colores que entran en conflicto con otras propiedades, donde necesitarías también modifica el árbol.

(admito color es un ejemplo muy estúpida, pero espero que se le ocurre al otro lado.)

+0

Gracias, esa fue una idea que tuve pero me gusta su ejemplo.Mi ejemplo no fue muy bueno. (Estaba revisando la mayoría y el país de residencia que están interactuando). Hay una "factorización" del número de nodos cuando las propiedades están relacionadas. –

2

Decir motores de inferencia así que no he utilizado o árboles de decisión en la práctica. Desde mi punto de vista, debes usar árboles de decisión si quieres aprender de un conjunto de entrenamiento dado y luego predecir los resultados. Como ejemplo, si tiene un conjunto de datos con información que indica si salió a hacer una barbacoa dadas las condiciones climáticas (viento, temperatura, lluvia, ...). Con ese conjunto de datos puede construir un árbol de decisión. Lo bueno del árbol de decisiones es que puedes utilizar la poda para evitar el sobreajuste y, por lo tanto, evitar modelar el ruido.

Creo que los motores de inferencia son mejores que los árboles de decisión si tienes reglas específicas, que puedes usar para razonar. Larsmans ya ha proporcionado un buen ejemplo.

Espero que ayude

+0

Gracias ese es un buen punto. –

Cuestiones relacionadas