¿Qué algoritmo usas para la clasificación binaria?

El teorema de no almuerzo gratis dice que no hay un mejor algoritmo que funcione mejor en todos los casos.

Sin almuerzo gratis en búsqueda y optimización – Wikipedia

Sin saber mucho más de lo que dijo en la pregunta, no tiene sentido dar una respuesta exacta. Tendrás que probar diferentes.

Habiendo dicho eso:

Manténgase alejado de los algoritmos de regresión que intentan ajustar una fórmula. Por ejemplo, manténgase alejado de la regresión lineal . Esto se debe a que LR es sensible a los valores atípicos, pero en el caso de la clasificación, los “valores atípicos” correctamente clasificados son casos que tienen una alta confianza.

Probablemente debería mantenerse alejado de Support Vector Machines (SVM), ya que son mejores para situaciones que tienen muchas características. Esto es especialmente cierto para las características dispersas donde las características tienen predominantemente un valor).

La regresión logística siempre es un buen recurso. Es simple y rápido, pero no funcionará bien si su problema es “complejo”.

Siempre pruebo un algoritmo Boosted Tree , ya que se ejecuta rápidamente, no tiene que escalar los datos, puede manejar datos multimodales, puede manejar un modelo moderadamente complejo y puede darle importancia variable (VI) . VI lo ayudará a determinar si sus características funcionan de la manera esperada. Es una buena idea hacer algunos gráficos de recuadro y bigote frente a la clase de las características más importantes para verificar la superposición de los datos. (Menos superposiciones es mejor). Tiendo a evitar Random Forest ya que tienden a ser lentos.

Las desventajas de los árboles: pueden ser inestables (pequeños cambios en las características o conjuntos de entrenamiento pueden proporcionarle modelos muy diferentes). Tienden a funcionar mal con características que son escasas.

Si sus datos son “desiguales”, entonces debe romper las armas pesadas y probar una red neuronal / aprendizaje profundo . Puede modelar relaciones sutiles entre los datos y las características. Pero lleva mucho tiempo y vas a ajustar mucho los hiperparámetros.

Con 250 ejemplos por función, su conjunto de entrenamiento puede ser demasiado pequeño (depende de lo bien estratificado que esté o si hay mucha (casi) redundancia). Probablemente quiera usar alguna validación cruzada para que sus datos vayan más lejos. O consiga más datos. Usar una regularización es probablemente una buena idea para evitar el sobreajuste.

Si sus datos no están bien equilibrados entre las dos clases, es probable que tenga otros problemas.

Es posible que deba ampliar su conjunto de funciones. Sintetizar nuevas características de los 40 existentes de manera inteligente e interesante podría mejorar su modelo.

Por supuesto, no olvides tener un conjunto de espera para la validación.

Verifique también si hay datos mal etiquetados.

Primero intente la regresión logística, luego vaya a la máquina de vectores de soporte (si no está satisfecho con los resultados).

Puede crear modelos rápidamente utilizando (ambos son robustos para diferentes tipos de características y valores faltantes).

  1. GBM @ 3.2.3.3.5. sklearn.ensemble.GradientBoostingClassifier – documentación de scikit-learn 0.15.2
  2. Bosque aleatorio @http: //scikit-learn.org/stable/m…

Mis favoritos:

  • xgboost
  • lightGBM
  • bosque al azar
  • árboles extra
  • bosque codicioso regularizado
  • Redes neuronales
  • Regresión logística
  • k-NN