Estudio de algoritmos de aprendizaje automático: profundidad de comprensión frente a número de algoritmos

13

Recientemente me introdujeron en el campo de la Ciencia de Datos (han pasado 6 meses aproximadamente), y Ii comenzó el viaje con el Curso de Aprendizaje Automático de Andrew Ng y la publicación que comenzó a trabajar en la Especialización en Ciencia de Datos de JHU.

En el frente de la aplicación práctica, he estado trabajando en la construcción de un modelo predictivo que predeciría el desgaste. Hasta ahora he usado glm, bayesglm, rf en un esfuerzo por aprender y aplicar estos métodos, pero encuentro mucha brecha en mi comprensión de estos algoritmos.

Mi dilema básico es:

¿Debería centrarme más en aprender las complejidades de algunos algoritmos o debería utilizar el enfoque de conocer muchos de ellos cuando sea necesario?

Guíame en la dirección correcta, quizás sugiriendo libros o artículos o cualquier cosa que creas que podría ayudar.

Le agradecería que respondiera con la idea de guiar a alguien que acaba de comenzar su carrera en el campo de la ciencia de datos y quiere ser una persona que resuelva problemas prácticos para el mundo de los negocios.

Leería (tantos como sea posible) los recursos (libros, artículos) sugeridos en esta publicación y proporcionaría una retroalimentación personal sobre los pros y los contras de la misma para hacer de esta una publicación útil para las personas que se encuentran con una pregunta similar en el futuro, y creo que sería genial si las personas que sugieren estos libros pueden hacer lo mismo.

Vinay Tiwari
fuente

Respuestas:

9

Recomendaría limitarse a algunos algoritmos probados y confiables. No recomendaría Elementos de aprendizaje estadístico (como primer libro). Es demasiado teórico, dirigido a estudiantes de posgrado, con ejercicios que preguntan cómo probar X o Y ... Creo que ISL es más apropiado, con consejos más prácticos (en cualquier caso, ambos libros son gratuitos como descargas en pdf).

Además de las estadísticas, me aseguraría de que se sienta cómodo con el diseño experimental / pruebas AB y con Business Intelligence / Visualization.

seanv507
fuente
Le agradecería si pudiera sugerir algunos Algoritmos que uno no se PIERDA, o mejor decir que son los más útiles para resolver problemas prácticos de negocios. Si es posible hablar de las mejores maneras de aprender de ellos (libros en particular, los artículos de autoayuda o puede ser de ensayo y error)
2
Yo diría que casi todos los algos en ISL: regresión lineal, regresión logística, métodos basados ​​en árboles, SVM; Agrupación y reducción de dimensiones, p. Ej. PCA. Revisa el libro y mira el curso en línea correspondiente ( online.stanford.edu/course/statistical-learning-winter-2014 , ¿tal vez en youtube?).
seanv507
Gran recurso, bueno tener un libro y videos sobre el mismo por los propios autores. Muchas gracias por el enlace, no estaba al tanto de esto.
Vinay Tiwari
Lo siento, pero este es un consejo horrible . Un científico de datos nunca debe confiar en algunos algoritmos. Debe confiar en sus propias habilidades de datos y análisis y no hay dos problemas de datos iguales. Algunos se resolverán con X, otro con Y. Simplemente no es razonable esperar que el universo de datos se adapte a sus pocos algoritmos. Sea curioso, sea flexible, esté bien informado y use la herramienta adecuada para el trabajo, no solo las que conoce.
I_Play_With_Data
5

Podría decirse que alguien que se autodenomina científico de datos debería saber más sobre las complejidades de los algoritmos que utiliza, por ejemplo, lo que afecta la tasa de convergencia del algoritmo de puntuación de Fisher en GLM, que un estadístico común o de jardín, que podría estar contento de saber que el se encontrará una solución de máxima probabilidad (tal vez después de que hagan una taza de café). En cualquier caso, es importante comprender los conceptos generales de estadística y aprendizaje automático, además de familiarizarse con los métodos que utiliza: la teoría detrás de ellos, los supuestos que hacen, las comprobaciones de diagnóstico que debe realizar, cómo interpretar los resultados. Evita ser esta parodia .

Probablemente disfrutarías leyendo a Hastie et al. (2009), Los elementos del aprendizaje estadístico .

Scortchi - Restablece a Monica
fuente
Seguramente lo leeré! Realmente me gustó la última línea ... creo que el impulso y, a veces, la presión para obtener los resultados lo antes posible a menudo conduce a tales parodias. Y es igualmente importante evitar lo contrario de esto, en el que uno profundiza tanto en el aprendizaje que se vuelve inútil para los problemas del mundo real. Si bien crecer / aprender a veces es más importante saber qué NO hacer, muchas gracias por la orientación, espero ver más ideas que nos iluminen a mí y a otros en un viaje similar.
"lo que afecta la tasa de convergencia del algoritmo de puntuación de Fisher en GLM" - Supongo que perdió el 99% de los científicos de datos aquí.
@Momo: Bueno, "científico de datos" es uno de esos términos mal escritos que apenas ha ganado vigencia antes de comenzar a devaluarse.
Scortchi - Restablece a Monica el
2

Bueno, yo diría que conocer las complejidades de 1 o 2 algoritmos en detalle (como el funcionamiento interno de sus parámetros) es definitivamente mejor que saber cómo ejecutar un montón de ellos.

He estado en el área de análisis durante aproximadamente 11 años y soy un científico de datos durante 2.5 años y estoy hablando por experiencia. Por otro lado, definitivamente debe conocer otras cosas (algoritmos más recientes como aprendizaje profundo, SVM, XGboost, etc.) que podrían ser más aplicables a su problema en cuestión.

Creo que el curso del Dr. Andrew Ng incluye algunos detalles de algunos algoritmos y es un buen comienzo. Como otros han señalado, http://statweb.stanford.edu/~tibs/ElemStatLearn/ es un buen libro y tiene videos que lo acompañan.

Esta es mi opinión personal, los algoritmos que no debes perderte son: (Conócelos en detalle):

1) Regresión lineal múltiple 2) Regresión logística 3) Técnicas comunes de reducción de dimensionalidad como PCA 4) Agrupación de medios K 5) Regresión no lineal 6) Métodos de optimización: métodos de búsqueda basados ​​en gradientes, programación lineal y optimización discreta 7) Conceptos y algoritmos en ingeniería de características 8) Métodos simples de pronóstico de series temporales

Más algoritmos esotéricos:

1) Bosques aleatorios 2) SVM 3) aprendizaje profundo 4) Otros métodos de reducción de dimensionalidad como LDA 5) Otros métodos basados ​​en kernel 6) Algoritmos genéticos 7) XgBoost 8) Regresión dinámica 9) Métodos GARCH / ARCH 10) Modelado de ecuaciones estructurales 11) Métodos de Box Jenkins en pronósticos de series temporales 12) Teoría de la información: ganancia de información, ganancia mutua, etc.

ML_Passion
fuente
0

Había estado en una situación similar. Comencé con todos y cada uno de los algoritmos aquí (y con gran detalle).

ingrese la descripción de la imagen aquí

Sin embargo, pronto descubrí que la academia en aprendizaje automático / profundo se está moviendo muy rápido, y siempre está obteniendo algoritmos más rápidos / avanzados que superan en gran medida los algoritmos tradicionales en muchas aplicaciones del mundo real. . Por lo tanto, siempre es preferible actualizarse con las últimas tendencias. Sugiero (como normalmente lo hago yo mismo) obtener una suscripción de una buena fuente de noticias (como Medium) o una increíble e innovadora revista de investigación y seguirla. Muchas veces los algoritmos sorprendentes provienen de trabajos de investigación que abordan un problema particular (probablemente similar al suyo).

El punto es que, para ser un buen científico de datos (o un ingeniero de ML), necesita una combinación de profundidad y anchura.Personalmente, me resulta útil conocer muchos algoritmos en su superficie (simplemente lo que hacen, cuándo se usan, pros y contras). Vuelvo a ellos cuando siento ( solo siento ) que podrían ayudarme a resolver un problema en particular. Los leo en detalle y veo si encajan bien. Podrían, o podrían no ser. Pero pensar en los detalles es esencial para garantizar que no se pierda un enfoque sorprendente de su problema debido a la falta de conocimiento de ese enfoque. Por ejemplo, una vez que estaba trabajando en algo que requería la detección de objetos (aunque muy simple). Leí en alguna parte sobre R-CNN, Fast-CNN, YOLO. Inmediatamente me volví hacia ellos para ver si quedaban bien. Ese día los conocí con más detalle.

¿Debería centrarme más en aprender las complejidades de algunos algoritmos o debería utilizar el enfoque de conocer muchos de ellos cuando sea necesario?

Aprender las complejidades es increíble. Sin embargo, el mundo se mueve a un ritmo realmente rápido. Puede haber un nuevo algoritmo que supere al que aprendió con gran detalle. Es hora, por lo tanto, de eliminar ese uso y ver si el nuevo te hace más bien.

Aprende cosas cuando sea necesario. Y cuando sea necesario, apréndalos en detalle. Debería poder aplicar las cosas si cree que probablemente puedan funcionar. Y esta idea proviene del conocimiento.

Buena suerte.

Nimish Mishra
fuente