¿Cuáles son los mejores algoritmos que todo científico de datos debería tener en su caja de herramientas?

Aquí está mi lista de algoritmos principales:

  1. Agrupación : es el problema de agrupar a los individuos de una población por su similitud de atributos.
  2. Algoritmos de clasificación. La clasificación intenta predecir, para cada individuo en una población, a qué conjunto de clases pertenece este individuo.
  3. Algoritmo de reducción de dimensiones para reducir las dimensiones de un conjunto de datos. Intenta tomar un gran conjunto de datos y reemplazarlo con un conjunto de datos más pequeño que contenga gran parte de la información importante en el conjunto más grande. Por ejemplo, puede usar el conjunto de datos reducido para entenderlo mejor y visualizarlo en dimensiones 2D.
  4. PCA o análisis de componentes principales para identificar las variables más importantes en su conjunto de datos. Existen muchos estudios que utilizan PCA para el análisis de datos, pero este es uno de los documentos que lo aplica de manera original: Comportamientos propios: identificación de la estructura en la rutina.
  5. Filtrado colaborativo para construir sistemas de recomendación. Es un problema de similitud coincidente. Por ejemplo, encontrar personas que son similares a usted en términos de los productos que les han gustado o que han comprado o encontrar productos que son similares con respecto al conjunto de atributos. En este último caso, se realiza un algoritmo de recomendación “basado en elementos”
  6. Reglas de asociación o agrupación conjunta para el análisis de la cesta de la compra. Una pregunta común en este caso es: ¿qué artículos se compran comúnmente juntos? Por ejemplo, analizar los registros de compra de un supermercado puede descubrir que la cerveza se compra junto con papas fritas con frecuencia. Se puede utilizar una implementación de reglas de asociación instalando Weka: Data Mining con el software de código abierto de Machine Learning en Java
  7. Método de regresión para predecir el valor de un cierto valor . Por ejemplo: ¿Cuánto usará un cliente determinado un determinado servicio? La cantidad que se va a predecir aquí es el uso del servicio, y se podría generar un modelo observando a otras personas similares de la población y su uso histórico.
  8. Algoritmo LDA para análisis de sentimientos y minería de texto, pero también para muchas otras aplicaciones. Aquí un artículo al respecto: Página en aaai.org
  9. El camino más corto de Dijkstra para encontrar el camino más corto de un nodo a otro en un gráfico. Probablemente el algoritmo más importante en la teoría de grafos.
  10. Predicción de enlaces para predecir conexiones entre elementos de datos, sugiriendo que debe existir un enlace y estimando la fuerza del enlace. Por ejemplo, en las redes sociales trata de adivinar si usted y John comparten 15 amigos, tal vez usted y John podrían ser amigos en la vida real.

    Estos son los algoritmos que hacen mi lista. Se combinan entre sí para crear métodos más sofisticados, como el agrupamiento espectral, por lo que es suficiente conocerlos para tener una comprensión general de la ciencia de datos y la minería de datos en general.
    Hay más material sobre algoritmos y visualización de datos en mi blog: Algoritmos y Fusión de datos, como Visualización de algoritmos y estructuras de datos de Alket Cecaj sobre Algoritmos y Fusión de datos
    De una manera más orientada a la implementación, hay mejores repositorios Java en github por categoría y ordenados por número de estrellas por Alket Cecaj en Algorithms and Data Fusion

Obviamente, hay muchos algoritmos que los científicos de datos necesitan saber. Pero hay varios algoritmos que todo científico de datos debe conocer y que pueden usarse fácilmente como línea de base en su trabajo. Aquí están mis elecciones.

  • RegresiónRegresión lineal, regresión penalizada L1 y L2
  • Clasificación: Naïve Bayes, bosques aleatorios, máquina de vectores de soporte.
  • Agrupación – K-medias
  • Evaluación del módulo – Validación cruzada, AUC
  • Análisis Textual – TF-IDF
  • Similitud : distancia coseno, distancia euclidiana, similitud Jaccard.

Estas son las situaciones más frecuentes que encuentro en mi trabajo. Y estas herramientas manejarán la mayoría de los problemas.

1) Métodos de conjunto (embolsado, refuerzo, superaprendizaje)
2) Reducción de dimensionalidad (PCA y aprendizaje múltiple)
3) Regresión lineal generalizada
4) Diseño del estudio
5) Algoritmos bayesianos (BMA, redes bayesianas, clasificadores Bayes …)
6) Árboles de decisión
7) Redes neuronales (tradicionales y profundas)
8) Métodos de optimización local y global (algoritmo EM, algoritmos evolutivos, descenso de gradiente, Newton-Raphson …)
9) Algoritmos / regresión penalizados (LASSO, SVM, red elástica …)
10) Modelos de ecuaciones estructurales, métodos de variables latentes, análisis de supervivencia y modelos de series de tiempo (análisis factorial y análisis / pronóstico de datos longitudinales)
11) Como beneficio adicional, los métodos de análisis de datos topológicos, ya que es probable que veamos más de estos desarrollados y desplegados en problemas en los próximos años

He sido muy afortunado de estudiar y trabajar con profesores increíbles tanto en Stanford como en la Universidad de Edimburgo. Estos son algunos de los algoritmos que se utilizan mucho.

No puede hacer big data sin reducción de dimensiones. SVD y PCA son clásicos. t-SNE es un nuevo favorito.

Los vecinos más cercanos de k se pueden usar tanto para la clasificación como para la regresión, y pueden ser increíblemente útiles cuando necesita algunos resultados rápidos.

La búsqueda de árboles en Monte Carlo es algo que debe saber. Es responsable de la gran mejora en el juego en los últimos años.

Conozca algunas formas de podar sus datos, como la poda alfa-beta.

Naive Bayes es bae, y no podemos hablar de Naive Bayes sin hablar de Máxima Probabilidad.

Como muchos han mencionado, Random Forest para árboles de decisión.

El proceso de decisión de Markov aparece en algún momento en todas las clases de AI / datos que he tomado.

Mientras lo hace, asegúrese de saber cómo hacer aprendizaje de refuerzo , iteración de política / valor . Echa un vistazo a Q-learning , SARSA .

Conoce tus distribuciones. La distribución favorita de mi profesor es Dirichlet . Asegúrese de comprender el Teorema del límite central. Además, información mutua puntual , divergencia KL para comparar diferentes distribuciones.

Por supuesto, las palabras de moda actuales como LSTM , LSTM bidireccional , red neuronal recurrente, red neuronal recursiva .

Oh, una última cosa, la visualización es muy, muy, muy importante. Asegúrese de estar familiarizado con algunas herramientas de visualización. GraphViz es una bomba.

Si desea obtener más información sobre la minería de datos, consulte este curso CS246: Minería de conjuntos de datos masivos en Stanford. Creo que está disponible en Coursera.

¡Espero que ayude!

  1. Un buen algoritmo de visualización : me sorprende que otras respuestas no hayan mencionado esto. Visualizar los datos y obtener una “idea” de ellos es muy importante cuando comienza a trabajar con un nuevo conjunto de datos. Algunos buenos son t-SNE y análisis de componentes principales para visualizar datos de alta dimensión. Si está trabajando con imágenes, puede mostrarlas usando un visor de imágenes.
  2. Clasificación y regresión : Mis favoritos son Máquinas de vectores de soporte y Bosques aleatorios para la clasificación, y Regresión logística para hacer retroceder la probabilidad de un evento.
  3. Evaluación de su rendimiento : creo que una comprensión sólida de la validación cruzada es muy importante para obtener una buena estimación de cómo funcionará su algoritmo en el mundo real. Este video lo cubre muy bien:

Como mencionas algoritmos, diría que los más básicos para cada categoría:

  1. Selección de funciones: ganancia de información
  2. Agrupación: K-medias
  3. Clasificación: ingenuo bayesiano y árbol de decisión

y de pie en su propia categoría … La Asociación de Minería de Reglas también es muy importante.

Estos son mis tres algoritmos / modelos favoritos:

  • Regresión logística / regresión lineal (con L1 / L2 / regularización de red elástica): para clasificación y regresión binarias
  • Bosques aleatorios (algoritmo): para clasificación
  • Término Frecuencia – Frecuencia de documento inversa: para análisis textual

Los modelos de regresión tienen una base sólida en estadísticas, y un fondo en estadísticas realmente puede ayudarlo a comprenderlos y desbloquear su poder. Random Forest es divertido para mí porque generalmente tiene muy buen poder predictivo y no tiene demasiadas cosas para ajustar. TF-IDF es una forma muy común de convertir datos de texto a un vector numérico.

Las herramientas en una caja de herramientas se deben enumerar de tal manera que cuando se presente una situación, sepamos “cómo hacerlo”. Por lo tanto, aquí está la lista en mi caja de herramientas:

  • Cómo reducir la dimensionalidad de las características: PCA
  • Cómo agrupar datos (sin supervisión): k-means
  • Cómo clasificar los datos en clases (supervisadas): SVM, regresión logística
  • Cómo empoderar a los alumnos débiles : Adaboost
  • Cómo evaluar el rendimiento: validación cruzada
  • Cómo clasificar los resultados : Tf-idf, PageRank

Esas situaciones son para mí las más frecuentes en la ingeniería de datos.

Mis 3 mejores opciones.

  • Para el aprendizaje supervisado, los árboles de decisión, la propagación hacia atrás, las máquinas de vectores de soporte y los bosques aleatorios (algoritmo) son mis elecciones inmediatas.
  • Para el aprendizaje no supervisado, un algoritmo de agrupación de su preferencia. Siempre prefiero la agrupación jerárquica. Análisis de componentes principales y modelos ocultos de Markov.
  • Término Frecuencia – Frecuencia de documento inversa Como William Chen sugirió es útil y PageRank también.

PD: la selección habitual de distancias es coseno, Euclidiana para coseno continuo y categórico, hamming para categórico.

  1. Regresión multivariada y regresión logística: fácil de interpretar y relativamente precisa en la mayoría de los casos.
  2. K-significa agrupación-Excelente para determinar grupos y ayudar a organizar un desorden de datos
  3. Bosques aleatorios: muy alto poder predictivo y fácil de implementar. Sin embargo, difícil de interpretar.

Estas son las tres cosas que debe saber para comenzar con la ciencia de datos:

  1. Perceptrón para clasificación
  2. k-significa agrupamiento para agrupamiento
  3. Regresión lineal con pérdida cuadrática (mínimos cuadrados ordinarios) para regresión de salida con valor real

Obviamente, hay muchas otras cosas que puede y debe aprender después de estos, pero estos son los algoritmos fundamentales que sirven como líneas de base simples para la clasificación, la agrupación y la regresión. Si un científico de datos no supiera esto, no pensaría en contratarlos.

Aquí están mis tres algoritmos:

  1. Procesos gaussianos
  2. Redes neuronales recurrentes
  3. Aumento de gradiente

La razón por la que elegí estos tres es que si su cadena de herramientas incluye estos algoritmos, lo más probable es que sea lo suficientemente maduro y sofisticado como para incluir también muchos otros algoritmos útiles. Representan tres (en realidad cuatro) filosofías de diseño diferentes en el aprendizaje automático.

Hay muchos.

Pero solo señalaré uno.

Para un científico de datos, la falta de valores en los datos es un problema muy grave. Ahora hay muchas técnicas de remuestreo para abordarlas junto con Imputaciones Múltiples. Pero este algoritmo se ha vuelto muy útil y hoy en día es utilizado ampliamente por varios investigadores, en tales casos.

Algoritmo de maximización de expectativas.

Lo aprendí en el primer año de mi EM mientras hacía algunos trabajos de proyecto. Los resultados son asombrosos, en comparación con las imputaciones medias simples.

R es un software estadístico, que es un software de fuente libre y se ha convertido en una de las herramientas más amigables para el análisis de muchos profesionales en los últimos años. R tiene un paquete llamado ‘Emcluster’ que usa el algoritmo EM. Si alguien está interesado en el algoritmo EM, puede ver el sitio web de CRAN con respecto a este paquete en particular.

-Además de los métodos de agrupación (k-medias, agrupación aglomerativa), clasificación (NB, kNN, regresión logística)
-un método de selección de características para eliminar características redundantes (TF-IDF, como sugirió Raviteja es una opción, si tiene etiquetas, medir la correlación de la etiqueta de características utilizando una medida como la correlación de Pearson, es posible la información mutua)
-un método de visualización que lo ayudará a comunicarse con quien haya generado datos y también con quien esté pagando o le pague
redes neuronales (¡pueden hacer prácticamente cualquier cosa! Pero úselas solo después de que tenga mucha experiencia con los otros métodos, preste mucha atención al sobreajuste y la optimización)

Me uniré a la diversión 🙂 (Descargo de responsabilidad: mi campo principal es la matemática computacional, orientada al lenguaje natural y la minería de datos, pero soy un científico de datos por sueldo):

1) Naive Bayes (para la clasificación supervisada; puede mejorarse con una ponderación similar a la logística multinomial; fácil de explicar ya que refleja gran parte de la forma en que aprendemos; puede reforzarse en los modelos MaxEnt)

2) Bosques aleatorios (para la selección de características y la creación de reglas; poderoso y simplista en teoría, pero puede ser un poco difícil de explicar dependiendo de cómo mida la ganancia de información en el sistema)

3) [Saliendo de apuros aquí para agitar la conversación :)] Modelado de Markov oculto (para modelado de sistemas probabilísticos y delimitación variable; puede sustituirse por Monte Carlo u otro modelado de sistemas; ideal para la investigación de interacción de capa oculta sin la aceleración de redes neuronales y perceptrones en general)

Estoy deseando que lleguen las discusiones!

Ben

Todos y ninguno de ellos.

Los algoritmos que más usa están relacionados con el contexto en el que realiza la ciencia de datos. Es probable que el contexto cambie con el tiempo. Para abordar esto, debe aprender todo lo que pueda y sus idiosincrasias y luego mejorar y ampliar la familia o el problema que desea resolver. Así que debes saberlo todo, pero como eso es imposible, debes estudiar tantos como puedas.

Por ejemplo, al principio estaba más interesado en las pruebas estadísticas, luego tuve que pasar a la regresión, ahora he retrocedido a las pruebas estadísticas más algo de minería de datos y alguna clasificación. Mejorar constantemente sus conocimientos y adaptarse a las necesidades de su contexto es mucho mejor que tener una “caja de herramientas” con una lista de los mejores algoritmos. Le permitirá pensar fuera de la caja.

En mi trabajo actual:

  1. Regresión: Regresión lineal múltiple, PLS
  2. Series temporales: suavizado exponencial
  3. Reducción de dimensionalidad: PCA

No es terriblemente sofisticado, pero fácil de explicar / interpretar (lo cual es muy importante en la industria, no tanto en la academia). Estos también se implementan actualmente en el código de producción en todo el mundo y parecen ser efectivos para generar valor real.

Algo que me sorprende que nadie más haya mencionado es un buen paquete de ajuste de parámetros. He visto una regresión de lazo bien sintonizada vencer a un GBM sintonizado “al azar” en precisión.

Puede usar la búsqueda de cuadrícula / aleatorio, pero requieren mucha computación y no tiene idea de si su “mejor” resultado es o qué tan óptimo es.

Si los modelos con los que está trabajando son relativamente poco complejos, los algoritmos de población pueden funcionar bastante bien. Si son más complejos (lo siento, lo sé, muy subjetivos), entonces sería mejor observar algunos de los optimizadores bayesianos. BayesOpt, MOE, Spearmint, SMAC e HyperOpt son algunos de los paquetes de código abierto más populares. Si estás en Google ML Cloud, creo que HyperTune también es bayesiano.

(Descargo de responsabilidad: la empresa para la que trabajo, SigOpt, está en este campo, pero nuestra plataforma está más orientada a los equipos de ciencia de datos empresariales / ML / DL).

Los algoritmos para la ciencia de datos se pueden dividir en algoritmos supervisados ​​y no supervisados.
Para el problema supervisado, estos algoritmos pueden ser útiles.
1. Lineal: los algoritmos como la regresión lineal generalizada pueden ser útiles
2.No lineal: uno de los algoritmos basados ​​en árbol. Iré con xgboost ya que es el más rápido de todos

Para algoritmo no supervisado
1.algo basado en distancia K significa o knn
2. Algoritmo basado en densidad probablemente dbscan

Para reducción de dimensiones
1. Pca
2.t-sne

Para el análisis de texto
1. Tf- idf

Mis algoritmos / modelos favoritos son:

1. Regresión logística: para crear una puntuación de predicción de línea de base. Primer algoritmo que intento. Vowpal Wabbit (JohnLangford / votepal_wabbit) cuando los datos son grandes
2. Bosque aleatorio: funciona extremadamente bien sin mucha afinación
3. dmlc / xgboost: uno de los algoritmos de potenciación más potentes para obtener ganancias incrementales.

Estos algoritmos son todo lo que necesita para crear un modelo de clasificación de alto rendimiento. Puede obtener ganancias mucho mayores al crear un conjunto de estos modelos.

More Interesting

¿Cómo sería útil aprender SAP para mi carrera de Analytics?

¿Cuáles son las mayores ineficiencias que enfrentan los científicos de datos hoy en día?

¿Qué es más difícil para el científico de datos promedio, las matemáticas involucradas o la programación requerida? ¿Qué proporción del trabajo de un científico de datos se gasta en matemáticas versus programación?

¿Se necesita ser un analista de datos para ser un científico de datos?

¿Django es utilizado por los científicos de datos?

Habiendo obtenido una certificación de especialización en ciencia de datos en Coursera y sin experiencia relevante en la industria, ¿cómo comienzo mi carrera como científico de datos?

¿Cuáles son los aspectos más destacados de Strata 2014?

¿Cómo es ser un científico de datos en BCG?

¿Cómo es trabajar en Dublín como científico de datos?

La mayoría de las empresas requieren una maestría o doctorado para científicos de datos o ingenieros de aprendizaje automático, pero la mayoría de los recursos están disponibles en línea. ¿Debo ir a la universidad para hacer una maestría o continuar aprendiendo en línea y buscar trabajo con mi título universitario?

¿Es buena la posición de un analista de datos?

¿Cuánto tiempo lleva convertirse en científico de datos?

¿Existe una relación entre lo fácil que es halagar a un científico y cuán abierto es al compartir sus datos / presentaciones?

Cómo pasar del científico de datos a la economía

¿Convertirse en un científico de datos es una tarea difícil?