Introducción al Big Data, la Inteligencia Artificial y el Machine Learning


Sistemas Gestores de Bases de Datos (SGBD)

Funcionalidades:

  • Gestión de almacenamiento de datos.
  • Gestión de integridad de datos.
  • Gestión de usuarios.
  • Gestión de acceso concurrente.
  • Gestión de recuperación de datos.
  • Gestión de transacciones.

Bases de Datos Relacionales

Conjunto de una o más tablas estructuradas en registros (filas) y atributos (columnas).

Ventajas:

  • Provee herramientas para evitar duplicados.
  • Garantiza integridad referencial.
  • Favorece la normalización.
  • Más utilizado en la industria.

Inconvenientes:

  • Complicaciones con grandes cambios de estructura.
  • Acceso lento a los datos con grandes volúmenes.
  • Dificultad para almacenar algunos formatos de datos.

Claves Primarias

Tipo especial de columna(s) utilizada para identificar de forma exclusiva una fila.

  • Es decir, dada una PK se puede encontrar una única fila en una tabla.
  • Los valores de una PK no pueden repetirse en una tabla, y una PK no puede ser «nula» (vacía).

Claves Foráneas

Tipo especial de columna(s) que se refiere a una clave primaria en otra tabla.

  • Los valores de una FK pueden repetirse en una tabla o ser nulos.
  • Deben existir en una tabla en la que son PK.

Valores Únicos

  • Columna(s) que no puede tomar valores repetidos.
  • Muy similares a las PK, pero pueden tomar el valor «nulo».

Valores Nulos

NULO es un valor que se puede asignar a cualquier columna si no se especifica lo contrario.

  • Puede solucionar algunos problemas, pero crear otros; debemos evitar su uso si es posible.
  • Los SGBD integran mecanismos para trabajar con estos valores, pero no es una tarea simple.

Big Data

MapReduce

  • Paradigma básico del Big Data.
  • Infraestructura con una red de servidores y un sistema de control.
  • Proporciona redundancia y tolerancia a fallos.
  • Los datos masivos se dividen en varios nodos.
  • Cada nodo aplica la operación requerida a sus datos (map).
  • La salida se asigna a otro(s) nodo(s).
  • Este último nodo combina los resultados parciales (reduce).

Apache Hadoop

  • Sistema de almacenamiento distribuido.
  • Conjunto de utilidades que incluye HDFS y MapReduce.
  • Pensado para funcionar en una red de ordenadores «barata».
  • Implementa medidas para garantizar el servicio incluso con fallos en los dispositivos.

Apache Kafka

  • Publicar y suscribirse a eventos.
  • Almacenar y procesar.

Apache Spark

  • Sistema unificado para procesamiento de datos en gran escala.
  • Procesa los datos en pequeños lotes (microbatches).
  • Permite operaciones de filtrado, agregación y análisis complejo.

Apache Storm

  • Sistema específico para procesamiento de flujo de datos. Similar a Spark, pero:
  • Más complejo.
  • Menos latencia.
  • Pensado para flujos de datos, no microbatches.

Apache Flink

  • Framework para el procesamiento de flujos de datos.

Apache Zeppelin

  • Ofrece un dashboard, donde se puede realizar:
  • Tareas de análisis de forma interactiva.
  • Visualización de resultados.

Inteligencia Artificial

  • Sistemas de recomendación.
  • Visión artificial.
  • Traducción de idiomas.
  • Realidad aumentada.
  • Conducción autónoma.
  • Asistentes virtuales.
  • Robots.
  • Análisis inteligente de datos.

Repercusiones Laborales y Sociales

  • Los trabajos necesitarán adaptarse a convivir con automatismos más eficaces.
  • Necesidad de un nivel educativo diferente.
  • Habilidades difíciles de automatizar (sociales, creativas, abstracción, …).
  • Se crearán nuevos empleos.
  • Nuevas distribuciones de empleo.
  • Sueldos más altos.
  • Aumentarán los gastos en salud (población envejecida).
  • Inversiones en energías eficientes.

Machine Learning

Aprendizaje Automático

Supervisado/No supervisado.

Supervisado: Clasificación (categórica) / Regresión (numérica).

No supervisado: Clustering.

Algoritmos de Clasificación

  • Decision Trees.
  • SVM.
  • K-NN.
  • Neural Networks.
  • Binaria/Multiclase/Etiqueta.

Funciones Loss:

  • BCE (Bin/Criterio).
  • CE (Clase).

Métricas de Clasificación:

  • Acc = TP + TN / P + N.
  • Pr = TP / TP + FP.
  • Rc = TP / TP + FN.
  • F1 = R * Pr * Rc / Pr + Rc.

Algoritmos de Regresión

  • Regresión lineal/no lineal.

Funciones Loss:

  • MAE.
  • MSE.
  • RMSE.

Puede haber múltiples soluciones que son consistentes con los datos:

  • En este caso, se optará por la solución de menos complejidad (navaja de Ockham).

No Supervisado: Clustering

  • Jerárquico/Partición.

Técnicas de Validación

Asegurar que un modelo es bueno con datos futuros (no vistos).

Procedimiento:

  • Vamos a ocultar parte de los datos de entrada.
  • El algoritmo solamente verá la parte que llamaremos de train.
  • El resto será el conjunto de test.

Validación Simple

  • Dividir el conjunto en dos particiones.
  • Train: 80% de los datos (por ejemplo).
  • Test: Datos restantes.
  • Técnica adecuada para grandes cantidades de datos.
  • Con pocos datos habrá un sesgo en la estimación.

Bootstrap

  • Dividir el conjunto en dos particiones.
  • Train: Muestreando con reemplazo N instancias (≈63,2%).
  • Test: Todos los datos.
  • Se obtiene una estimación optimista.
  • Adecuado para conjuntos de datos pequeños.
  • Como reducir el sesgo:
  • Repeticiones.
  • Validando con las instancias no muestreadas.
  • Ponderando las instancias según el grupo.

Validación Cruzada

  • Dividir los ejemplos en k grupos.
  • Train: K entrenamientos con k-1 grupos.
  • Test: Con el grupo restante.
  • Para conjuntos de datos grandes y pequeños.
  • Grandes: k será pequeño (suele ser 10).
  • Pequeños: k será grande (hasta leave-one-out).
  • También se puede repetir múltiples veces con divisiones distintas en cada caso.

Meta-validación

  • Para cuando los modelos utilizados requieren de algún hiperparámetro.
  • Dividir el conjunto en tres particiones.
  • Train: 80% de los datos (por ejemplo).
  • Dev (validación): 10% de los datos (por ejemplo).
  • Test: Datos restantes.
  • Probamos varios valores para el hiperparámetro evaluando con validación o DEV.
  • Con el mejor valor, evaluamos con el conjunto de TEST.

Test Binomial

  • Basado en el porcentaje de acierto (o error) y el número de instancias de test.
  • Responde a la pregunta:
  • ¿Cómo es de probable que obtengamos esa diferencia de porcentajes con ese número de instancias?
  • Si hay pocas instancias hay más incertidumbre.

Test de la t Pareado

  • Útil si tenemos un esquema de validación con repetición (ej: validación cruzada).
  • Podemos explotar el hecho de que tenemos varios resultados para cada clasificador.
  • Este test dirá si las diferencias observadas en un par de clasificadores específico son estadísticamente significativas.

Test de McNemar

  • Construir una tabla 2×2 resumiendo casos de acuerdo o desacuerdo entre clasificadores.

Preprocesado

Estandarización

z = x – `x / s

Normalización

z = x – xmin / xmax – xmin (entre 0 y 1)

z = 2 * (x – xmin / xmax – xmin) – 1 (entre 1 y -1)

Codificación

  • Binaria.
  • Multi clase one-hot.
  • Multi etiqueta one-hot.

Reducción de la Dimensión

PCA

Técnica que busca encontrar las combinaciones lineales de variables que capturan la mayor varianza en los datos.

  • Busca las mejores Componentes Principales (PC): Imaginemos que tenemos 2 genes y 10 células.
  • Queremos pasar de 2D a 1D: Una sola PC.
  • Pasos:
  • Estandarizar datos.
  • Buscar recta que mejor ajuste.
  • Ha de pasar por el origen de coordenadas.
  • Obtener «eigenvector».
  • 𝑃𝐶 = 𝐺𝑒𝑛1 ∗ 0.82 + 𝐺𝑒𝑛2 ∗ 0.57
  • Evaluar: Varianza explicada.
  • ¿Cómo se obtiene?
  • Proyectar puntos en cada PC.
  • Obtener distancia de cada uno a PC.
  • Calcular suma de distancias al cuadrado.
  • Dividir por el número de puntos menos 1.

TSNE

Técnica de reducción de dimensionalidad no lineal.

  • Busca aproximar puntos cercanos y alejar otros.
  • Busca mejorar PCA:
  • Escalado no lineal para representar cambios en múltiples niveles.
  • Separación optima en 2D.
  • Tenemos 2 genes y 6 células, queremos pasar a 1D.
  • Pasos:
  • Obtener distancias de todo con todos.
  • Escalar distancias según perplejidad de vecinos.
  • Ubicar los puntos de forma aleatoria en 1D.
  • Mover puntos utilizando matriz de distancias en 2D.
  • Parar en X iteraciones o cuando no se mejore.
  • Las nuevas dimensiones no significan nada.
  • La distancia en el nuevo espacio no significa nada.
  • Proximidad:
  • Los puntos muy próximos aportan información.
  • Los lejanos, no mucha.
  • Computacionalmente más costoso que PCA.
  • No trabaja bien con datos con ruido.
  • Solución habitual: PCA + t-SNE
  • PCA: Se reduce el tamaño original a algo más de 2D.
  • Computacionalmente menos costoso.
  • Gestiona bien el ruido.
  • No es bueno en 2D.
  • t-SNE: Se reduce el resultado de PCA a 2D con t-SNE.
  • Bueno para visualizar en 2D.
  • Capaz de buscar relaciones no-lineales.

Análisis de Componentes Independientes (ICA)

Detalles:

  • Técnica de reducción de dimensionalidad lineal.
  • Transforma columnas dependientes en independientes.
  • No proporciona método de selección de mejores componentes principales.
  • Es un método no supervisado.

Análisis Discriminante Lineal (LDA)

Detalles:

  • Técnica de reducción de dimensionalidad lineal.
  • Se utiliza en problemas de clasificación.
  • Proyecta los datos en un espacio de menor dimensión buscando:
  • Muestras de diferentes clases estén lo más separadas posible.
  • Muestras dentro de la misma clase están cercanas entre sí.
  • Es un método supervisado, necesita las etiquetas de las clases.

Selección de Características

No Supervisados

No utilizan una variable como objetivo.

  • Eliminan las características redundantes.
  • Métodos:
  • Correlación.
  • Varianza.

Supervisados: Filtros

Obtener, para cada característica, su importancia con respecto de la variable objetivo.

  • La medida de importancia varía según el método aplicado.
  • Pearson.
  • Kendall.
  • Spearman.
  • Chi-cuadrado.
  • Información mutua.
  • F-Score.
  • OJO: En los métodos supervisados, las variables más correladas con la variable objetivo son mejores.

Wrappers

  • Seleccionan las características utilizando en un algoritmo de aprendizaje.
  • Seleccionar un subconjunto de características.
  • Entrenar un modelo con ese subconjunto.
  • Medir si es bueno para predecir la variable deseada.
  • Repetir con otro subconjunto diferente.
  • Tras hacer múltiples combinaciones, quedarse con la mejor.
  • Recursive Feature Elimination (RFE)
  • Comienza con todas las características existentes.
  • En cada iteración, elimina las menos importantes.
  • Repite hasta:
  • Alcanzar el número deseado de características.
  • Se cumple un criterio de parada definido.
  • Recursive Feature Addition (RFA)
  • Comienza con un conjunto vacío.
  • En cada iteración, agrega la característica que proporciona el mayor beneficio.
  • Repite hasta:
  • Alcanzar el número deseado de características.
  • Hasta que se cumple un criterio de parada.
  • Exhaustive Search
  • Evalúa todas las posibles combinaciones de características.
  • Selecciona el subconjunto que maximiza el rendimiento del modelo.
  • Al evaluar todas las combinaciones:
  • Es computacionalmente costoso.
  • Práctico solo para conjuntos de características pequeños.

Embebidos

  • La selección de características se realiza durante el entrenamiento del modelo.
  • El modelo recibe todas las características.
  • Durante la fase de entrenamiento decide la importancia de cada característica.
  • Regularización L1 (Lasso):
  • Penaliza los coeficientes de las características.
  • Si algún coeficiente es cero, esa característica se elimina.
  • Regularización L2 (Ridge):
  • También penaliza los coeficientes de las características.
  • Menos agresiva que la regularización L1, ya que no elimina características por completo.
  • Árboles de decisión:
  • Estos pueden proporcionar una medida de importancia de las características.
  • Esta se obtiene utilizando la ganancia de información o la reducción de impureza.
  • Ejemplos: Random Forest y Gradient Boosting.

Clustering (Clasificación No Supervisada)

Asignar «clases» a los objetos, aunque estas no están predefinidas.

Permite segmentar los objetos en grupos de «similares» características.

Problemas:

  • Elegir el k correcto, mayor produce fragmentación menor unión de grupos diferentes.
  • Medir la calidad del resultado (subjetivo).

Tipos según pertenencia:

  • Duro: Pertenece o no a un grupo.
  • Suave: Pueden pertenecer a varios grupos con distinto grado de pertenencia.
  • Con solapamiento: Pueden pertenecer a varios grupos de manera completa o parcial.
  • Un objeto puede pertenecer de manera completa a más de un grupo.
  • Jerárquico: Un objeto pertenece a un grupo y a los ancestros de ese.

Según creación:

  • Duro: Pertenece o no a un grupo.
  • Suave: Pueden pertenecer a varios grupos con distinto grado de pertenencia.
  • Con solapamiento: Pueden pertenecer a varios grupos de manera completa o parcial.
  • Un objeto puede pertenecer de manera completa a más de un grupo.
  • Jerárquico: Un objeto pertenece a un grupo y a los ancestros de ese.

Distancias y Medidas

Para agrupar objetos similares.

Es imprescindible usar distancias o medidas de similitud.

Las medidas de similitud son la inversa de las distancias: menos distancia, más similitud.

Axiomas de la métricas:

  • No negatividad: No retornar valores negativos.
  • Simetría: Distancia A-B igual que distancia B-A.
  • Desigualdad triangular: Suma de dos lados cualesquiera mayor que el lado restante.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *