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.
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.
- ¿Puede el aprendizaje automático ayudarnos a comprender el cerebro humano?
- ¿Por qué la minería de datos con aprendizaje automático no implica pruebas de hipótesis estadísticas?
- ¿Cuál es la diferencia entre adaboost y el clasificador de perceptrones de una capa?
- ¿Por qué el bandido multi-armado es un MDP de un estado?
- ¿Cuál es la diferencia entre un sistema experto y el aprendizaje automático?
¿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.
Estudiar algoritmos es importante por 2 razones.
- 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.
- 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:
- Elija un problema, conjunto de datos o competencia
- Elija un algoritmo sobre el que lea y piense que podría funcionar aquí
- Impleméntelo usted mismo // tendrá que comprender las estructuras de datos, los algoritmos y las estadísticas para hacerlo correctamente
- Evaluar resultados estadísticamente
- SI los resultados son buenos:
- Analízalo e impleméntalo de manera más eficiente
- MÁS:
- GOTO (2)