Mis notas sobre Fundamentos de Machine Learning

Hace un tiempo me propuse aprender algo sobre Machine Learning y implementar alguno de sus modelos sobre los conjuntos de datos que manejo en el ámbito laboral, y porqué no? también en el personal. Por ello he empezado varios cursos online y lecturas sobre el tema. De estos he ido sacando algunas notas en bloc de Logseq y he decidido que sería interesante compartirlo con vosotros. Ahí va mi chorro de texto sin imagenes. Que decir que sirve como esquema y se ha de acudir a lecturas más profundas para indagar sobre cada uno de los puntos.

    Fundamentos #ML

      Big Data:
        Análisis de gran cantidad de datos.
      Inteligencia Artificial #IA
        Aprende de los Inputs generados por los humanos que la crean para así, ser capaz de resolver casos basándose en el aprendizaje que se le ha programado anteriormente.
      Machine Learning #ML
        Es un tipo de #IA avanzada. No solo ejecuta modelos que le explicamos si no que es capaz de ir más alla y generar un aprendizaje propio.
      Un ejemplo práctico para entender la diferencia entre estas tres sería el análisis de opiniones en redes sociales. Los datos recogidos, es decir, todos los comentarios publicados en diferentes plataformas, formarían lo que llamamos el big data. Una vez recogidos, la inteligencia artificial se encargaría de clasificarlos según nuestros parámetros. Por ejemplo, todos aquellos mensajes en los que aparece la palabra 'mal' o 'malo' se clasificarían como negativos. El uso de machine learning haría que la máquina interpretara también que los mensajes en los que aparecen la palabra 'maldad' o 'maldades' sean elementos negativos. Al entender que si los términos 'mal' y 'malo' lo son, sus variaciones también deberían serlo.
      Variable dependiente es el resultado a buscar.
        Ejemplo: Algoritmo predice tiempo de viaje en funcion del día y el clima. El dia de la semana y la climatología son los inputs o variables independientes. El resultado, tiempo de viaje, es la variable dependiente

    Tipos #ML

      Supervisado

        Datos etiquetados
        Capaz de clasificar los datos

        Tipos:

          Binario ¿si o no?
            Árboles de decisión
              Se establecen predictores y se conecta con resultado
              Se puede crear árbol gráfico.
              Cada vez que se descompone el árbol hay que buscar un camino claro de Si o No.
          Multiclase (categorías predifinidas)
            K-NN (vecino más cercano)
              Clasificar datos
              Compara algo que desconoces con algo que ya tienes.
              Aprendizaje vago. Obtienes las repuestas de una vez.
              Desventaja:
                Requiere mucha potencia computacional
                A veces es complicado de usar con conjuntos de datos muy grandes.
                Parámetro K es el conjunto de vecinos con el que se va a comparar.
            Algoritmo Bayesiano
              Basado en teoria Naive Bayes (Naive = ingenuo)
              Algoritmo para clasificación. Se basa en la probabilidad condicional
              Parte de que los predictores son independientes unos de otros
              Clasificación Binaria o Multiclase.
              Multiplicador Ponderado
                Da un peso a cada predictor
            Máquinas de Vectores de Soporte (SVM):
              Encuentra un hiperplano que mejor separa las clases en un espacio multidimensional.
              Ejemplo de uso: Clasificación de tumores como benignos o malignos según características médicas
            Los bosques aleatorios (o random forests)
              Aquí están algunas características clave de los bosques aleatorios:
                Construcción del Bosque:
                  Se crea un conjunto de árboles no correlacionados.
                  Cada árbol se entrena en un subconjunto aleatorio de datos de entrenamiento (bootstrap).
                  La variabilidad entre los árboles ayuda a reducir el sobreajuste.
                Selección Aleatoria de Atributos:
                  En cada nodo de un árbol, se eligen aleatoriamente un subconjunto de atributos para tomar decisiones.
                  Esto evita que un solo atributo dominante influya demasiado en la predicción.
                Predicción:
                  Para predecir una nueva instancia, se empuja hacia abajo por todos los árboles en el bosque.
                  La etiqueta más frecuente entre los nodos terminales se informa como la predicción final.
                Ventajas de los Bosques Aleatorios:
                  Precisión: Son uno de los algoritmos de aprendizaje más precisos disponibles.
                  Eficiencia: Funcionan bien en bases de datos grandes.
                  Manejo de Variables: Pueden manejar cientos de variables de entrada sin excluir ninguna
          Regresión (resultados continuos)
            El análisis de regresión observa la relación entre los predictores (también llamados variables de entrada, variables independientes o regresores) y el resultado obtenido
            Para buscar tendencias
            Regresión lineal
              Traza una línea recta entre los predictores y el resultado.
              No es un modelo de aprendizaje automático como tal, es más un modelo estadistico.
              Clave encontrar predictores correctos con relación lineal del resultado
            Regresión Logística:
              La regresión logística se utiliza para predecir respuestas binarias (por ejemplo, sí/no, éxito/fracaso) basadas en variables predictoras.
              Ejemplo de Uso:
              Predicción de Riesgo de Enfermedad: En medicina, se puede aplicar la regresión logística para predecir si un paciente tiene un alto riesgo de desarrollar una enfermedad en función de características como la edad, la presión arterial, etc.
            Regresión Polinómica:
              La regresión polinómica añade flexibilidad al modelo lineal al introducir nuevos predictores obtenidos al elevar a distintas potencias el predictor original.
              Ejemplo de Uso:
              Predicción de Ingresos por Publicidad: En marketing, se puede aplicar la regresión polinómica para entender cómo el gasto en publicidad se relaciona con los ingresos. El modelo incluiría términos como x, x², x³, etc..
            Regresión de Vectores de Soporte (SVR):
              SVR es una variante de la regresión lineal que utiliza vectores de soporte para encontrar una función que se ajuste a los datos.
              Ejemplo de Uso:
              Predicción de Precios de Bienes Raíces: SVR se puede aplicar para predecir los precios de las propiedades inmobiliarias en función de características como ubicación, tamaño y antigüedad.
            Regresión de Lazo (Lasso):
              Lasso es una técnica de regresión que agrega una penalización a los coeficientes de las variables predictoras.
              Ejemplo de Uso:
              Selección de Características: Lasso se utiliza para seleccionar características relevantes en un conjunto de datos, eliminando aquellas con coeficientes cercanos a cero.

        Sin supervisar

          Necesidad de cantidad masiva de datos para un buen entrenamiento.
          Capaz de agrupar los datos
          Algoritmo K-Media (K-means)
            No es lo mismo que el KNN
            Aprendizaje vago. Obtienes las repuestas de una vez.
            Se utiliza para crear clústeres a partir de lo que se detecta en los datos
            Parámetro K es el numero de clústeres/grupos a crear
            Si hay mucho movimientos de miembros entre grupos se dice que hay un solapamiento de datos elevado (no se crean grupos reales, más difuso)
            Muy sensible a los datos atípicos. Si un dato no pertenece a un grupo le asignará uno
            Por ejemplo, en marketing, se podría aplicar para segmentar clientes en función de su comportamiento de compra.
          Análisis de Componentes Principales (PCA)
            Reduce la dimensionalidad de los datos al transformar variables correlacionadas en nuevas variables no correlacionadas (componentes principales).
            Se utiliza en campos como la visión por computadora y la bioinformática para reducir la complejidad de los datos.
          Algoritmo Apriori:
            Se emplea en minería de datos para descubrir patrones de asociación en conjuntos de transacciones.
            Por ejemplo, en un supermercado, se podría usar para identificar combinaciones frecuentes de productos comprados juntos.
          Algoritmo de Clustering Espectral:
            Agrupa datos en función de similitudes en su estructura.
            Se aplica en análisis de redes sociales, detección de anomalías y procesamiento de imágenes.
          Algoritmo de Detección de Anomalías:
            Identifica observaciones inusuales o atípicas en un conjunto de datos.
            Por ejemplo, en ciberseguridad, se utiliza para detectar actividades sospechosas o ataques maliciosos.
          Algoritmo de Reducción de Dimensionalidad t-SNE:
            Visualiza datos de alta dimensionalidad en un espacio de menor dimensión.
            Se usa en visualización de datos y exploración de patrones en datos complejos.
          Algoritmo DBSCAN:
            Detecta grupos densos de puntos en datos espaciales.
            Es útil para encontrar áreas de alta densidad en mapas de calor o para identificar regiones de interés en imágenes médicas.

        Semisupervisado

          Mezcla de supervisado y no supervisado

        Por refuerzo

          Se crea modelo y la máquina va iterando para optimizar el modelo.
          Q-learning
            Estados = entornos definidos
            Acciones = respuestas
            Calidad = Q. Valor empieza en cero y va subiendo conforme los refuerzos van mejorando el modelo
            Ejemplo la máquina de AlphaGo-Zero.

    Datos

      Sesgo es la distancia entre el valor predicho y el resultado real
      Varianza valores predichos dispersos
      Sesgo alto / varianza baja = predicciones contantemente erróneas
      Sesgo alto / varianza alta = predicción errónea de forma inconstante.
      Ejemplo: Tiro con arco en un campamento
        Instructor 5 tiros casi en la diana. Sesgo bajo / Varianza baja
        Persona nueva con "don" que da todas en el objetivo pero no agrupadas en la diana. Sesgo bajo y varianza alta
        Otra persona. 5 tiros muy agrupados pero lejos del centro. Sesgo alto y varianza baja
        Otra persona muy mala da dos flechas en el mismo sitio de la diana y otras fuera. Sesgo alto y varianza alta
      Sesgo y varianza son formas de medir la diferencia entre la predicción y el resultado.
      Conjunto de entrenamiento: Subconjunto de todos los datos que se usan para afinar los algoritmos.
        Conjunto de datos pequeños. Modelo simple pero inflexible cuando se trata de muchos datos. Se llama subajuste o underfitting.
        Modelo de datos muy flexible pero muy complejo y difícil de entender. Se llama sobreajuste u overfitting.
      Señal ayuda a hacer predicciones precisas
      Ruido son variaciones naturales en los datos, que no aportan nada a la compresión.

    Escoger el mejor algoritmo #ML

      Si los datos están etiquetado -> Aprendizaje supervisado
      Múltiples datos etiquetados
        Árboles decision
        K-NN
      Datos sin etiquetar -> Aprendizaje no supervisado
        Una vez creado los grupos se puede intentar dar un significado.
        Múltiples datos no etiquetados
        Clústeres K-medias
      Se puede hacer pruebas de varios algorimos. Analizar los resultados en busca del mayor nivel de precisión.
    Modelado de Conjunto
      Bagging
        Crea varias versiones del mismo algoritmo de aprendizaje automático.
        Ejemplo: Árboles de decisión.
        Se crean diferentes árboles de decision con diferentes nodos raíz. A raíz de esto se puede escoger el mejor o hacer un promedio entre ellos si el resultado no es claramente superior uno que el otro.
      Boosting
        Utiliza varios algorimos de aprendizaje para aumentar la precisión de los resultados.
        Ejemplo: Clusterización por K-medias combinado con árbol de decisión. (Ejemplo de semisupervisado)
        La máquina analiza las hojas del árbol y decide si existe algún agrupamiento interesante.
      Stacking
        Utiliza varios algoritmos de aprendizaje automático y los acumula para mejorar la precisión
        FWLS: Stacking lineal de características ponderadas.
        Creación de varios modelos que se apilan uno encima del otro

    Desafíos para #ML

      Preguntas interesantes
        Empezar con pequeñas preguntas concretas para intentar juntar y añadir valor
      Datos de entrenamiento separados de los datos de prueba
        No mostrar presentaciones con los datos de entrenamiento. Usar datos desconocidos para evaluar que tu modelo se comporta correctamente y evitar sobreestimar la precisión del modelo.
      Inversión de tiempo en el tipo de algoritmo.
        Muchas veces es mejor usar una herramienta que comprendes que estar invirtiendo tiempo en una que mejora un poquito los resultados.