¿En qué casos es mejor usar un árbol de decisión y otros casos un KNN?
¿Por qué usar uno de ellos en ciertos casos? ¿Y el otro en diferentes casos? (Al observar su funcionalidad, no el algoritmo)
¿Alguien tiene algunas explicaciones o referencias sobre esto?
machine-learning
data-mining
decision-trees
gchavez1
fuente
fuente
Respuestas:
Sirven para diferentes propósitos.
KNN no está supervisado, el árbol de decisión (DT) supervisado. ( KNN es aprendizaje supervisado, mientras que K-means no está supervisado, creo que esta respuesta causa cierta confusión ) . KNN se usa para la agrupación, DT para la clasificación. ( Ambos se usan para la clasificación ) .
KNN determina vecindarios, por lo que debe haber una métrica de distancia. Esto implica que todas las características deben ser numéricas. Las métricas de distancia pueden verse afectadas por diferentes escalas entre los atributos y también por el espacio de alta dimensión.
DT, por otro lado, predice una clase para un vector de entrada dado. Los atributos pueden ser numéricos o nominales.
Entonces, si desea encontrar ejemplos similares, puede usar KNN. Si desea clasificar ejemplos, puede usar DT.
fuente
knn
yk-means
son algoritmos diferentes y esta respuesta desafortunadamente (y erróneamente) pierde esos dos procedimientos.knn
¡no está sin supervisión ni se usa para la agrupación! Ver P: Dif kNN y kMeanLos clasificadores como Árbol de decisión, Bayesiano, Back-propagation, Support Vector Machine entran en la categoría de "Estudiantes ansiosos" , porque primero crean un modelo de clasificación en el conjunto de datos de entrenamiento antes de poder clasificar realmente una observación [invisible] del conjunto de datos de prueba . El modelo aprendido ahora está "ansioso" (leído con hambre) para clasificar las observaciones nunca antes vistas, de ahí el nombre.
Sin embargo, el clasificador basado en KNN no crea ningún modelo de clasificación. Aprende directamente de las instancias de entrenamiento (observaciones). Comienza a procesar datos solo después de recibir una observación de prueba para clasificar. Por lo tanto, KNN entra en la categoría de enfoques de "Aprendiz perezoso" .
Sobre la base de las diferencias fundamentales anteriores, podemos concluir lo siguiente:
Dado que KNN realiza el aprendizaje sobre el terreno, requiere búsquedas frecuentes en la base de datos, por lo tanto, puede ser computacionalmente costoso. Decision Tree Classifier no requiere tales búsquedas, ya que tiene listo el modelo de clasificación en memoria.
Dado que KNN realiza un aprendizaje basado en instancias, una K bien ajustada puede modelar espacios de decisión complejos que tienen límites de decisión complicados arbitrariamente, que no son modelados fácilmente por otros aprendices "ansiosos" como árboles de decisión.
Los alumnos "ansiosos" trabajan en lotes, modelando un grupo de observaciones de entrenamiento a la vez. Por lo tanto, no son aptos para el aprendizaje incremental. Pero KNN, naturalmente, admite el aprendizaje incremental (flujos de datos) ya que es un alumno basado en instancias.
Además, el clasificador KNN proporciona tasas de error de prueba más cercanas a las del clasificador bayesiano (el estándar de oro). Como se cita en ISLR :
fuente
De Python Machine Learning de Sebastian Raschka :
El árbol de decisión, sin embargo, puede clasificar rápidamente nuevos ejemplos. Solo estás ejecutando una serie de comparaciones booleanas.
fuente
Agregaría que los árboles de decisión pueden usarse tanto para tareas de clasificación como de regresión. DT, por otro lado, predice que una clase en la respuesta aceptada sería más específica al describir los árboles de clasificación, que técnicamente es un subtipo del concepto genérico DT. Una referencia (ignorando las capas inferiores que discuten implementaciones específicas):
desde aquí: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees
fuente