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.