Pasos para completar un proyecto de aprendizaje automático

Contenidos

Introducción

80329roadmap-9726882
Flujo de trabajo del proyecto de aprendizaje automático

1. Recopilación de datos

  1. ¿Qué tipo de problema estamos tratando de resolver?
  2. ¿Qué fuentes de datos ya existen?
  3. ¿Qué problemas de privacidad existen?
  4. ¿Son públicos los datos?
  5. ¿Dónde debemos almacenar los archivos?
99513data-2480889
  1. Datos estructurados: aparecen en formato tabulado (estilo de filas y columnas, como lo que encontraría en una hoja de cálculo de Excel). Contiene diferentes tipos de datos, por ejemplo, series de tiempo numéricas, categóricas.
  • · Nominal / categórico – Una cosa u otra (mutuamente excluyentes). Por ejemplo, para las básculas de automóviles, el color es una categoría. Un automóvil puede ser azul pero no blanco. No importa un pedido.
  • Numérico: Cualquier valor continuo donde la diferencia entre ellos importa. Por ejemplo, al vender casas, $ 107,850 es más de $ 56,400.
  • Ordinal: Datos que tienen orden pero se desconoce la distancia entre valores. Por ejemplo, una pregunta como, ¿cómo calificaría su salud del 1 al 5? 1 siendo pobre, 5 saludable. Puede responder 1, 2, 3, 4, 5, pero la distancia entre cada valor no significa necesariamente que una respuesta de 5 sea cinco veces más buena que una respuesta de 1. Serie temporal: datos a lo largo del tiempo. Por ejemplo, los valores históricos de venta de las topadoras de 2012 a 2018.
  • Series de tiempo: Datos a lo largo del tiempo. Por ejemplo, los valores históricos de venta de las topadoras de 2012 a 2018.
  1. Datos no estructurados: Datos sin estructura rígida (imágenes, video, voz, natural
    texto de idioma)
55546struc-4191559

2. Preparación de datos

  • Análisis exploratorio de datos (EDA), aprender sobre los datos con los que está trabajando
  1. ¿Cuáles son las variables de características (entrada) y la variable de destino (salida)? Por ejemplo, para predecir una enfermedad cardíaca, las variables características pueden ser la edad, el peso, la frecuencia cardíaca promedio y el nivel de actividad física de una persona. Y la variable objetivo será si tienen o no una enfermedad.
  2. ¿Qué tipo de tienes? Series temporales estructuradas, no estructuradas, numéricas. ¿Faltan valores? En caso de que los elimine o los complete, la función de imputación.
  3. ¿Dónde están los valores atípicos? Cuantos de ellos hay? ¿Por qué están ellos ahí? ¿Hay alguna pregunta que pueda hacerle a un experto en el dominio sobre los datos? Por ejemplo, ¿podría un médico especialista en enfermedades cardíacas arrojar algo de luz sobre su conjunto de datos de enfermedades cardíacas?
52802eda-7114194
  • Preprocesamiento de datos, preparación de sus datos para modelarlos.
  • Función de imputación: completar los valores faltantes (un modelo de aprendizaje automático no puede aprender
    en datos que no están ahí)
  1. Imputación única: Llenar con media, una mediana de la columna.
  2. Múltiples imputaciones: Modele otros valores perdidos y con lo que encuentre su modelo.
  3. KNN (k vecinos más cercanos): Complete los datos con un valor de otro ejemplo que sea similar.
  4. Muchos más, como la imputación aleatoria, la última observación llevada adelante (para series de tiempo), la ventana móvil y las más frecuentes.
  • Codificación de funciones (convertir valores en números). Un modelo de aprendizaje automático
    requiere que todos los valores sean numéricos)
  • Una codificación en caliente: Convierta todos los valores únicos en listas de ceros y unos donde el valor objetivo es 1 y el resto son ceros. Por ejemplo, cuando un automóvil colorea verde, rojo, azul, verde, el futuro del color del automóvil se representaría como [1, 0, and 0] y una roja seria [0, 1, and 0].
  • Codificador de etiquetas: Convierta las etiquetas en valores numéricos distintos. Por ejemplo, si sus variables objetivo son animales diferentes, como perro, gato, pájaro, estos podrían convertirse en 0, 1 y 2, respectivamente.
  • Codificación de incrustación: Aprenda una representación entre todos los diferentes puntos de datos. Por ejemplo, un modelo de lenguaje es una representación de cómo diferentes palabras se relacionan entre sí. La incrustación también está cada vez más disponible para datos estructurados (tabulares).
  • Normalización de funciones (escalado) o estandarización: Cuando las variables numéricas están en diferentes escalas (por ejemplo, el número_de_bathroom está entre 1 y 5 y el tamaño_of_land entre 500 y 20000 pies cuadrados), algunos algoritmos de aprendizaje automático no funcionan muy bien. El escalado y la estandarización ayudan a solucionar este problema.
  • Ingeniería de funciones: transformar los datos en una representación (potencialmente) más significativa al agregar conocimiento del dominio
  1. Descomponer
  2. Discretización: convertir grupos grandes en grupos más pequeños
  3. Funciones de cruce e interacción: combinación de dos o más funciones
  4. Las características del indicador: usar otras partes de los datos para indicar algo potencialmente significativo
  • Selección de características: seleccionando
    las características más valiosas de su conjunto de datos para modelar. Potencialmente reduciendo el tiempo de entrenamiento y sobreajuste (menos datos generales y menos datos redundantes para entrenar) y mejorando la precisión.
  1. Reducción de dimensionalidad: Un método común de reducción de dimensionalidad, PCA o análisis de componentes principales toma una gran cantidad de dimensiones (características) y usa álgebra lineal para reducirlas a menos dimensiones. Por ejemplo, supongamos que tiene 10 funciones numéricas, podría ejecutar PCA para reducirlo a 3.
  2. Importancia de la función (modelado posterior): Ajuste un modelo a un conjunto de datos, luego inspeccione qué características fueron más importantes para los resultados, elimine las menos importantes.
  3. Métodos de envoltura como los algoritmos genéticos y la eliminación de características recursivas implican crear grandes subconjuntos de opciones de características y luego eliminar las que no importan.
  • Hacer frente a los desequilibrios: ¿Sus datos tienen 10,000 ejemplos de una clase pero solo 100 ejemplos de otra?
  1. Recopile más datos (si puede)
  2. Utilice el paquete scikit-learn-contrib imbalanced- learn
  3. Utilice SMOTE: técnica sintética de sobremuestreo de minorías. Crea muestras sintéticas de tu clase menor para intentar nivelar el campo de juego.
  4. Un artículo útil para mirar es «Aprendiendo de los datos desequilibrados».
88314pre-3581833
  1. Conjunto de entrenamiento (generalmente 70-80% de los datos): el modelo aprende sobre esto.
  2. Conjunto de validación (normalmente del 10 al 15% de los datos): los hiperparámetros del modelo se ajustan a este
  3. Conjunto de prueba (normalmente entre el 10% y el 15% de los datos): el rendimiento final de los modelos se evalúa sobre esta base. Si lo ha hecho bien, es de esperar que los resultados del conjunto de prueba den una buena indicación de cómo debería funcionar el modelo en el mundo real. No utilice este conjunto de datos para ajustar el modelo.
90583ratio-6762328

3. Entrene el modelo sobre los datos (3 pasos: elija un algoritmo, ajuste el modelo, reduzca el ajuste con regularización)

  1. Algoritmos supervisados: regresión lineal, regresión logística, KNN, SVM, árbol de decisiones y bosques aleatorios, AdaBoost / Gradient Boosting Machine (impulso)
  2. Algoritmos no supervisados: agrupamiento, reducción de dimensionalidad (PCA, codificadores automáticos, t-SNE), detección de anomalías
66050alla-lgo-1048999
  1. Aprendizaje por lotes
  2. Aprender en línea
  3. Transferir aprendizaje
  4. Aprendizaje activo
  5. Ensamblaje
90100train20a20model-5412514
  • Desajuste – ocurre cuando su modelo no funciona tan bien como le gustaría en sus datos. Intente entrenar para un modelo más largo o más avanzado.
  • Sobreajuste– ocurre cuando la pérdida de validación comienza a aumentar o cuando el modelo funciona mejor en el conjunto de entrenamiento que en el de prueba.
  1. Regularización: una colección de tecnologías para prevenir / reducir el sobreajuste (por ejemplo, L1, L2, Abandono, Parada anticipada, Aumento de datos, Normalización de lotes)
  • Ajuste de hiperparámetros – Ejecute un montón de experimentos con diferentes configuraciones y vea cuál funciona mejor

4. Análisis / Evaluación

  1. Clasificación: precisión, precisión, recuperación, F1, matriz de confusión, precisión media media (detección de objetos)
  2. Regresión – MSE, MAE, R ^ 2
  3. Métrica basada en tareas: por ejemplo, para el automóvil autónomo, es posible que desee saber el número de desconexiones
91696performance20metric-7874948
  • Importancia de la característica
  • Capacitación / tiempo de inferencia / costo
  • ¿Qué pasa si la herramienta: cómo se compara mi modelo con otros modelos?
  • Ejemplos menos seguros: ¿en qué se equivoca el modelo?
  • Compensación de sesgo / varianza

5. Modelo de servicio (implementación de un modelo)

  • Pon el modelo en producción y mira como te va.
  • Instrumentos que puede utilizar: TensorFlow Servinf, PyTorch Serving, Google AI Platform, Sagemaker
  • MLOps: donde la ingeniería de software se encuentra con el aprendizaje automático, esencialmente toda la tecnología requerida en torno a un modelo de aprendizaje automático para que funcione en producción
91979services-4123830

6. Volver a entrenar modelo

  • Vea cómo funciona el modelo después de la publicación (o antes de la publicación) en función de varias métricas de evaluación y vuelva a consultar los pasos anteriores según sea necesario (recuerde, el aprendizaje automático es muy experimental, por lo que aquí es donde querrá realizar un seguimiento de sus datos y experimentos.
  • También encontrará que las predicciones de su modelo comienzan a ‘envejecer’ (generalmente no en un estilo elegante) o ‘derivar’, como cuando las fuentes de datos cambian o se actualizan (nuevo hardware, etc.). Aquí es cuando querrás volver a entrenarlo.
62747retrain-3508263

7. Herramientas de aprendizaje automático

82076overall-3564171

Gracias por leer esto. Si te gusta este artículo, compártelo con tus amigos. En caso de cualquier sugerencia / duda, comente a continuación.

Identificación de correo: [email protected]

Sígueme en LinkedIn: LinkedIn

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.