¿Cuáles son las ventajas de los diferentes algoritmos de clasificación?

Hay una serie de dimensiones que puede observar para darle una idea de lo que será un algoritmo razonable para comenzar, a saber:

  • Número de ejemplos de entrenamiento.
  • Dimensionalidad del espacio de características
  • ¿Espero que el problema sea linealmente separable?
  • ¿Las características son independientes?
  • ¿Se espera que las características dependan linealmente de la variable objetivo? * EDITAR: vea mi comentario sobre lo que quiero decir con esto
  • ¿Se espera que el sobreajuste sea un problema?
  • ¿Cuáles son los requisitos del sistema en términos de velocidad / rendimiento / uso de memoria …?

Esta lista puede parecer un poco desalentadora porque hay muchos problemas que no son fáciles de responder. Sin embargo, la buena noticia es que, como muchos problemas en la vida, puede abordar esta pregunta siguiendo el principio de la Navaja de Occam: use el algoritmo menos complicado que pueda satisfacer sus necesidades y solo busque algo más complicado si es estrictamente necesario.

Regresión logística

Como regla general, recomendaría comenzar con Regresión logística. La regresión logística es un algoritmo de clasificación bastante bien comportado que se puede entrenar siempre que espere que sus características sean aproximadamente lineales y que el problema sea linealmente separable. Puede realizar algunas funciones de ingeniería para convertir la mayoría de las características no lineales en lineales con bastante facilidad. También es bastante robusto al ruido y puede evitar el sobreajuste e incluso hacer la selección de funciones utilizando la regularización l2 o l1. La regresión logística también se puede usar en escenarios de Big Data, ya que es bastante eficiente y se puede distribuir utilizando, por ejemplo, ADMM (ver logreg). Una ventaja final de LR es que la salida puede interpretarse como una probabilidad. Esto es algo que viene como un buen efecto secundario, ya que puede usarlo, por ejemplo, para clasificar en lugar de clasificar.

Incluso en el caso de que no espere que la Regresión logística funcione al 100%, hágase un favor y ejecute un LR simple regularizado con l2 para obtener una línea de base antes de comenzar a utilizar enfoques “más sofisticados”.

Bien, ahora que ha establecido su línea base con Regresión logística, ¿cuál debería ser su próximo paso? Básicamente, recomendaría dos direcciones posibles: (1) SVM o (2) Conjuntos de árbol. Si no supiera nada sobre su problema, definitivamente elegiría (2), pero comenzaré describiendo por qué los SVM podrían ser algo que valga la pena considerar.

Máquinas de vectores de soporte

Las máquinas de vectores de soporte (SVM) utilizan una función de pérdida (Bisagra) diferente de LR. También se interpretan de manera diferente (margen máximo). Sin embargo, en la práctica, un SVM con un núcleo lineal no es muy diferente de una regresión logística (si tiene curiosidad, puede ver cómo Andrew Ng deriva los SVM de la regresión logística en su curso Coursera Machine Learning). La razón principal por la que desearía usar un SVM en lugar de una Regresión logística es porque su problema podría no ser separable linealmente. En ese caso, tendrá que usar un SVM con un núcleo no lineal (por ejemplo, RBF). La verdad es que una regresión logística también se puede usar con un kernel diferente, pero en ese punto puede que sea mejor optar por SVM por razones prácticas. Otra razón relacionada para usar SVM es si se encuentra en un espacio altamente dimensional. Por ejemplo, se ha informado que las SVM funcionan mejor para la clasificación de texto.

Desafortunadamente, el principal inconveniente de los SVM es que pueden ser dolorosamente ineficientes para entrenar. Por lo tanto, no los recomendaría para ningún problema en el que tenga muchos ejemplos de capacitación. De hecho, iría aún más lejos y diría que no recomendaría SVM para la mayoría de las aplicaciones de “escala industrial”. Cualquier cosa más allá de un problema de juguete / laboratorio podría abordarse mejor con un algoritmo diferente.

Conjuntos de árboles

Esto me lleva a la tercera familia de algoritmos: Conjuntos de árboles. Básicamente, esto cubre dos algoritmos distintos: bosques aleatorios (algoritmo) y árboles potenciados por gradientes. Más adelante hablaré sobre las diferencias, pero por ahora permítanme tratarlas como una con el fin de compararlas con la Regresión logística.

Los conjuntos de árboles tienen diferentes ventajas sobre LR. Una ventaja principal es que no esperan características lineales o incluso características que interactúen linealmente. Algo que no mencioné en LR es que apenas puede manejar características categóricas (binarias). Los Conjuntos de árboles, porque no son más que un montón de árboles de decisión combinados, pueden manejar esto muy bien. La otra ventaja principal es que, debido a cómo se construyen (usando embolsado o refuerzo), estos algoritmos manejan muy bien espacios de alta dimensión, así como una gran cantidad de ejemplos de entrenamiento.

En cuanto a la diferencia entre Random Forests (RF) y Gradient Boosted Decision Trees (GBDT), no entraré en muchos detalles, pero una forma fácil de entenderlo es que los GBDT generalmente funcionan mejor, pero son más difíciles de acertar . Más concretamente, los GBDT tienen más hiperparámetros para sintonizar y también son más propensos al sobreajuste. Los RF casi pueden funcionar “fuera de la caja” y esa es una de las razones por las que son muy populares.

Aprendizaje profundo

Por último, pero no menos importante, esta respuesta no estaría completa sin al menos una pequeña referencia a Deep Learning. Definitivamente no recomendaría este enfoque como una técnica de propósito general para la clasificación. Pero, probablemente haya escuchado qué tan bien funcionan estos métodos en algunos casos, como la clasificación de imágenes. Si ha seguido los pasos anteriores y todavía siente que puede sacar algo de su problema, es posible que desee utilizar un enfoque de aprendizaje profundo. La verdad es que si usa una implementación de código abierto como Theano, puede tener una idea de cómo algunos de estos enfoques funcionan en su conjunto de datos con bastante rapidez.

Resumen

Entonces, recapitulando, comience con algo simple como Regresión logística para establecer una línea base y solo hacerla más complicada si es necesario. En ese punto, los conjuntos de árboles, y en particular los Bosques aleatorios, ya que son fáciles de sintonizar, podrían ser el camino correcto. Si cree que aún hay margen de mejora, pruebe GBDT o sea aún más elegante y aprenda Deep Learning.

También puedes echar un vistazo a las competiciones de Kaggle. Si busca la palabra clave “clasificación” y selecciona las que están completas, tendrá una buena idea de lo que la gente solía ganar en las competiciones que podrían ser similares a su problema actual. En ese punto, probablemente se dará cuenta de que usar un conjunto siempre mejorará las cosas. El único problema con los conjuntos, por supuesto, es que requieren mantener todos los métodos independientes trabajando en paralelo. Ese podría ser tu último paso para ponerte tan elegante como sea posible.

Regresión logística

  • Debe existir una fuerte correlación en los datos entre x e y. Si no hay una alta correlación entre las variables observadas y predichas, entonces el modelo LR puede agregar poco valor predictivo.

Imagen de: Regresión logística simple

Bayes ingenuos

  • Debes entrenar un conjunto de entrenamiento grande para usar NB bien. Esto le permitiría asumir mejor que las muestras son “independientes” entre sí.

Consultado de: 1.7. Bayes ingenuos

Árboles de decisiones

  • Puede intentar ajustar un árbol realmente complejo a los datos, lo que lleva a un sobreajuste
  • Su precisión depende mucho de los datos presentados. Por ejemplo, el árbol puede estar sesgado hacia una clase específica si ocurre mucho, o “confundirse” cuando se trata de ajustar ciertas reglas inferidas de los datos.

Imagen y consulta de: 1.8. Árboles de decisión

Máquinas de vectores soporte

  • Si un límite de decisión claro no está presente en los datos originales, entonces este método podría no funcionar bien. El uso del método kernel puede intentar agrupar puntos de datos de la misma clase, pero esto depende de los datos originales.


(Intentar agrupar datos para ajustarlos a un modelo menos complejo)
Imagen de: Máquinas de vectores de soporte (SVM)

Se deben abordar algunos criterios importantes:

¿Requiere que las variables se distribuyan normalmente?
¿Sufre un problema de multicolinealidad?
¿Lo hace tan bien con variables categóricas como variables continuas?
¿Calcula CI sin CV?
¿Conduce la selección de variables sin paso a paso?
¿Se aplica a datos dispersos?

Aquí está la comparación:

Regresión logística: no requiere distribución, funciona bien con pocas categorías de variables categóricas, calcula la distribución logística, es bueno para pocas categorías de variables, es fácil de interpretar, calcula CI, sufre multicolinealidad

Árboles de decisión: ningún requisito de distribución, heurístico, bueno para variables de pocas categorías, no sufre multicolinealidad (al elegir una de ellas)

NB: generalmente no hay requisitos, es bueno para algunas categorías de variables, calcula la multiplicación de distribuciones independientes, sufre multicolinealidad

LDA (análisis discriminante lineal, no asignación de Dirichlet latente): requiere variables normales, no buenas para pocas categorías, calcula la adición de distribución multivariante, calcula CI, sufre multicolinealidad

SVM: sin requisito de distribución, pérdida de bisagra computacional, selección flexible de núcleos para correlación no lineal, no sufre multicolinealidad, difícil de interpretar

Lazo : sin requisito de distribución, calcular pérdida de L1, selección de variables, sufrir multicolinealidad

Cresta: sin requerimiento de distribución, calcular pérdida de L2, sin selección de variables, no sufrir multicolinealidad

Métodos de ensacado, refuerzo, conjunto (RF, Ada, etc.): generalmente superan el algoritmo único mencionado anteriormente.

Sobre todo, la regresión logística es sigue siendo el más utilizado por sus buenas características, pero si las variables se distribuyen normalmente y todas las variables categóricas tienen más de 5 categorías, puede sorprenderse con el rendimiento de LDA , y si las correlaciones son en su mayoría no lineales, no se puede superar una buena SVM
y si la escasez y la multicolinealidad son una preocupación, recomendaría Lazo Adaptativo con Cresta (pesos) + Lazo, esto sería suficiente para la mayoría de los escenarios sin mucha afinación.

Y al final, si necesita un modelo ajustado, busque métodos de conjunto.

PD: Solo vea la subpregunta, con 10000 instancias y más de 100000 características, la respuesta rápida será Lazo.

Ya había excelentes respuestas dadas por Edwin Chen y Xavier Amatriain. Si tuviera algo que agregar, sería la capacidad de aprendizaje en línea, que es especialmente útil para el aprendizaje fuera de núcleo: trabajar con datos que no caben en la memoria.

Por ejemplo, los clasificadores basados ​​en el descenso de gradiente estocástico son excelentes para el aprendizaje en línea, donde puede actualizar su clasificador sobre la marcha cuando llegan nuevos datos (por ejemplo, utilizando perceptrones, ADALINE o mejor: regresión logística). Pero también son útiles si desea procesar grandes conjuntos de datos leyéndolos de forma incremental de disco por instancia o en mini lotes.

También está la discusión “aprendizaje perezoso versus ansioso”:
Consideremos el clasificador vecino k-más cercano como un ejemplo popular de estudiantes flojos. Pueden ser útiles para conjuntos de datos de baja dimensión de medianos a grandes en los que desea clasificar algunas muestras sin un costoso paso de aprendizaje. Sin embargo, la desventaja es que puede volverse computacionalmente costoso si desea clasificar una gran cantidad de instancias (ya que no tiene una función simple como en la regresión logística) y tiene que mantener todos sus datos de entrenamiento para clasificar nuevas muestras .

Técnicas de aprendizaje basadas en instancias (por ejemplo, vecino más cercano)

  • Ocupa mucha memoria para ejecutar (almacenar todas las instancias)
  • Funciona bien para una pequeña cantidad de dimensiones, pero no para una gran cantidad de dimensiones

Árboles de decisión y algoritmos de divide y vencerás

  • Puede sobreajustar datos
  • Puede atascarse en los mínimos locales, por lo que necesita conjuntos para ayudar a reducir la varianza

SVM

  • Elegir / encontrar el núcleo correcto puede ser un desafío
  • Los resultados / resultados son incomprensibles
  • No hay una forma estandarizada para tratar problemas de varias clases; fundamentalmente un clasificador binario

Redes neuronales

  • Elegir la topología correcta es difícil
  • La capacitación lleva mucho tiempo / requiere muchos datos
  • La producción / problemas son incomprensibles

Regresión logística

  • Poder expresivo limitado
  • Fundamentalmente un clasificador binario
  • Difícil de hacer incremental

Bayes ingenuos

  • La representación muy simple no permite hipótesis ricas
  • Asumir la independencia de los atributos es demasiado restrictivo (aunque, vea el artículo de Domingos sobre por qué no es tan malo)

Redes Bayes / Modelos gráficos

  • Determinar la topología de la dependencia es difícil

Los 2 métodos de alto rendimiento generalmente aceptados son SVM, bosques aleatorios y árboles potenciados.

ver estas referencias más antiguas
Una comparación empírica de algoritmos de aprendizaje supervisados
Página en cornell.edu

Una comparación empírica de algoritmos de aprendizaje supervisados ​​utilizando diferentes métricas de rendimiento
Página en niculescu-mizil.org

y la video conferencia
¿Qué método de aprendizaje supervisado funciona mejor para qué? Una comparación empírica de métodos y métricas de aprendizaje

Los métodos avanzados como Deep Learning ya están disponibles, pero probablemente sean bastante difíciles de usar para un novato. Una excepción serían las máquinas de factorización basadas en SVM (ver más abajo)

Muchos métodos modernos pueden formularse como problemas de regularización resolviendo optimizaciones convexas con alguna función de pérdida. Entonces, la Regresión logística, SVM, L1-SVM, Impulso, etc., pueden verse como variaciones del mismo método y, en estos días, generalmente se implementan con un solucionador común.

Dudaría en distinguir entre la regresión logística y una SVM como métodos diferentes para fines de clasificación. Muchos paquetes, como LibSVM, proporcionan una variedad de métodos y se pueden aplicar al mismo conjunto de datos para comparar.

MultiClass o MultiLabel:
Los SVM son muy buenos en la clasificación básica y multiclase, y los bosques aleatorios son probablemente mejores para la clasificación de múltiples capas.

Hay implementaciones SVM específicas para problemas de Multiclass (Cramer & Singer algo) y Structural (SvmLight), e incluso SVM MultiLabel (M3L). Estos son un poco esotéricos, pero es importante poder resolver más que solo problemas de clasificación binaria.

Aún así, no es trivial modificar un SVM para problemas de múltiples capas, mientras que los bosques aleatorios se adaptan fácilmente a esto.

ver:
Aprendizaje de etiquetas múltiples con millones de etiquetas: frases recomendadas de ofertas de anunciantes para páginas web
Página en microsoft.com

Pesos de instancia:
A veces podemos tener más información que solo etiquetas; podemos tener pesos en las instancias. Aquí, hay una implementación de código abierto de LibLinear que proporciona ponderaciones de instancias.

Si está utilizando Scikit learn, uno puede usar ponderaciones de instancia (muestra) con bosques aleatorios (pero no el SVM)

Información incompleta:
Los métodos de aprendizaje automático funcionan muy mal cuando no tenemos suficientes etiquetas para nuestros datos, o las etiquetas están equivocadas.

Los SVM incluso se pueden aplicar en situaciones en las que las etiquetas se conocen solo parcial o débilmente, pero tenemos información adicional sobre las estadísticas globales

Relajaciones convexas del aprendizaje transductivo

Y esto funciona particularmente bien para la clasificación de texto al elegir un conjunto de bases extendido, como usar un word2vec o un guante.

Kernels y sus características de naturaleza:
El uso de un SVM o cualquier método de kernel requiere elegir un regularizador, y tal vez un kernel. En general, no debe usar un núcleo RBF a menos que el problema subyacente sea como un problema de procesamiento de señal:

Kernels Parte 1: ¿Qué es un Kernel RBF? De Verdad?

Es decir, está buscando algo como una solución fluida

Una extensión reciente de los núcleos de SVM son las máquinas de factorización (FM), y aunque este método generalmente se considera como un sistema de recomendación, también se puede usar para la clasificación de SVM.

Los FM serían útiles para detectar correlaciones muy débiles entre características discretas y dispersas

Regularización:
Los métodos más modernos incluyen algunos regularizadores básicos como L1, L2 o alguna combinación de los 2 (red elástica)

¿Por qué elegir uno, digamos, un SVM L1 sobre un SVM L2? El L1 SVM supuso que las características son muy, muy escasas. Por ejemplo, he usado un SVM L1 para reducir un modelo con características de 50K a unos pocos cientos. L2 SVM puede capturar modelos que requieren muchas características pequeñas

Rendimiento numérico:
Los SVM, como muchos métodos convexos, se han optimizado durante los últimos 15 años y en la actualidad se escalan muy bien … Usualmente uso SVM lineales para resolver problemas de clasificación con decenas de millones de instancias y decir medio millón de características. Puedo hacer esto en mi computadora portátil. Estoy un poco perplejo por qué otros afirman que son difíciles de entrenar (a menos que estén tratando de usar un núcleo no lineal / RBF y tengan una implementación deficiente) Y en mi experiencia en usarlos durante más de 15 años en producción, son muy fáciles entrenar a gran escala para la mayoría de las aplicaciones comerciales. Son métodos convexos con solo 1-2 parámetros ajustables.

He entrenado rutinariamente SVM lineales con casi 10 millones de instancias y 1 millón de funciones en mi computadora portátil casi en tiempo real.

Para más de 10 instancias y características de 1M, la capacitación se puede realizar en paralelo utilizando el descenso de coordenadas estocástico sin bloqueo, o en modo en línea utilizando. Las implementaciones modernas de código abierto incluyen libsvm / liblinear, Graphlab / Dato y Vowpal Wabbit. Incluso hay versiones aceleradas de GPU como BidMach

Página en gputechconf.com

y hay memoria distribuida, implementaciones paralelas que se ejecutan en hasta 1000 nodos.

Interpretación:
Los SVM lineales son muy fáciles de interpretar; es el caso no lineal el que es un poco complicado. Aunque cualquier problema no lineal requerirá un poco de trabajo para interpretarlo, necesitaría encontrar un conjunto de bases compactas para representar las no linealidades. Diablos, si conoce la base establecida a priori, puede proyectar sus datos sobre esta base y ejecutar un SVM lineal y el problema es trivial.


Para obtener más datos divertidos y respuestas increíbles, consulte mi canal de YouTube https://www.youtube.com/channel/

y sígueme en Twitter https://twitter.com/CalcCon

Aquí hay algunas pautas generales que he encontrado a lo largo de los años.

¿Qué tan grande es tu set de entrenamiento?

Si su conjunto de entrenamiento es pequeño, los clasificadores de alto sesgo / baja varianza (por ejemplo, Naive Bayes) tienen una ventaja sobre los clasificadores de bajo sesgo / alta varianza (por ejemplo, kNN o regresión logística), ya que este último se sobreajustará. Pero los clasificadores de bajo sesgo / alta varianza comienzan a ganar a medida que crece su conjunto de entrenamiento (tienen un error asintótico más bajo), ya que los clasificadores de alto sesgo no son lo suficientemente potentes como para proporcionar modelos precisos.

También puede pensar en esto como un modelo generativo versus una distinción de modelo discriminativo.

Ventajas de algunos algoritmos particulares

Ventajas de Naive Bayes : Súper simple, solo estás haciendo un montón de cuentas. Si el supuesto de independencia condicional NB se cumple, un clasificador Naive Bayes convergerá más rápido que los modelos discriminativos como la regresión logística, por lo que necesita menos datos de entrenamiento. E incluso si la suposición NB no se cumple, un clasificador NB a menudo funciona sorprendentemente bien en la práctica. Una buena apuesta si desea hacer algún tipo de aprendizaje semi-supervisado, o si desea algo vergonzosamente simple que funcione bastante bien.

Ventajas de la regresión logística : muchas formas de regularizar su modelo, y no tiene que preocuparse tanto por la correlación de sus características, como lo hace en Naive Bayes. También tiene una buena interpretación probabilística, a diferencia de los árboles de decisión o SVM, y puede actualizar fácilmente su modelo para recibir nuevos datos (utilizando un método de descenso de gradiente en línea), nuevamente a diferencia de los árboles de decisión o SVM. Úselo si desea un marco probabilístico (por ejemplo, para ajustar fácilmente los umbrales de clasificación, para decir cuándo no está seguro o para obtener intervalos de confianza) o si espera recibir más datos de capacitación en el futuro que desea poder incorporar rápidamente a su modelo.

Ventajas de los árboles de decisión : fácil de interpretar y explicar (para algunas personas, no estoy seguro de caer en este campamento). No paramétrico, por lo que no tiene que preocuparse por los valores atípicos o si los datos son linealmente separables (por ejemplo, los árboles de decisión se ocupan fácilmente de los casos en los que tiene clase A en el extremo inferior de alguna característica x, clase B en el medio -rango de la característica x, y A nuevamente en el extremo superior). Su principal desventaja es que se sobreajustan fácilmente, pero ahí es donde entran en juego métodos conjuntos como bosques aleatorios (o árboles reforzados). Además, los bosques aleatorios a menudo son los ganadores de muchos problemas en la clasificación (por lo general, un poco por delante de SVM, creo) son rápidos y escalables, y no tiene que preocuparse por ajustar un montón de parámetros como lo hace con SVM, por lo que parecen ser bastante populares en estos días.

Ventajas de los SVM : alta precisión, buenas garantías teóricas con respecto al sobreajuste, y con un núcleo apropiado pueden funcionar bien incluso si sus datos no son linealmente separables en el espacio de características base. Especialmente popular en problemas de clasificación de texto donde los espacios de muy alta dimensión son la norma. Sin embargo, requiere mucha memoria y es un poco molesto correr y sintonizar, así que creo que los bosques aleatorios están comenzando a robar la corona.

Para volver a la cuestión particular de la regresión logística frente a los árboles de decisión (que supongo que es una cuestión de regresión logística frente a los bosques aleatorios) y resumir un poco: ambos son rápidos y escalables, los bosques aleatorios tienden a vencer a la logística regresión en términos de precisión, pero la regresión logística se puede actualizar en línea y le brinda probabilidades útiles. Y dado que está en Square (no está muy seguro de qué es un científico de inferencia, aparte de la encarnación de la diversión) y posiblemente esté trabajando en la detección de fraudes: tener probabilidades asociadas a cada clasificación podría ser útil si desea ajustar rápidamente los umbrales para cambiar el valor falso tasas positivas / falsas negativas, e independientemente del algoritmo que elija, si sus clases están muy desequilibradas (como suele ocurrir con el fraude), probablemente debería volver a muestrear las clases o ajustar sus métricas de error para que las clases sean más iguales.

Pero…

Sin embargo, recuerde que los mejores datos a menudo superan a los mejores algoritmos, y el diseño de buenas características es muy útil. Y si tiene un gran conjunto de datos, su elección del algoritmo de clasificación podría no importar tanto en términos de rendimiento de clasificación (por lo tanto, elija su algoritmo en función de la velocidad o la facilidad de uso).

Y si realmente le importa la precisión, definitivamente debería probar varios clasificadores diferentes y seleccionar el mejor mediante validación cruzada. O, para tomar una lección del Premio Netflix y la Tierra Media, ¡simplemente use un método de conjunto para elegirlos a todos!

No se mencionó en la pregunta, pero los Bosques Aleatorios casi siempre deberían considerarse y al menos intentarse también. Últimamente, he visto SVM y Regresión logística elegidos por muchos de mis conocidos involucrados en el aprendizaje automático (supongo que esto tiene mucho que ver con que los bosques aleatorios no se mencionen en la excelente clase de Machine Learning de Andrew Ng en Coursera) Pero para mí esto es un error.

Bosques al azar:
1. Casi siempre tienen un menor error de clasificación y mejores puntuaciones f que los árboles de decisión.
2. Casi siempre funcionan tan bien o mejor que las SVM, pero son mucho más fáciles de entender para los humanos.
3. Trate realmente bien con conjuntos de datos desiguales que tienen variables faltantes.
4. Le da una idea realmente buena de qué características de su conjunto de datos son las más importantes de forma gratuita.
5. Generalmente entrena más rápido que los SVM (aunque esto obviamente depende de su implementación).

Más información en bosques aleatorios – descripción de la clasificación

Hoja de trucos de Machine Learning (para scikit-learn)

En general, en el momento en que tiene una mayor cantidad de características en comparación con la cantidad de instancias, las garantías de aprendizaje PAC estándar fallan. (vea el lema 25.1.2 en esta página en wisc.edu). Sin embargo, tales casos ocurren con mayor frecuencia que no. En la práctica, muchos de estos problemas siguen siendo ‘aprendibles’

Sin embargo, cuando esto sucede, deben tenerse en cuenta dos conceptos: # 1: dimensiones VC (dimensiones Vapnik Chervonenkis) y
# 2: la navaja de Occam debe tenerse en cuenta.

Para comprender la dimensión VC, recuerde que la clasificación se basa en última instancia en la estimación de un límite de decisión efectivo. Ahora, suponga que tiene 3 puntos etiquetados de manera diferente en un espacio tridimensional. No importa cómo los haya etiquetado, podrá separar estos puntos usando una línea. Entonces, el modelo más simple que uno puede usar es una línea.


¡Pero si tenía más de 3, puede encontrar un etiquetado que no puede ceder a la clasificación con una simple línea!
Por lo tanto, la dimensión VC de un espacio ‘n’ dimensional es ‘n + 1’.

El principio de la navaja de Occam establece que simplemente el algoritmo que puede producir la mejor compresión posible de los datos también puede proporcionar el mejor aprendizaje posible. Para comprender mejor los problemas, consulte el artículo: Representación geométrica de datos de alta dimensión y bajo tamaño de muestra: Revista de la Royal Statistical Society: Serie B (Metodología estadística)

En otras palabras, si tenía un espacio de 100,000 características y solo 10,000 muestras, solo necesita un clasificador lineal. Un árbol o una red profunda serían propensos a sobreajustar.

Un clasificador de SVM de línea debería ser un buen punto de partida. Las personas han analizado este problema y han encontrado otros clasificadores, como la discriminación ponderada por distancia (DWD), que dicen ser mejores. Si esto no es satisfactorio, se puede aplicar una combinación de reducción de dimensionalidad y un modelo más complejo. Pero las posibilidades de sobreajuste son mayores en el momento en que va a un modelo más complejo.

Espero que esto ayude.

Aquí hay algunas desventajas que vi al trabajar con estos algoritmos. (Hay una versión mejorada de estos algoritmos, que abordan muchas de estas deficiencias)

Árboles de decisión: difícil de ejecutar en valores numéricos. Requiere conversión a valores nominales. El sobreajuste es un problema muy común.

SVM: Puede que no parezca muy efectivo sin usar kernel. Usar kernel lo hace computacionalmente costoso, por lo tanto lento.

Regresión logística: tiene muy pocas desventajas. Probablemente esa sea la razón por la que se usa tanto. La falta de resultados de referencia podría ser la única desventaja aquí.

Bayes ingenuos: funciona de forma extraña en clases desequilibradas. Atributos nominales solamente. Hace una suposición fundamental sobre la aparición de palabras, lo que podría no ser cierto en su mayoría.

Es difícil encontrar el mejor modelo universal para la clasificación. Si le preocupa la precisión de la clasificación, es mejor probar un puñado de clasificadores y elegir uno óptimo, pero aún así puedo decir que las Redes Neuronales Artificiales son comparativamente buenas si tiene poco conocimiento sobre su conjunto de datos. La red procesa los registros en los datos de entrenamiento a la vez, utilizando los pesos y las funciones en las capas ocultas y luego compara las salidas resultantes con las salidas deseadas. Luego, los errores se propagan a través del sistema, lo que hace que el sistema ajuste los pesos para la aplicación al siguiente registro. Este proceso ocurre de manera iterativa a medida que los pesos se ajustan finamente continuamente. Durante el entrenamiento de una red, el mismo conjunto de datos se procesa muchas veces a medida que los pesos de conexión se refinan continuamente. En algunos casos, la red no converge si no hay suficiente cantidad de datos de entrenamiento. Cuando los datos de entrenamiento son demasiado pequeños por debajo de un umbral, la tarea de aprendizaje se vuelve incompleta.

Te diré un enfoque simple.

  • Primero, la limpieza de los datos es lo más importante si tenemos tantas características presentes en nuestro conjunto de datos. Se puede hacer de la siguiente manera.
  • Encontrar las características constantes (Dev estándar = 0) y eliminarlas.
  • Encontrar las características que tienen correlaciones y eliminarlas (por lo general, tomamos el factor máximo (Alpha = 09995)
  • Finalmente, eliminamos todas las características innecesarias que no serán útiles para construir nuestro modelo.
  • A continuación, estará saturado de características esenciales. A partir de la pregunta, se informa que tenemos menos instancias (10000) y más características (100000).
  • Entonces, aquí viene el problema principal llamado sobreajuste. Cualquiera que sea la clasificación Algo que aplique (SVM, árboles de decisión, aleatorio para Etc.), podría causar sobreajuste.
  • Clasificación Algo intenta memorizar la salida de la variable de destino con las características respectivas (valores de entrada) en lugar de generalizar la salida, lo que finalmente provoca un sobreajuste.
  • Aquí es mejor que elija dos opciones.
    • Algoritmos de regularización como Regresión de cresta, LASSO y LARS.
    • Otro y último Algo improvisado es XG Boosting Algorithm, que también es útil para casos de sobreajuste.
  • Pruébelos y si tiene algún problema, pregunte aquí. Discutamos.
  • Gracias por A2A.

    El documento “¿Necesitamos cientos de clasificadores para resolver problemas de clasificación del mundo real?” por Fernández-Delgado M. et al. (pdf en jmlr.org) debería responder a su pregunta con una gran cantidad de detalles.

    Pero aquí hay un tl; dr : si desea un buen rendimiento, siempre aplique bosques aleatorios y SVM con núcleos gaussianos primero.

    • Los árboles de decisión son rápidos de entrenar y fáciles de evaluar e interrumpir.
    • La máquina de vectores de soporte ofrece una buena precisión, poder de flexibilidad de los núcleos.
    • Las redes neuronales son lentas para converger y difíciles de establecer parámetros, pero si se hace con cuidado funciona bien
    • Los clasificadores bayesianos son fáciles de entender.

    Actualmente estoy trabajando en este tipo de algoritmos para la clasificación de newswire en aproximadamente 10 categorías. Comparo kNN, modifiqué el algoritmo de Naive Bayes y Rocchio. Quería algoritmos muy simples ya que mi conjunto de datos es bastante ilimitado y porque SVM, por ejemplo, parece difícil de implementar.

    – kNN debería evitarse en mi caso ya que la evaluación es bastante pesada si su conjunto de datos de entrenamiento contiene varios miles de elementos; aunque da muy buenos resultados.

    – Naive Bayes es muy simple y rápido de evaluar, pero tuve que modificarlo para manejar clases desequilibradas.

    – Rocchio parece muy ingenuo pero funciona sorprendentemente bien y es muy eficiente.

    Finalmente, uso una combinación de Naive Bayes y Rocchio para obtener precisión sobre el mismo principio que el refuerzo (mezcla lineal obtenida por validación cruzada). También puede usar EM en NB o Rocchio, ya que la formulación es muy simple en estos casos. Esto podria ayudar.

    En general, diría que esto depende mucho de los datos. Las mejores técnicas dependen de los datos y de la precisión / eficiencia que espera.

    El número de instancias no es un problema, el problema es el número de características. Dudo que todas las características sean igualmente importantes.

    Entonces, antes de la clasificación, haría un PCA primero para reducir las dimensiones.

    Luego, según el tipo de datos que tenga, utilice diferentes técnicas de clasificación. KNN si la diferencia de clase es grande, de lo contrario, intente LDA

    Una excepción: clasificar imágenes: necesita cambiar el tamaño de las imágenes a un tamaño razonable, luego usar una red neuronal convolucional.

    1. ¿Cuál es el problema comercial?

    lo que necesita hacer, la transparencia y la gobernanza, las necesidades regulatorias, los problemas de interpretación comercial y otros superarán las matemáticas en un negocio.

    2. Los datos determinan el resultado más que el algoritmo

    Si tiene muchos datos buenos, todos los algoritmos son buenos. La multicolinealidad es un problema menor con grandes conjuntos de datos.

    Los árboles de decisión y los algoritmos basados ​​en reglas son buenos porque puede comprender el modelo creado para clasificar, a diferencia de las redes neuronales.
    Support Vector Machines funciona muy bien en muchas circunstancias y funciona muy bien con grandes cantidades de datos.
    Las asociaciones como Apriori tienen un excelente rendimiento, debido a cómo se construye el algoritmo, y siempre alcanza la solución adecuada.
    El mecanismo ingenuo de Bayes es muy simple de entender, también tiene un alto rendimiento y también es fácil de implementar

    Hubo un proyecto europeo llamado StatLog que “comparó [d] y evaluó un rango de técnicas de clasificación, con una evaluación de sus méritos, desventajas y rango de aplicación [s]”. En 1994, publicaron un libro sobre los algoritmos que observaron y los resultados, y ahora está disponible de forma gratuita aquí:

    http://www.amsta.leeds.ac.uk/~ch

    D. Michie, DJ Spiegelhalter, CC Taylor (eds). Aprendizaje automático, clasificación neuronal y estadística