¿Es importante un curso de diseño y análisis de algoritmos para una carrera en análisis de datos?

Para comenzar con la ciencia de datos, realmente no necesita muchos algoritmos. Puede salirse con solo conocer el álgebra lineal (vectorización de operaciones matriciales) y las estadísticas.

Es posible que esté familiarizado con el hecho de que con los problemas de Big Data, generalmente los divide en pedazos, resuelve subproblemas individuales y los reúne todos. También puede estar familiarizado con que los grandes datos generalmente se asocian con tantos datos que es más rápido mover el cálculo a los datos en lugar de llevar los datos al cálculo (tendrá un sistema de archivos distribuido y los nodos locales calculan los datos locales … usted no moverá los datos). El verdadero problema viene cuando comienzas a escalar. De hecho, se inventaron muchos algoritmos inteligentes cuando no podíamos escalar usando algoritmos existentes.

Aquí hay un escenario simple donde los algoritmos jugarían un papel crucial en la reducción del tiempo total de ejecución del algoritmo. Supongamos que tiene algunas entradas de entrada en el orden de algunos miles de millones, y está ejecutando un clúster con aproximadamente 1000 nodos. Desea dividir los datos de entrada en fragmentos de un millón de entradas cada uno y almacenarlos localmente en cada nodo esclavo. Luego jugará con el millón de entradas en cada nodo localmente para obtener un resultado recopilado. Supongamos que uno de los pasos intermedios fue la clasificación y usted eligió implementar un algoritmo de clasificación tonto como la clasificación de burbujas (porque esta es la única forma en que sabe cómo clasificar algo) en lugar de la clasificación rápida, entonces verá una diferencia significativa en el tiempo de ejecución entre sus implementación que contiene ordenación rápida versus ordenación por burbuja. Ordenar es simplificar demasiado, realmente verás la diferencia cuando trabajes con algoritmos gráficos. Lo mismo se aplica a las estructuras de datos que eligió para almacenarlas. Si elige incorrectamente cómo desea representar estos datos en la memoria, nunca podrá encontrar un algoritmo eficiente. Tanto las estructuras de datos como los algoritmos van de la mano.

Los algoritmos y las estructuras de datos son como su segundo aspecto, no importa lo que esté haciendo en informática, los necesita. Tome el curso de Tim Roughgarden, no lo sostiene como cursos de algoritmos … pero si logra pasar, realmente habrá aprendido mucho al final del curso.