data mining - net - Árbol de decisión vs. clasificador Naive Bayes
naive bayes algoritmo python (1)
Los árboles de decisión son muy flexibles, fáciles de entender y fáciles de depurar. Trabajarán con problemas de clasificación y problemas de regresión. Entonces, si está tratando de predecir un valor categórico como (rojo, verde, arriba, abajo) o si está tratando de predecir un valor continuo como 2.9, 3.4, etc. Decision Trees manejará ambos problemas. Probablemente una de las cosas más geniales de Decision Trees es que solo necesitan una tabla de datos y construirán un clasificador directamente a partir de esos datos sin necesidad de tener que realizar ningún trabajo de diseño inicial. Hasta cierto punto, las propiedades que no importan no se elegirán como divisiones y se eliminarán finalmente, por lo que es muy tolerante con las tonterías. Para comenzar, configúralo y olvídalo.
Sin embargo, la desventaja. Los árboles de decisión simples tienden a sobrepasar los datos de entrenamiento más de modo que otras técnicas, lo que significa que generalmente tiene que hacer poda de árboles y ajustar los procedimientos de poda. No tenía ningún costo de diseño inicial, pero le devolverá eso al ajustar el rendimiento de los árboles. Además, los simples árboles de decisión dividen los datos en cuadrados, por lo que la creación de conglomerados alrededor de las cosas significa que tiene que dividirse mucho para abarcar los grupos de datos. Dividir mucho conduce a árboles complejos y aumenta la probabilidad de que esté sobreajustado. Los árboles altos son recortados, por lo que si bien puedes construir un grupo alrededor de alguna característica de los datos, es posible que no sobreviva al proceso de poda. Hay otras técnicas, como divisiones subrogadas que le permiten dividir varias variables a la vez creando divisiones en el espacio que no son ni horizontales ni perpendiculares (0 <pendiente <infinito). Genial, pero su árbol comienza a ser más difícil de entender, y es complejo implementar estos algoritmos. Otras técnicas como el impulso y los árboles aleatorios de decisión forestal pueden funcionar bastante bien, y algunos sienten que estas técnicas son esenciales para obtener el mejor rendimiento de los árboles de decisión. De nuevo, esto agrega más cosas para comprender y usar para ajustar el árbol y, por lo tanto, más cosas para implementar. Al final, cuanto más agreguemos al algoritmo, más alta será la barrera para usarlo.
Naive Bayes requiere que construyas una clasificación a mano. No hay forma de simplemente arrojar un montón de datos tabulares y hacer que elija las mejores características que usará para clasificar. Escoger qué características importa depende de usted. Los árboles de decisiones elegirán las mejores características para usted a partir de datos tabulares. Si hubiera una forma de que Naive Bayes escogiera las características que se estarían acercando a usar las mismas técnicas que hacen que los árboles de decisión funcionen así. Dale este hecho, lo que significa que es posible que necesites combinar Naive Bayes con otras técnicas estadísticas para guiarte hacia las características que mejor se clasifican y que podrían ser el uso de árboles de decisión. Naive bayes responderá como un clasificador continuo. Existen técnicas para adaptarlo a la predicción categórica; sin embargo, responderán en términos de probabilidades como (A 90%, B 5%, C 2.5% D 2.5%). Bayes puede funcionar bastante bien, y no se ajusta demasiado. así que no hay necesidad de podar o procesar la red. Eso los hace algoritmos más simples de implementar. Sin embargo, son más difíciles de depurar y comprender porque todas las probabilidades se multiplican miles de veces, por lo que debe tener cuidado para probar que está haciendo lo que espera. Naive bayes lo hace bastante bien cuando los datos de entrenamiento no contienen todas las posibilidades, por lo que puede ser muy bueno con poca cantidad de datos. Los árboles de decisión funcionan mejor con muchos datos en comparación con Naive Bayes.
Naive Bayes se usa mucho en robótica y visión artificial, y lo hace bastante bien con esas tareas. Los árboles de decisión funcionan muy mal en esas situaciones. Enseñar a un árbol de decisiones a reconocer las manos de póquer mirando millones de manos de póker es muy pobre porque las canicas reales y los cuádriceps ocurren tan poco que a menudo son eliminados. Si se elimina del árbol resultante, clasificará incorrectamente esas manos importantes (recuérdese la discusión de los árboles altos desde arriba). Ahora solo piensa si estás tratando de diagnosticar el cáncer usando esto. El cáncer no ocurre en la población en grandes cantidades, y se eliminará con mayor probabilidad. Las buenas noticias son que esto se puede manejar usando pesas, por lo que pesamos una mano ganadora o tenemos un cáncer más alto que una mano que pierde o que no tiene cáncer y eso aumenta el árbol para que no se elimine. Una vez más, esta es la parte de ajustar el árbol resultante a la situación que discutí anteriormente.
Los árboles de decisión son claros porque te dicen qué entradas son los mejores pronosticadores de los resultados, con frecuencia los árboles de decisiones pueden guiarte para encontrar si hay una relación estadística entre un aporte dado al producto y qué tan fuerte es esa relación. A menudo, el árbol de decisión resultante es menos importante que las relaciones que describe. Así que los árboles de decisión pueden usarse como una herramienta de investigación a medida que aprende sobre sus datos para que pueda construir otros clasificadores.
Si está jugando con el uso de árboles de decisión frente a bahías ingenuas para resolver un problema muchas veces es mejor probar cada uno. Construya un árbol de decisiones y construya un clasificador de bayes ingenuo y luego dispare usando los datos de entrenamiento y validación que tenga. Cualquiera que tenga el mejor rendimiento probablemente tenga un mejor rendimiento en el campo. Y siempre es una buena idea lanzar cada uno de ellos contra los predictores de K-vecino más cercano (KNN) porque se ha demostrado que k-closer supera a ambos en algunas situaciones, y KNN es un algoritmo simple para implementar y usar. Si KNN tiene un mejor rendimiento que los otros dos, vaya con él.
Algunas fuentes:
El manual sobre árboles de decisión basados en CART. Este libro cubre el algoritmo CART, pero también analiza los árboles de decisión, pesos, valores perdidos, divisiones subrogadas, impulso, etc. http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418
Una introducción más amable a CART https://www.youtube.com/watch?v=p17C9q2M00Q
Comparación de algoritmos: observe que KNN, Decision Trees, C4.5 y SVM funcionan bastante bien en la mayoría de las pruebas. http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf
Otra comparación de algoritmos: Boosted Decision Trees y al azar encabezan la lista con KNN en el medio: http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml06.pdf
Otro buen resumen de varias técnicas: http://www.quora.com/What-are-the-advantages-of-different-classification-algorithms
Investigo sobre diferentes técnicas de minería de datos y encontré algo que no pude descifrar. Si alguien tiene alguna idea, sería genial.
¿En qué casos es mejor usar un árbol de Decisión y otros casos un clasificador Naive Bayes?
¿Por qué usar uno de ellos en ciertos casos? Y el otro en diferentes casos? (Al observar su funcionalidad, no en el algoritmo)
Alguien tiene algunas explicaciones o referencias sobre esto?