De hecho, tengo una lista de cosas que las personas que son nuevas en ML deben saber. Supongo que esto también se aplica a los ingenieros s / w. Aunque he detallado esto en mi blog – Machine Learning – qué es, qué no es – a continuación, una versión tl; dr-ed:
- No evite aprender las matemáticas detrás de los algoritmos. Hackear a un nivel superficial solo puede llevarte muy lejos.
- Los humanos pueden vencer tus algoritmos. No estoy seguro de por qué esto es una sorpresa para muchas personas, pero lo hace. En muchos casos, utiliza ML cuando la escala que puede manejar una computadora es más importante que la precisión que puede proporcionar un humano.
- Los patrones detectados por muchos algoritmos no pueden interpretarse convenientemente. No significa que no se pueda confiar en su uso. Las ANN y SVM caen en esta categoría, además de muchos otros ‘de alto rendimiento’. No te obsesiones con este aspecto.
- Utiliza las métricas correctas. Es posible que se proponga resolver algún problema del mundo real y, finalmente, puede sorprenderse (negativamente) por el rendimiento de un algoritmo que se vio bien en una prueba. Existe la posibilidad de que la métrica de evaluación informada por su herramienta no coincida con lo que intuitivamente quería resolver. Elija una métrica que concrete lo que quiere. La precisión no siempre es suficiente: piense en la puntuación F1, el levantamiento, el AUC, etc.
- Siempre tenga una línea de base. Use un modelo simple para informar sus primeros resultados; esto le indica qué tan difícil es el problema . La precisión del 97% puede ser buena para un problema, pero podría no ser un número tan bueno para otro problema; no lo sabrá hasta que tenga una línea de base.
- Siempre pruebe un algoritmo para evaluar su utilidad para su conjunto de datos. No asuma que funcionaría, porque “ellos” dicen que sí, o se ve bien en el papel. He tenido poderosos algoritmos que fallan en ciertos datos debido a peculiaridades muy específicas del conjunto de datos.
- Algunas ideas sobre las que debería leer son: el equilibrio de sesgo-varianza, el efecto de la dimensionalidad en los algoritmos y la práctica de la validación cruzada.
- Haga su encuesta de literatura (o evite dejar que su arrogancia se apodere de usted). ML es un campo que evoluciona muy rápidamente y muchas ideas y casos de uso se discuten en documentos. Por lo que sabes, tu problema ya ha sido resuelto por alguien más: aprovecha este hecho. En lugar de hacer algo subóptimo, pase un poco más de tiempo leyendo e implemente algo que sea robusto y óptimo o casi óptimo.
- Trabajar con datos es mucho trabajo sucio . No se deje llevar por los problemas de los juguetes ordenados y elegantes que le muestran varios cursos en línea. Los datos del mundo real son cualquier cosa menos elegantes y es probable que pase mucho tiempo limpiándolos, preprocesándolos, normalizándolos, buscando valores perdidos, etc. Si desea pasar a un trabajo orientado a ML, hable con personas sobre qué tipo de trabajo hacen a diario.
- Progresa incrementalmente. Ante un problema, no te encierres dentro de una habitación hasta que te acerques a un rendimiento del 100%. Al igual que en el software, piense en versiones: cree un modelo que funcione mejor que la línea de base en el primer intento, despliegue, regrese y haga un mejor modelo; enjuague y repita, hasta que su curva de aprendizaje (http://www.astroml.org/sklearn_t…) se estabilice. No te obsesiones con hacerlo bien en el primer intento.