Este artículo se centra en los escenarios de adaptación de los siguientes algoritmos comunes y sus ventajas y desventajas!
Hay demasiados algoritmos de aprendizaje automático, categorizar, regredir, agrupar, recomendar, reconocer imágenes, etc. Es muy difícil encontrar un algoritmo adecuado, por lo que en las aplicaciones reales, generalmente experimentamos con el aprendizaje inspirado.
Por lo general, al comienzo elegimos algoritmos que todos conocemos, como SVM, GBDT, Adaboost, y ahora que el aprendizaje profundo es muy popular, las redes neurales también son una buena opción.
Si te preocupa la precisión, el mejor método es probar los algoritmos individualmente mediante la validación cruzada, compararlos, y luego ajustar los parámetros para asegurar que cada algoritmo obtenga lo mejor, y finalmente elegir el mejor.
Pero si estás buscando un algoritmo que sea lo suficientemente bueno para resolver tu problema, o aquí hay algunos consejos para usar, a continuación analizaremos las ventajas y desventajas de cada algoritmo, basándonos en las ventajas y desventajas del algoritmo, para que sea más fácil elegirlo.
En estadística, un modelo bueno o malo se mide por su desviación y diferencia, así que vamos a difundir el desviación y diferencia:
Desviación: se describe como la diferencia entre el valor esperado E
Diferencia: describe el rango de variación del valor del pronóstico P, el grado de separación, es decir, la diferencia del valor del pronóstico, es decir, la distancia de su valor esperado E. Cuanto mayor sea la diferencia, más dispersa será la distribución de los datos.
El error real del modelo es la suma de ambos, como se muestra en el siguiente gráfico:
Si se trata de un pequeño conjunto de entrenamientos, el clasificador de alto desvío/bajo desvío (por ejemplo, el simple Bayes NB) tiene mayores ventajas que el clasificador de bajo desvío/alto desvío (por ejemplo, KNN), ya que el último es demasiado ajustado.
Sin embargo, a medida que crece el conjunto de entrenamientos, las mejores predicciones del modelo sobre los datos originales disminuyen la desviación, y los clasificadores de baja desviación/alta desviación progresivamente obtienen sus ventajas (porque tienen un menor error de aproximación) cuando los clasificadores de alta desviación ya no son suficientes para proporcionar un modelo preciso.
Por supuesto, también se puede pensar que es una diferencia entre el modelo de generación (NB) y el modelo de determinación (KNN).
Los siguientes contenidos son conocidos:
Primero, supongamos que sabemos la relación entre el conjunto de entrenamiento y el conjunto de pruebas. En pocas palabras, vamos a aprender un modelo en el conjunto de entrenamiento y luego tomar el conjunto de pruebas para usar, y los resultados se medirán en función de la tasa de error del conjunto de pruebas.
Pero muchas veces, solo podemos asumir que los conjuntos de pruebas y los conjuntos de entrenamiento se ajustan a la misma distribución de datos, pero no obtenemos los datos reales de las pruebas.
Debido a que las muestras de entrenamiento son pocas (o al menos insuficientes), el modelo obtenido a través del conjunto de entrenamiento no siempre es realmente correcto. Incluso si el conjunto de entrenamiento es 100% correcto, no significa que muestre una distribución de datos real.
Además, en la práctica, las muestras de entrenamiento a menudo tienen un cierto error de ruido, por lo que si se persigue demasiado la perfección en el conjunto de entrenamiento con un modelo muy complejo, el modelo puede hacer que todos los errores en el conjunto de entrenamiento sean características reales de la distribución de datos, obteniendo así una estimación errónea de la distribución de datos.
Así, en el conjunto de pruebas reales, el error es un desastre ("este fenómeno se llama adecuación"); pero tampoco se puede usar un modelo demasiado simple, ya que de lo contrario, el modelo no será suficiente para describir la distribución de datos cuando la distribución de datos es más compleja ("representa un alto índice de error incluso en el conjunto de entrenamiento, este fenómeno es deficiente").
La superajuste indica que el modelo adoptado es más complejo que la distribución real de datos, mientras que el modelo adoptado por la subajuste indica que es más sencillo que la distribución real de datos.
En el marco del aprendizaje estadístico, cuando se traza la complejidad del modelo, existe la idea de que Error = Bias + Variance. Aquí, el error se puede entender como la tasa de error de predicción del modelo, que se compone de dos partes, una parte es el "bias" de la estimación incorrecta debido a que el modelo es demasiado simple, y la otra parte es el mayor espacio de variación y la incertidumbre ("variance") debido a que el modelo es demasiado complejo.
Por lo tanto, es fácil analizar el simple Bayes. Su simple hipótesis de que los datos no están relacionados es un modelo muy simplificado. Por lo tanto, para un modelo tan simple, en la mayoría de los casos el Bias es mayor que el Variance, es decir, hay un desvío alto y un desvío bajo.
En la práctica, para que el error sea lo más pequeño posible, necesitamos equilibrar las proporciones de Bias y Variance en la selección del modelo, es decir, equilibrar el over-fitting y el under-fitting.
La relación entre la desviación y la diferencia y la complejidad del modelo se hace más clara con el siguiente gráfico:
Cuando la complejidad del modelo aumenta, la desviación se reduce gradualmente, mientras que la desviación se incrementa gradualmente.
Los simples Bayes pertenecen a los modelos genéticos (sobre los modelos genéticos y los modelos determinantes, principalmente sobre si se requiere una distribución conjunta), muy simples, solo haces un montón de cuentas.
Si se toma la hipótesis de independencia condicional (una condición más estricta), la velocidad de convergencia de un clasificador Bayesian simple será más rápida que la de un modelo de determinación, como la regresión lógica, por lo que solo se necesitan menos datos de entrenamiento. Incluso si la hipótesis de independencia condicional de NB no se cumple, el clasificador NB sigue funcionando muy bien en la práctica.
Su principal desventaja es que no puede aprender las interacciones entre características, en mRMR, R es una característica redundante. Citando un ejemplo más clásico, por ejemplo, aunque te gusten las películas de Brad Pitt y Tom Cruise, no puede aprender las películas que no te gustan.
Las ventajas:
El modelo de Bayes puro se deriva de la teoría matemática clásica, tiene una base matemática sólida y una eficiencia de clasificación estable. Es muy bueno para datos de pequeña escala, puede manejar tareas multiclases y es adecuado para entrenamiento incremental. Es menos sensible a la falta de datos, y el algoritmo es más simple, y se utiliza a menudo para clasificar el texto. Los inconvenientes:
La probabilidad previa debe ser calculada. La tasa de error en las decisiones de clasificación; El formato de expresión de los datos entrados es sensible.
En el modelo de determinación, hay muchos métodos para normalizar el modelo (L0, L1, L2, etc.) y no tienes que preocuparte por si tus características son correlacionadas, como en el caso de los Bayesian primitivos.
También obtienes una buena explicación de las probabilidades en comparación con los árboles de decisión y las máquinas SVM, e incluso puedes actualizar el modelo fácilmente con nuevos datos (utilizando algoritmos de descenso de gradiente en línea, gradient descent en línea).
Si necesita una estructura de probabilidad (por ejemplo, para ajustar simplemente el umbral de clasificación, indicar incertidumbre o obtener un intervalo de confianza), o si desea integrar más datos de entrenamiento rápidamente en el modelo más adelante, utilicela.
La función sigmoide:
Las ventajas: El objetivo es lograr una aplicación sencilla y amplia a los problemas industriales. El rendimiento de la clasificación es muy bajo, la velocidad es rápida y los recursos de almacenamiento son bajos. Los resultados de las pruebas de probabilidad de las muestras de observación facilitadas; Para la regresión lógica, la multilinealidad no es un problema, y se puede combinar con la regularización de L2 para resolverlo. Las desventajas: Cuando el espacio de características es grande, el rendimiento de la regresión lógica no es muy bueno. Falta de ajuste fácil y baja precisión en general No puede manejar bien una gran cantidad de características o variables de múltiples clases; Solo puede manejar dos problemas de clasificación (el softmax derivado de esta base puede usarse para múltiples clases) y debe ser linealmente separable. Para las características no lineales, se requiere una conversión.
La regresión lineal se utiliza para la regresión, a diferencia de la regresión logística que se utiliza para la clasificación, y su idea básica es optimizar las funciones de error en forma de mínimos dobles con la descensión de la gradiente, y, por supuesto, también se puede obtener una solución directa de los parámetros con la ecuación normal, lo que resulta en:
En el LWLR (regresión lineal de ponderación local), la expresión de cálculo de los parámetros es:
Por lo tanto, se puede ver que, a diferencia de LR, LWLR es un modelo no paramétrico, ya que cada vez que se realiza un cálculo de regresión se debe recorrer la muestra de entrenamiento al menos una vez.
Ventajas: La implementación es sencilla, el cálculo es sencillo.
Desventajas: No puede adaptarse a datos no lineales.
El KNN es el algoritmo de vecindad más cercana, cuyos principales procesos son:
Calcular la distancia de cada punto de la muestra en la muestra de entrenamiento y la muestra de prueba (las mediciones de distancia más comunes incluyen distancias europeas, distancias de Marte, etc.)
Se ordenan todos los valores de distancia anteriores;
Seleccione la muestra de k distancias mínimas antes de hacerlo.
Se votó sobre la etiqueta de esta muestra k para obtener la categoría final de clasificación.
La manera de elegir un valor K óptimo depende de los datos. En general, un valor K mayor en la clasificación puede reducir el impacto del ruido, pero puede hacer que los límites entre las categorías se vuelvan confusos.
Un mejor valor de K se puede obtener a través de una variedad de técnicas inspiradas, como la verificación cruzada. Además, la presencia de ruido y vectores de características no correlacionadas disminuye la precisión de los algoritmos cercanos a K.
Los algoritmos cercanos tienen resultados de mayor consistencia. Los algoritmos aseguran que la tasa de error no excederá el doble de la tasa de error de los algoritmos bayesianos cuando los datos se acercan al infinito. Para algunos valores buenos de K, los algoritmos cercanos aseguran que la tasa de error no excederá la tasa de error teórico de Bayes.
Ventajas del algoritmo KNN
La teoría está madura, la idea es simple, y puede ser usada tanto para clasificar como para regresar. Se puede utilizar para clasificar de forma no lineal. La complejidad de tiempo de entrenamiento es O ((n); No hay suposiciones sobre los datos, es de alta precisión y no es sensible a los outliers. Desventajas
¿Qué es lo que está sucediendo? Problemas de desequilibrio de la muestra (es decir, algunas categorías tienen un gran número de muestras y otras muy pocas); Los usuarios de Facebook pueden usar el mismo código de usuario.
Es fácil de explicar. Puede manejar las interacciones entre las características sin estrés y es no paramétrico, por lo que no tiene que preocuparse por los valores anormales o si los datos son linealmente separables. Por ejemplo, un árbol de decisión puede manejar fácilmente la categoría A en el extremo de una dimensión de características x, la categoría B en el medio, y luego la categoría A aparece en el extremo anterior de la dimensión de características x).
Uno de sus inconvenientes es que no es compatible con el aprendizaje en línea, por lo que el árbol de decisión debe reconstruirse completamente una vez que llegue el nuevo modelo.
Otra desventaja es que es fácil que surja el ajuste, pero también es el punto de entrada para métodos de integración como el RF de bosque aleatorio (o el aumento del árbol impulsado).
Además, los bosques aleatorios suelen ser los ganadores de muchos problemas de clasificación (generalmente un poco mejor que los vectores de soporte), se entrenan rápidamente y se pueden ajustar sin tener que preocuparse por ajustar una gran cantidad de parámetros como los vectores de soporte, por lo que siempre han sido populares.
Un punto importante en el árbol de decisión es seleccionar una propiedad para ramificar, por lo que es importante prestar atención a la fórmula de cálculo de la ganancia de información y comprenderla en profundidad.
La fórmula de cálculo para el filtro de información es la siguiente:
Se puede calcular la probabilidad de que las dos clases de muestras aparezcan en la muestra total p1 y p2 respectivamente, para calcular la cantidad de información antes de la ramificación de las propiedades no seleccionadas.
Ahora, si se selecciona una propiedad para ramificar, la regla de ramificación es: si xi = vxi = v, dividir la muestra en una rama del árbol; si no es igual, pasar a otra rama.
Obviamente, la muestra en la rama es muy probable que incluya dos categorías, calculadas respectivamente por las dos ramas H1 y H2, y calculada por la ramas H1 y H2 después de la ramificación, el aumento de la información ΔH = H - H
Las ventajas de los árboles de decisión
Los cálculos son simples, fáciles de entender y de gran explicabilidad. Las muestras con las propiedades faltantes son las más adecuadas para su tratamiento. La capacidad de manejar características irrelevantes. En un tiempo relativamente corto, se pueden obtener resultados viables y eficaces en grandes fuentes de datos. Desventajas
Los bosques aleatorios pueden ser reducidos en gran medida; Los datos de los países en vías de expansión están siendo ignorados. Para los datos con una cantidad de muestras inconsistente entre las categorías, en el árbol de decisión, los resultados de la ganancia de información se inclinan hacia las características con más valores numéricos (que tienen este inconveniente siempre que se utiliza la ganancia de información, como RF).
Adaboost es un modelo de suma en el que cada modelo se basa en la tasa de error del modelo anterior, con un exceso de atención a las muestras de clasificación errónea y una menor atención a las muestras correctamente clasificadas, para obtener un modelo relativamente mejor después de una iteración.
Ventajas
Adaboost es un clasificador de alta precisión. Se puede construir un subclasificador con varios métodos, y el marco que proporciona el algoritmo Adaboost. Cuando se utiliza un clasificador simple, los resultados calculados son comprensibles, y la construcción de los clasificadores débiles es extremadamente simple. Es sencillo, no hace falta filtrar las características. No es fácil que ocurra un sobreajuste. Para obtener información sobre algoritmos combinados como el bosque aleatorio y GBDT, consulte este artículo: Machine learning - Summary of combined algorithms
Desventajas: es más sensible a los outliers
La alta precisión proporciona una buena garantía teórica para evitar la superajuste, y funciona bien si se le da una función nuclear adecuada, incluso si los datos son linealmente indivisibles en el espacio de características originales.
Es especialmente popular en problemas de clasificación de texto en movimiento de ultra alta dimensión. Lamentablemente, la memoria es muy consumida y difícil de explicar, también hay algunos inconvenientes para ejecutar y configurar, mientras que el bosque aleatorio apenas evita estos inconvenientes y es más práctico.
Ventajas Los problemas de alta dimensión, es decir, el espacio de características grandes, pueden ser resueltos. La capacidad de procesar interacciones de características no lineales. No hay que depender de toda la información. La generalización puede ser mejorada.
Desventajas Cuando se observa una gran cantidad de muestras, la eficiencia no es muy alta. No hay una solución universal a los problemas no lineales, y a veces es difícil encontrar una función nuclear adecuada. Los usuarios de Twitter también pueden tener problemas con los datos que no están disponibles. La selección de núcleos también es ingeniosa (libsvm tiene cuatro funciones nucleares: núcleo lineal, núcleo polinómico, núcleo RBF y núcleo sigmoide):
Primero, si el número de muestras es menor que el número de características, no es necesario elegir núcleos no lineales, sino simplemente usar núcleos lineales.
En segundo lugar, si el número de muestras es mayor que el número de características, entonces se puede usar núcleos no lineales para mapear las muestras en dimensiones más altas, generalmente con mejores resultados.
Tercero, si el número de muestras y el número de características son iguales, se puede usar un núcleo no lineal, el mismo principio que el segundo.
Para el primer caso, también se puede reducir la dimensión de los datos primero y luego usar núcleos no lineales, que también es un método.
Las ventajas de las redes neuronales artificiales: La precisión de la clasificación es alta. La capacidad de procesamiento distribuido en paralelo, el almacenamiento distribuido y el aprendizaje son fuertes. Los nervios del ruido tienen una robustez y una capacidad de tolerancia a errores muy cercanas a las relaciones no lineales complejas. El uso de la memoria de referencia.
Las desventajas de las redes neuronales artificiales: Las redes neuronales requieren una gran cantidad de parámetros, como la estructura de la topografía de la red, los valores de peso y los valores iniciales de los umbrales. No se puede observar el proceso de aprendizaje entre los resultados, los resultados son difíciles de explicar y afectan la credibilidad y la aceptabilidad de los resultados; El tiempo de estudio es demasiado largo y puede incluso no alcanzar el objetivo del aprendizaje.
He escrito un artículo anterior sobre el K-Means clustering, en el que se enlaza: algoritmos de aprendizaje automático - K-means clustering.
Ventajas Los algoritmos son simples y fáciles de implementar; Para el procesamiento de grandes conjuntos de datos, el algoritmo es relativamente escalable y eficiente, ya que su complejidad es de aproximadamente O ((nkt), donde n es el número de todos los objetos, k es el número de capas y t es el número de veces que se repiten. El algoritmo trata de encontrar las k divisiones que hacen que el valor de la función de error cuadrado sea menor. Los efectos de agrupación son mejores cuando el aluminio es denso, esférico o aglomerado, y hay una clara distinción entre aluminio y aluminio.
Desventajas Los requisitos de tipo de datos son más altos y son adecuados para datos numéricos. La convergencia a mínimos locales puede ser más lenta en datos de gran escala. El valor de K es más difícil de elegir; Es sensible a los valores de concentración de los valores iniciales y puede dar lugar a resultados de agrupación diferentes para diferentes valores iniciales. No es adecuado para detectar tetas con formas no convexas, o tetas con una gran diferencia de tamaño. Los datos sensibles a los parámetros de ruido y puntos aislados pueden tener una gran influencia en la media.
Algoritmos para seleccionar referencias
En un artículo que ya había traducido algunos artículos extranjeros, un simple truco de selección de algoritmos fue mostrado:
El primer paso que debe tomar es la regresión lógica, y si no funciona bien, puede utilizar sus resultados como referencia para compararlos con otros algoritmos.
Luego prueba el árbol de decisión (el bosque aleatorio) para ver si puede mejorar significativamente el rendimiento de tu modelo. Incluso si no lo consideras el modelo final, puedes usar el bosque aleatorio para eliminar variables de ruido y hacer selecciones de características.
Si el número de características y las muestras de observación son particularmente grandes, entonces cuando los recursos y el tiempo son suficientes (esta premisa es importante), el uso de SVM es una opción.
Normalmente:
Los algoritmos son importantes, pero los buenos datos son mejores que los buenos algoritmos, y el diseño de excelentes características es muy beneficioso. Si tienes un conjunto de datos muy grande, es posible que el algoritmo que uses no tenga mucho impacto en el rendimiento de la clasificación (en este caso, puedes elegir según la velocidad y la facilidad de uso).