MIRJALILI, VAHID / RASCHKA, SEBASTIAN
Introducción xvii
	Capítulo 1. Dar a los ordenadores el poder de aprender de los datos 23
	Crear máquinas inteligentes para transformar datos en conocimiento 24
	Los tres tipos de aprendizaje automático 24
	Hacer predicciones sobre el futuro con el aprendizaje supervisado 25
	Clasifi cación para predecir etiquetas de clase 25
	Regresión para predecir resultados continuos 27
	Resolver problemas interactivos con aprendizaje reforzado 28
	Descubrir estructuras ocultas con el aprendizaje sin supervisión 29
	Encontrar subgrupos con el agrupamiento 29
	Reducción de dimensionalidad para comprimir datos 30
	Introducción a la terminología básica y las notaciones 30
	Una hoja de ruta para crear sistemas de aprendizaje automático 33
	Preprocesamiento: Dar forma a los datos 34
	Entrenar y seleccionar un modelo predictivo 34
	Evaluar modelos y predecir instancias de datos no vistos 35
	Utilizar Python para el aprendizaje automático 36
	Instalar Python y sus paquetes desde Python Package Index 36
	Utilizar la distribución y el gestor de paquetes Anaconda de Python 37
	Paquetes para cálculo científi co, ciencia de datos
	y aprendizaje automático 37
	Resumen 38
	Capítulo 2. Entrenar algoritmos simples de aprendizaje
	automático para clasifi cación 39
	Neuronas artifi ciales: un vistazo a los inicios del aprendizaje
	automático 40
	La defi nición formal de una neurona artifi cial 41
	La regla de aprendizaje del perceptrón 43
	Implementar un algoritmo de aprendizaje de perceptrón en Python 46
	Una API perceptrón orientada a objetos 46
	Entrenar un modelo de perceptrón en el conjunto de datos Iris 50
	Neuronas lineales adaptativas y la convergencia del aprendizaje 56
	Minimizar funciones de coste con el descenso de gradiente 57
	Implementar Adaline en Python 60
	Mejorar el descenso de gradiente mediante el escalado
	de características 64
	Aprendizaje automático a gran escala y descenso
	de gradiente estocástico 66
	Resumen 72
	Capítulo 3. Un recorrido por los clasifi cadores
	de aprendizaje automático con scikit-learn 73
	Elegir un algoritmo de clasifi cación 74
	Primeros pasos con scikit-learn: entrenar un perceptrón 74
	Modelar probabilidades de clase mediante regresión logística 81
	Intuición en regresión logística y probabilidades condicionales 81
	Aprender los pesos de la función de coste logística 85
	Convertir una implementación Adaline en un algoritmo
	para regresión logística 88
	Entrenar un modelo de regresión logística con scikit-learn 93
	Abordar el sobreajuste con la regularización 95
	Margen de clasifi cación máximo con máquinas
	de vectores de soporte 98
	Margen máximo de intuición 99
	Tratar un caso separable no lineal con variables fl exibles 101
	Implementaciones alternativas en scikit-learn 103
	Resolver problemas no lineales con una SVM kernelizada 104
	Métodos kernel para datos inseparables lineales 104
	El truco de kernel para encontrar hiperplanos separados
	en un espacio de mayor dimensionalidad 106
	Aprendizaje basado en árboles de decisión 110
	Maximizar la ganancia de información: sacar el mayor partido
	de tu inversión 112
	Crear un árbol de decisión 117
	Combinar árboles de decisión múltiples mediante bosques aleatorios 120
	K-vecinos más cercanos: un algoritmo de aprendizaje vago 123
	Resumen 127
	Capítulo 4. Generar buenos modelos de entrenamiento:
	preprocesamiento de datos 129
	Tratar con datos ausentes 129
	Identifi car datos ausentes en datos tabulares 130
	Eliminar muestras o características con valores ausentes 131
	Imputar valores ausentes 132
	Entender la API de estimador de scikit-learn 133
	Trabajar con datos categóricos 134
	Características nominales y ordinales 134
	Crear un conjunto de datos de ejemplo 135
	Mapear características ordinales 135
	Codifi car etiquetas de clase 136
	Realizar una codifi cación en caliente sobre características
	nominales 138
	Dividir un conjunto de datos en conjuntos de prueba
	y de entrenamiento individuales 140
	Ajustar las características a la misma escala 142
	Seleccionar características signifi cativas 145
	Regularización L1 y L2 como penalizaciones contra
	la complejidad del modelo 146
	Una interpretación geométrica de la regularización L2 146
	Soluciones dispersas con la regularización L1 148
	Algoritmos de selección de características secuenciales 152
	Evaluar la importancia de las características
	con bosques aleatorios 158
	Resumen 161
	Capítulo 5. Comprimir datos mediante la reducción
	de dimensionalidad 163
	Reducción de dimensionalidad sin supervisión mediante
	el análisis de componentes principales 164
	Los pasos esenciales que se esconden detrás del análisis
	de componentes principales 164
	Extraer los componentes principales paso a paso 166
	Varianza total y explicada 169
	Transformación de características 170
	Análisis de componentes principales en scikit-learn 173
	Compresión de datos supervisada mediante análisis
	discriminante lineal 177
	Análisis de componentes principales frente a análisis
	discriminante lineal 177
	Cómo funciona interiormente el análisis discriminante lineal 178
	Calcular las matrices de dispersión 179
	Seleccionar discriminantes lineales para el nuevo subespacio
	de características 182
	Proyectar muestras en el nuevo espacio de características 184
	ADL con scikit-learn 185
	Utilizar el análisis de componentes principales con kernels
	para mapeos no lineales 187
	Funciones kernel y el truco del kernel 188
	Implementar un análisis de componentes principales
	con kernels en Python 194
	Ejemplo 1: separar formas de media luna 195
	Ejemplo 2: separar círculos concéntricos 198
	Proyectar nuevos puntos de datos 201
	Análisis de componentes principales con kernel en scikit-learn 205
	Resumen 206
	Capítulo 6. Aprender las buenas prácticas para la evaluación
	de modelos y el ajuste de hiperparámetros 207
	Simplifi car fl ujos de trabajo con pipelines 207
	Cargar el conjunto de datos Cancer Wisconsin 208
	Combinar transformadores y estimadores en un pipeline 209
	Utilizar la validación cruzada de K iteraciones para evaluar
	el rendimiento de un modelo 211
	El método de retención 212
	Validación cruzada de k iteraciones 213
	Depurar algoritmos con curvas de validación y aprendizaje 217
	Diagnosticar problemas de sesgo y varianza con curvas
	de aprendizaje 218
	Resolver el sobreajuste y el subajuste con curvas de validación 221
	Ajustar los modelos de aprendizaje automático con la
	búsqueda de cuadrículas 223
	Ajustar hiperparámetros con la búsqueda de cuadrículas 223
	Selección de algoritmos con validación cruzada anidada 225
	Observar diferentes métricas de evaluación de rendimiento 227
	Leer una matriz de confusión 228
	Optimizar la exactitud y la exhaustividad de un modelo
	de clasifi cación 229
	Representar una característica operativa del receptor 232
	Métricas de califi cación para clasifi caciones multiclase 235
	Tratar con el desequilibrio de clases 236
	Resumen 239
	Capítulo 7. Combinar diferentes modelos para
	el aprendizaje conjunto 241
	Aprender con conjuntos 241
	Combinar clasifi cadores mediante el voto mayoritario 246
	Implementar un sencillo clasifi cador de voto mayoritario 246
	Utilizar el principio de voto mayoritario para hacer predicciones 253
	Evaluar y ajustar el clasifi cador conjunto 256
	Bagging: construir un conjunto de clasifi cadores
	a partir de muestras bootstrap 262
	El bagging resumido 262
	Aplicar el bagging para clasifi car muestras en el conjunto
	de datos Wine 264
	Potenciar los clasifi cadores débiles con el boosting adaptado 268
	Cómo trabaja el boosting 268
	Aplicar AdaBoost con scikit-learn 273
	Resumen 276
	Capítulo 8. Aplicar el aprendizaje automático para
	el análisis de sentimiento 277
	Preparar los datos de críticas de cine de IMDb para
	el procesamiento de texto 278
	Obtener el conjunto de datos de críticas de cine 278
	Preprocesar el conjunto de datos de películas en un
	formato adecuado 279
	Introducir el modelo «bolsa de palabras» 281
	Transformar palabras en vectores de características 281
	Relevancia de las palabras mediante frecuencia
	de término?frecuencia inversa de documento 283
	Limpiar datos textuales 286
	Procesar documentos en componentes léxicos 288
	Entrenar un modelo de regresión logística para clasifi cación
	de documentos 290
	Trabajar con datos más grandes: algoritmos online
	y aprendizaje out-of-core 292
	Modelado de temas con Latent Dirichlet Allocation 296
	Descomponer documentos de textos con LDA 297
	LDA con scikit-learn 297
	Resumen 301
	Capítulo 9. Incrustar un modelo de aprendizaje automático
	en una aplicación web 303
	Serializar estimadores de scikit-learn ajustados 304
	Confi gurar una base de datos SQLite para el almacenamiento
	de datos 307
	Desarrollar una aplicación web con Flask 309
	Nuestra primera aplicación web con Flask 310
	Validación y renderizado de formularios 312
	Confi gurar la estructura del directorio 313
	Implementar una macro mediante el motor de plantillas Jinja2 314
	Añadir estilos con CSS 315
	Crear la página resultante 316
	Convertir el clasifi cador de críticas de cine en una aplicación web 316
	Archivos y carpetas: observar el árbol de directorios 318
	Implementar la aplicación principal como app.py 320
	Preparar el formulario de críticas 322
	Crear una plantilla de página de resultados 324
	Desplegar la aplicación web en un servidor público 326
	Crear una cuenta de PythonAnywhere 326
	Cargar la aplicación del clasifi cador de películas 327
	Actualizar el clasifi cador de películas 328
	Resumen 330
	Capítulo 10. Predicción de variables de destino continuas
	con análisis de regresión 331
	Introducción a la regresión lineal 332
	Regresión lineal simple 332
	Regresión lineal múltiple 333
	Explorar el conjunto de datos Housing 334
	Cargar el conjunto Housing en un marco de datos 335
	Visualizar las características importantes de un conjunto de datos 336
	Observar las relaciones mediante una matriz de correlación 338
	Implementar un modelo de regresión lineal de mínimos
	cuadrados ordinarios 341
	Resolver la regresión para parámetros de regresión con
	el descenso del gradiente 341
	Estimar el coefi ciente de un modelo de regresión con scikit-learn 346
	Ajustar un modelo de regresión robusto con RANSAC 347
	Evaluar el rendimiento de los modelos de regresión lineal 350
	Utilizar métodos regularizados para regresión 354
	Convertir un modelo de regresión lineal en una curva:
	la regresión polinomial 356
	Añadir términos polinomiales con scikit-learn 356
	Modelar relaciones no lineales en el conjunto de datos Housing 358
	Tratar con relaciones no lineales mediante bosques aleatorios 361
	Regresión de árbol de decisión 362
	Regresión con bosques aleatorios 364
	Resumen 367
	Capítulo 11. Trabajar con datos sin etiquetar:
	análisis de grupos 369
	Agrupar objetos por semejanza con k-means 370
	Agrupamiento k-means con scikit-learn 370
	Una manera más inteligente de colocar los centroides
	de los grupos iniciales con k-means++ 375
	Agrupamiento pesado frente a no pesado 376
	Utilizar el método elbow para encontrar el número óptimo de grupos 379
	Cuantifi car la calidad del agrupamiento mediante gráfi cos de silueta 380
	Organizar agrupamientos como un árbol jerárquico 385
	Agrupar los grupos de manera ascendente 386
	Realizar agrupamientos jerárquicos en una matriz de distancias 387
	Adjuntar dendrogramas a un mapa de calor 391
	Aplicar un agrupamiento aglomerativo con scikit-learn 393
	Ubicar regiones de alta densidad con DBSCAN 394
	Resumen 400
	Capítulo 12. Implementar una red neuronal artifi cial
	multicapa desde cero 401
	Modelar funciones complejas con redes neuronales artifi ciales 402
	Resumen de una red neuronal de una capa 404
	La arquitectura de red neuronal multicapa 406
	Activar una red neuronal mediante la propagación hacia delante 409
	Clasifi car dígitos manuscritos 411
	Obtener el conjunto de datos MNIST 412
	Implementar un perceptrón multicapa 418
	Entrenar una red neuronal artifi cial 429
	Calcular la función de coste logística 430
	Desarrollar tu intuición para la propagación hacia atrás 433
	Entrenar redes neuronales mediante la propagación hacia atrás 434
	Sobre la convergencia en redes neuronales 439
	Unas últimas palabras sobre la implementación
	de redes neuronales 440
	Resumen 441
	Capítulo 13. Paralelización de entrenamiento de redes
	neuronales con TensorFlow 443
	TensorFlow y rendimiento de entrenamiento 444
	¿Qué es TensorFlow? 445
	Cómo aprenderemos TensorFlow 446
	Primeros pasos con TensorFlow 446
	Trabajar con estructuras de matriz 449
	Desarrollar un modelo simple con la API de bajo nivel de TensorFlow 450
	Entrenar redes neuronales efi cazmente con las API de alto
	nivel de TensorFlow 455
	Crear redes neuronales multicapa mediante el API Layers
	de TensorFlow 456
	Desarrollar una red neuronal multicapa con Keras 460
	Elegir funciones de activación para redes multicapa 465
	Resumen de la función logística 466
	Estimar probabilidades de clase en clasifi caciones multiclase
	con softmax 468
	Ampliar el espectro de salida con una tangente hiperbólica 469
	Activación de la unidad lineal rectifi cada 471
	Resumen 473
	Capítulo 14. Ir más lejos: la mecánica de TensorFlow 475
	Características clave de TensorFlow 476
	Rango y tensores de TensorFlow 476
	Cómo obtener la dimensión y la forma de un tensor 477
	Entender los grafos computacionales de TensorFlow 478
	Marcadores de posición en TensorFlow 481
	Defi nir marcadores de posición 481
	Alimentar marcadores de posición con datos 482
	Defi nir marcadores de posición para matrices de datos con
	diferentes tamaños de lote 483
	Variables en TensorFlow 484
	Defi nir variables 485
	Inicializar variable 487
	Alcance de la variable 488
	Reutilizar variables 490
	Crear un modelo de regresión 493
	Ejecutar objetos en un grafo de TensorFlow mediante
	sus nombres 497
	Almacenar y restablecer un modelo en TensorFlow 498
	Transformar tensores como matrices de datos
	multidimensionales 501
	Utilizar la mecánica de control de fl ujo para crear grafos 505
	Visualizar el grafo con TensorBoard 509
	Ampliar tu experiencia en TensorBoard 512
	Resumen 513
	Capítulo 15. Clasifi car imágenes con redes neuronales
	convolucionales profundas 515
	Bloques de construcción de redes neuronales convolucionales 516
	Entender las CNN y conocer las jerarquías de características 516
	Realizar convoluciones discretas 518
	Realizar una convolución discreta en una dimensión 518
	El efecto del relleno de ceros en una convolución 521
	Determinar el tamaño de la salida de convolución 523
	Realizar una convolución discreta en 2D 524
	Submuestreo 528
	Juntarlo todo para crear una CNN 530
	Trabajar con entradas múltiples o canales de color 530
	Regularizar una red neuronal con la eliminación 534
	Implementar una red neuronal convolucional profunda
	con TensorFlow 536
	La arquitectura de una CNN multicapa 536
	Cargar y preprocesar los datos 538
	Implementar una CNN en el API de TensorFlow de bajo nivel 539
	Implementar una CNN en la API Layers de TensorFlow 552
	Resumen 558
	Capítulo 16. Modelado de datos secuenciales mediante
	redes neuronales recurrentes 559
	Introducir datos secuenciales 560
	Modelar datos secuenciales: el orden sí importa 560
	Representar secuencias 561
	Las diferentes categorías del modelado de secuencias 562
	RNN para modelar secuencias 563
	Entender la estructura y el fl ujo de una RNN 563
	Calcular activaciones en una RNN 565
	Los retos del aprendizaje de interacciones de largo alcance 568
	Unidades de LSTM 570
	Implementar una RNN multicapa para modelar secuencias
	en TensorFlow 572
	Proyecto uno: crear un análisis de sentimiento de las críticas
	de películas IMDb con RNN multicapa 573
	Preparar los datos 574
	Embedding 578
	Construir un modelo de RNN 580
	El constructor de la clase SentimentRNN 581
	El método build 582
	Paso 1: defi nir celdas RNN multicapa 584
	Paso 2: defi nir los estados iniciales para las celdas RNN 584
	Paso 3: crear la RNN utilizando las celdas RNN y sus estados 585
	El método train 585
	El método predict 587
	Instanciar la clase SentimentRNN 587
	Entrenar y optimizar el análisis de sentimiento de un modelo RNN 588
	Proyecto dos: implementar una RNN para el modelado
	de lenguaje a nivel de carácter en TensorFlow 589
	Preparar los datos 590
	Construir un modelo RNN a nivel de carácter 594
	El constructor 595
	El método build 596
	El método train 598
	El método sample 600
	Crear y defi nir el modelo CharRNN 601
	El modelo CharRNN en el modo de muestreo 602
	Resumen del capítulo y del libro 602
	Índice analítico 605 
El aprendizaje automático está invadiendo el mundo del software. Si quieres entender y trabajar la vanguardia del aprendizaje automático, las redes neuronales y el aprendizaje profundo, esta segunda edición del bestseller Python Machine Learning, es tu libro.