¿Cuáles son algunas estructuras de datos esenciales y conocimiento de algoritmos necesarios para estudiar ciencia de datos?

Machine Learning es donde se encuentran las estadísticas y los algoritmos. Es importante tener una sólida formación en ambos para desarrollar e implementar con éxito un sistema práctico de aprendizaje automático.

Estructuras de datos

Son importantes en cualquier situación en la que desarrolle un procedimiento de inferencia para un algoritmo de aprendizaje automático, o cuando esté construyendo la tubería de ciencia de datos general.

¿Por qué? Debido a que en la práctica los datos pueden ser grandes y el uso de las estructuras de datos adecuadas puede ser la diferencia entre una tubería que es tan lenta que es prácticamente inutilizable frente a una que ofrece resultados casi instantáneamente.

Un ejemplo:

En la comunidad de redes neuronales / aprendizaje profundo, las variables categóricas se representan como vectores 1 de k. Para obtener la “incrustación” d-dimensional del vector, esta codificación 1-de-k se multiplica en una matriz (de tamaño kxd), que tiene el efecto de extraer una fila de la matriz.

Implementar esto de esta manera ingenua requeriría un gran exceso de cálculos (aproximadamente (k ^ 2) * d) que (k-1) * (k-2) de ellos se multiplicarán o agregarán ceros. Sin embargo, como sabemos que el efecto es simplemente extraer una fila de la matriz, podemos implementarlo como una búsqueda de hashmap / diccionario y resolver el problema en promedio en una cantidad de tiempo constante.

Si sus categorías son, digamos (k = 2,000,000), palabras en inglés. Esta puede ser la diferencia entre un algoritmo que nunca termina este mes o casi instantáneamente.

Algoritmos

Estudiar algoritmos es importante por 2 razones.

  1. Ser capaz de utilizar los bloques de construcción algorítmicos fundamentales como gráficos, recursiones, clases, etc. para desarrollar algoritmos personalizados para sus aplicaciones.
  2. Ser capaz de analizar la complejidad de su algoritmo para ver si es manejable (o tal vez mostrar que es intratable) puede ahorrarle mucho tiempo.

Ahora es posible que no necesite memorizar el algoritmo de Prim para la ciencia práctica de los datos del día a día. Pero conocerlo y poder implementarlo rápidamente con una referencia o derivarlo usted mismo muestra un nivel general de comprensión de que necesitará desarrollar sus propias soluciones a nuevos problemas difíciles. Es por eso que los algoritmos son el tema principal de las entrevistas de empresas de tecnología.

Un ejemplo:

De hecho, ya hicimos un simple análisis de complejidad de tiempo arriba. La complejidad del espacio también es importante. Los algoritmos y las estructuras de datos están estrechamente entrelazados.

Estadística

Las estadísticas son absolutamente esenciales para la ciencia de datos. La cuantificación y el razonamiento bajo incertidumbre son fundamentales para hacer inferencias con datos reales, ya que los datos reales nunca son perfectos o completos.

Las estadísticas también son muy desafiantes. Mi filosofía personal sobre estadísticas es mejorar siempre mi conocimiento de las estadísticas. Abordar los problemas desde la perspectiva de un estadístico es verlo bajo una luz rigurosamente escéptica, y siempre cuestionar y evaluar las suposiciones que está haciendo sobre su problema.

Un ejemplo:

Está evaluando el rendimiento de múltiples clasificadores ML diferentes en un conjunto de datos que le interesa. Usted encuentra que un algoritmo generalmente supera a los demás con un 1% de precisión en la mayoría de las pruebas, por lo que podría concluir que este algoritmo es mejor. Pero luego se pone su límite de estadístico y realiza una prueba de significación (digamos intervalos de confianza de arranque) y descubre que todos los algoritmos funcionan casi de manera idéntica con muchos conjuntos de datos de prueba diferentes. Ese algoritmo no es realmente mejor, solo fue una anomalía aleatoria de su conjunto de datos de prueba.

Armado con este conocimiento, decide dejar de enfocarse en qué algoritmo de aprendizaje es mejor y, en su lugar, enfocarse en elegir buenas características. Ahora, de repente, se da cuenta de que si estandariza su espacio de características e incluye las conjunciones de pares de características, el rendimiento de su algoritmo aumenta en más del 10%.

Por supuesto, prueba esto de nuevo por su importancia, ahora que es un estadístico. Y esta es una mejora significativa. El uso de estadísticas lo ha llevado a construir un sistema mucho mejor y no perder el tiempo probando todos los algoritmos de aprendizaje del libro.

Experiencia práctica, teoría y equilibrio

Un conocimiento profundo de las estructuras de datos, algoritmos y estadísticas son aproximadamente igualmente importantes para hacer ciencia de datos y aprendizaje automático. Dicho esto, debe ser capaz de emplear todas estas habilidades en la práctica, y la mejor manera de ser bueno es hacerlo a menudo.

Participa en concursos y estudia la teoría.

PROCEDIMIENTO: getGoodAtDataScience

HACER MIENTRAS VERDADERO:

  1. Elija un problema, conjunto de datos o competencia
  2. Elija un algoritmo sobre el que lea y piense que podría funcionar aquí
  3. Impleméntelo usted mismo // tendrá que comprender las estructuras de datos, los algoritmos y las estadísticas para hacerlo correctamente
  4. Evaluar resultados estadísticamente
    1. SI los resultados son buenos:
      1. Analízalo e impleméntalo de manera más eficiente
    2. MÁS:
      1. GOTO (2)

More Interesting

¿Es posible crear un filtro adaptativo usando una red neuronal para que después del entrenamiento pueda filtrar la señal ruidosa y dar la salida deseada?

Cómo depurar sus proyectos de ciencia de datos y aprendizaje automático

¿Qué es más poderoso, la red neuronal convolucional o la red artificial? ¿Cuál es más conveniente de usar?

¿Qué es la precisión en el aprendizaje automático?

¿Podrían las entradas del algoritmo de entrenamiento Perceptron tener diferentes tipos?

¿Cuál es el proceso de reconocimiento de voz (en resumen)?

El límite de decisión de los árboles de decisión es el eje paralelo. Random Forests es un conjunto de árboles. ¿Cuál es el límite de decisión de los bosques aleatorios?

¿Alguien usa alguna vez una red neuronal media de capa softmax en lugar de al final?

¿Alguien tiene experiencia con las patentes de Digital Infuzion en aprendizaje automático y reducción de dimensiones? ¿Qué hace que sus patentes sean especiales?

¿Cuál es la pérdida latente en autoencoders variacionales?

¿En qué se diferencia PyTorch de TensorFlow? ¿Cuáles son las ventajas de usar uno versus el otro? ¿Cuándo debo usar uno u otro?

¿Cuál es la relación entre los modelos gráficos probabilísticos y las redes neuronales (aprendizaje profundo)?

Estoy interesado en el aprendizaje automático y la inteligencia artificial y recién comencé a aprender Python. ¿Qué otras habilidades debo tener en mi haber para tener éxito en este campo?

¿La asignación de Dirichlet latente es un modelo paramétrico o no paramétrico?

¿Es realmente necesaria la programación competitiva para campos como la ciencia de datos o el aprendizaje automático y para solicitar gigantes tecnológicos?