Resumen Ampliado: Introduction to Machine Learning with Python
1. Introducción
El aprendizaje automático (machine learning) consiste en extraer conocimiento a partir de
datos y se encuentra en la intersección de la estadística, la inteligencia artificial y la
informática. Esta disciplina tiene un impacto amplio, desde aplicaciones cotidianas como
recomendaciones en línea hasta investigaciones científicas complejas.
El capítulo expone la motivación para utilizar machine learning frente a los sistemas
basados en reglas rígidas, destacando su adaptabilidad y la capacidad de generalizar. Se
introduce la diferencia entre aprendizaje supervisado (con datos etiquetados) e no
supervisado (sin etiquetas). También se destaca la importancia de Python como
herramienta preferida por su ecosistema de bibliotecas (NumPy, SciPy, pandas, matplotlib,
Jupyter y scikit-learn).
Finalmente, se presenta un ejemplo práctico usando el conjunto de datos de Iris, mostrando
cómo construir un modelo de clasificación k-vecinos más cercanos, evaluarlo y hacer
predicciones.
2. Aprendizaje Supervisado
Este capítulo cubre algoritmos para clasificación y regresión, abordando conceptos de
generalización, sobreajuste y subajuste. Se explora la relación entre la complejidad del
modelo y el tamaño del conjunto de datos.
Se analizan varios algoritmos ampliamente utilizados:
- k-Vecinos más cercanos (k-NN)
- Modelos lineales (regresión lineal, regresión logística, clasificación ridge, etc.)
- Clasificadores Naive Bayes
- Árboles de decisión
- Ensambles (Random Forest, AdaBoost, etc.)
- Máquinas de soporte vectorial (SVM) kernelizadas
- Redes neuronales (MLP)
Además, se introduce el concepto de función de decisión y estimación de incertidumbre
usando predicciones probabilísticas.
3. Aprendizaje No Supervisado y Preprocesamiento
Explora técnicas para encontrar patrones sin etiquetas previas. Se abordan los desafíos de
evaluar estos modelos. Se tratan:
- Escalado y transformación de datos (estandarización, normalización)
- Reducción de dimensionalidad (PCA, NMF)
- Aprendizaje de manifolds (t-SNE)
- Técnicas de agrupamiento: k-Means, Clustering Jerárquico, DBSCAN
Se analiza cómo estas técnicas ayudan en la compresión de datos, mejora del rendimiento
de modelos supervisados y descubrimiento de estructuras ocultas.
4. Representación de Datos e Ingeniería de Características
Se profundiza en la preparación de los datos para modelos de ML:
- Codificación de variables categóricas (One-Hot Encoding)
- Discretización y binning
- Interacciones y polinomios
- Transformaciones no lineales univariadas
- Selección automática de características (estadísticas univariadas, selección basada en
modelos, selección iterativa)
- Uso del conocimiento experto
Estas técnicas son fundamentales para mejorar la precisión de los modelos.
5. Evaluación y Mejora de Modelos
Presenta métodos avanzados para evaluar y optimizar modelos:
- Validación cruzada (k-fold, estratificada, leave-one-out)
- Búsqueda en malla (Grid Search) para ajuste de hiperparámetros
- Métricas de evaluación: precisión, recall, F1-score, AUC para clasificación binaria y
multiclase; R^2 y error absoluto para regresión
Se enfatiza la importancia de evitar el sobreajuste durante la validación de modelos.
6. Cadenas de Algoritmos y Pipelines
Se explica cómo estructurar flujos de trabajo completos con scikit-learn usando Pipelines:
- Encadenamiento de transformaciones y modelos
- Selección de parámetros dentro de un pipeline
- Grid Search integrado a pipelines
- Comparación de múltiples modelos en un solo pipeline
Esto permite reutilización, validación más precisa y evita fugas de datos.
7. Trabajo con Datos de Texto
Describe cómo aplicar ML a texto (PLN):
- Representación mediante Bolsa de Palabras
- Tokenización, stopwords, stemming y lematización
- Reescalado usando TF-IDF
- n-gramas
- Modelado de temas (LDA)
- Análisis de sentimientos en reseñas de películas como caso de estudio
El capítulo muestra cómo adaptar el pipeline de ML tradicional a datos textuales.
8. Conclusión y Temas Avanzados
Se presentan pasos para llevar un sistema de ML desde el prototipo hasta la producción:
- Consideraciones prácticas (evaluación, implementación, pruebas)
- Creación de estimadores personalizados
- Expansión hacia frameworks más complejos como TensorFlow, Keras o PyTorch
- Modelado probabilístico, sistemas de recomendación, aprendizaje por refuerzo
- Escalado para grandes volúmenes de datos
Se brindan sugerencias para continuar aprendiendo y perfeccionarse en ML.