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.
- ¿Cuál es el problema con mi código de C ++ para SPOJ.com - Problema PALIN?
- Cómo crear un algoritmo con una hoja de cálculo
- ¿Debo aprender algoritmos y estructuras de datos de cada lenguaje de programación?
- ¿Cuál es la lista de MOOC que uno debe mirar en su licenciatura para aprender estructuras y algoritmos de datos C, C ++?
- Si estoy usando Java para la codificación competitiva, ¿tendré problemas de tiempo más tarde por parte de jueces en línea cuando me sumerja en estructuras de datos y algoritmos?
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.