ORTEGA CANDEL, JOSÉ MANUEL
CAPÍTULO 1. INTRODUCCIÓN A BIG DATA 1.1 INTRODUCCIÓN 1.2 DEFINICIÓN DE BIG DATA 1.3 TIPOS DE DATOS 1.4 CARACTERÍSTICAS DE BIG DATA 1.5 DESAFÍOS DE BIG DATA 1.6 TECNOLOGÍAS PARA BIG DATA 1.7 PERFILES BIG DATA 1.7.1 DIRECCIÓN DE DATOS(CHIEF DATA OFFICER-CDO) 1.7.2 CIENTÍFICO DE DATOS(SCIENTIST) 1.7.3 ANALISTA DE DATOS(DATA ANALYST) 1.7.4 INGENIERIO DE DATOS(DATA ENGINEER) 1.7.5 ARQUITECTO DE DATOS(DATA ARCHITECT) 1.7.6 GESTOR DE DATOS(DATA MANAGER) 1.7.7 CIUDADANO CIENTÍFICO DE DATOS(CITIZEN DATA SCIENTIST) 1.7.8 ADMINISTRADOR DE DATOS( DATA STEWARD) 1.7.9 TABLA COMPARATIVA 1.8 BIG DATA ANALYTICS CAPÍTULO 2. ARQUITECTURAS BIG DATA 2.1 INTRODUCCIÓN 2.2 ACTORES PRINCIPALES EN UNA ARQUITECTURA BIG DATA 2.2.1 SISTEMA DE ORQUESTACIÓN 2.2.2 PROVEEDOR DE DATOS 2.2.3 PROVEEDOR DE APLICACIONES BIG DATA 2.2.4 PROVEEDOR DE INFRAESTRUCTURA BIG DATA 2.2.5 CONSUMIDOR DE DATOS 2.2.6 CAPA DE SEGURIDAD Y PRIVACIDAD 2.2.7 CAPA DE GESTIÓN. 2.3 TIPOS DE ARQUITECTURAS 2.3.1 PROCESAMIENTO BATCH 2.3.2 PROCESAMIENTO STREAMING 2.3.3 PROCESAMIENTO MAPREDUCE 2.4 ARQUITECTURA LAMBDA. 2.5 ARQUITECTURA KAPPA 2.6 APACHE KAFKA 2.7 ARQUITECTURA POR CAPAS 2.8 CASOS DE USO DE ARQUITECTURAS BIG DATA 2.8.1 AUTOMÓVILES EN UN MUNDO DE STREAMING 2.8.2 CONSTRUYENDO UN SISTEMA DE LINAJE DE DATOS 2.8.3 WOLFRAM LANGUAGE 2.9 BIG DATA LANDSCAPE 2.10 HERRAMIENTA PARA EL ANÁLISIS DE DATOS MASIVOS 2.11 CONCLUSIONES CAPÍTULO 3. BASES DE DATOS PARA BIG DATA 3.1 INTRODUCCIÓN 3.2 COMPARACIÓN SQL VS NOSQL 3.3 BASES DE DATOS NOSQL 3.4 VENTAJAS DE LAS BASES DE DATOS NOSQL 3.5 TIPOS DE BASES DE DATOS NOSQL 3.6 IMPLANTANDO NOSQL 3.7 BASES DE DATOS DOCUMENTALES 3.7.1 CASOS DE USO BASES DE DATOS DOCUMENTALES 3.7.2 MONGODB 3.7.3 INDEXACIÓN EN MONGODB 3.7.4 REPLICACIÓN EN MONGODB 3.7.5 USO DE MONGODB DESDE PYTHON 3.7.6 COUCHDB 3.7.7 ARQUITECTURA DE COUCHDB 3.8 BASES DE DATOS ORIENTADAS A COLUMNAS 3.8.1 APACHE CASSANDRA 3.8.2 CONSISTENCIA EN APACHE CASSANDRA 3.8.3 CASOS DE USO 3.9 BASES DE DATOS CLAVE-VALOR(KEY-VALUE) 3.9.1 REDIS 3.10 BASES DE DATOS ORIENTADAS A GRAFOS 3.10.1 CASOS DE USO BASES DATOS DE GRAFOS 3.10.2 NEO4J 3.11 TEOREMA CAP 3.12 CONCLUSIONES NOSQL CAPÍTULO 4. INTRODUCCIÓN A LA CIENCIA DE DATOS Y MACHINE LEARNING 4.1 DEFINICIÓN DE CIENCIA DE DATOS 4.2 DEFINICIONES DE APRENDIZAJE Y MACHINE LEARNING 4.3 SISTEMAS EXPERTOS 4.4 MINERÍA DE DATOS ( DATA MINING) 4.4.1 INTEGRACIÓN Y RECOPILACIÓN DE INFORMACIÓN 4.4.2 SELECCIÓN, LIMPIEZA Y TRANSFORMACIÓN DE DATOS 4.4.3 TÉCNICAS DE MINERÍA DE DATOS 4.5 INTRODUCCIÓN AL APRENDIZAJE AUTOMÁTICO 4.6 TIPOS DE APRENDIZAJE AUTOMÁTICO. 4.7 APRENDIZAJE SUPERVISADO VS NO SUPERVISADO 4.7.1 APRENDIZAJE SUPERVISADO:CLASIFICACIÓN Y REGRESIÓN 4.7.2 ÁRBOLES DE DECISIÓN 4.7.3 ALGORITMO K-NEAREST NEIGHBOR 4.7.4 APRENDIZAJE NO SUPERVISADO 4.8 TÉCNICAS DE MACHINE LEARNING 4.9 PROBLEMA DEL SOBREENTRENAMIENTO 4.9.1 CÓMO EVITAR EL SOBREENTRENAMIENTO 4.10 FASES PARA ABORDAR UN PROBLEMA DE ML 4.10.1 PASOS PARA CONSTRUIR UN MODELO DE ML 4.10.2 EVALUACIÓN DE MODELOS CAPÍTULO 5. TRATAMIENTO DE DATOS CON PYTHON 5.1 JUPYTER NOTEBOOK 5.2 MERCURY 5.3 NUMPY 5.4 SCIPY 5.5 PANDAS 5.5.1 ESTRUCTURAS DE DATOS EN PANDAS 5.5.2 SERIES 5.5.3 DATAFRAMES 5.5.4 LECTURA DE UN FICHERO CSV CON PANDAS 5.5.5 ALTERNATIVAS A PANDAS. 5.6 LECTURA DE UN FICHERO JSON 5.7 LECTURA Y ESCRITURA EN FORMATO PICKLE CAPÍTULO 6. SCIKIT-LEARN COMO LIBRERÍA DE MACHINE LEARNING 6.1 INTRODUCCIÓN A SCIKIT-LEARN 6.2 DATASETS EN SCIKIT-LEARN 6.3 CARGANDO CONJUNTOS DE DATOS EN SCIKIT-LEARN. 6.3.1 CONJUNTOS DE DATOS GENERADOS DE FORMA ALEATORIA 6.4 DIVIDIR DATOS DE ENTRENAMIENTO Y TEST. 6.5 APRENDIZAJE AUTOMÁTICO CON SCIKIT-LEARN. 6.5.1 ESTABLECER UNA METODOLOGÍA DE EVALUACIÓN 6.6 REGRESIÓN LINEAL 6.6.1 IMPLEMENTACIÓN DE REGRESIÓN LINEAL 6.6.2 PREDECIR EL VALOR DEL ALQUILER DE LAS VIVIENDAS 6.7 ALGORITMO DE REGRESIÓN LOGÍSTICA 6.7.1 VALIDACIÓN CRUZADA EN SCIKIT-LEARN 6.7.2 OBTENER LA MATRIZ DE CONFUSIÓN 6.8 INTRODUCCIÓN A LOS ÁRBOLES DE DECISIÓN 6.8.1 ALGORITMO DE ÁRBOLES DE DECISIÇON EN SCIKIT-LEARN 6.9 SVM COMO ALGORITMO DE MÁQUINAS DE VECTORES DE SOPORTE 6.9.1 ALGORITMO DE SUPPORT VECTOR MACHINE EN SCIKIT-LEARN 6.9.2 OPTIMIZANDO PARÁMETROS CON GRIDSEARCHCV 6.10 KNN COMO ALGORITMO DE CLASIFICACIÓN SUPERVISADA 6.10.1 IMPLEMENTACIÓN DE KNEIGHBORSCLASSIFIER 6.10.2 RADIUSNEIGHBORSCLASSIFIER 6.11 CLUSTERING Y APRENDIZAJE NO SUPERVISADO 6.12 EXTRACCIÓN DE CARACTERÍSTICAS CAPÍTULO 7. REDES NEURONALES ARTIFICIALES 7.1 INTRODUCCIÓN 7.2 PERCEPTRÓN SIMPLE 7.3 PERCEPTRÓN MULTICAPA 7.4 RED NEURONAL RECURRENTE 7.5 RED NEURONAL CONVOLUCIONAL(CNN) 7.6 REDES NEURONALES CON TENSOR FLOW 7.6.1 ALGORITMO DE BACKPROPAGATION 7.6.2 PLAYGROUND TENSOR FLOW 7.6.3 INTRODUCCIÓN A TENSOR FLOW 7.6.4 FUNCIONAMIENTO DE TENSOR FLOW 7.7 USO DE LA LIBRERÍA KERAS EN DEEP LEARNING 7.8 USO DE GOOGLE COLAB. 7.9 REDES NEURONALES CON SKLEARN 7.10 TABLA COMPARATIVA CAPÍTULO 8. PLATAFORMA HADOOP 8.1 INTRODUCCIÓN 8.2 HERRAMIENTAS 8.3 SERVICIOS Y HERRAMIENTAS DEL ECOSISTEMA HADOOP 8.4 HADOOP DISTRIBUTED FILE SYSTEM (HDFS) 8.5 HADOOP MAPREDUCE 8.6 INTRODUCCIÓN A MAPREDUCE 8.7 DISTRIBUCIONES HADOOP 8.7.1 CLOUDERA 8.8 CONCLUSIONES CAPÍTULO 9. PROCESAMIENTO DISTRIBUÍDO CON APACHE SPARK 9.1 INTRODUCCIÓN 9.2 INTRODUCCIÓN AL PROCESAMIENTO DISTRIBUÍDO 9.3 INTRODUCCIÓN A APACHE SPARK 9.4 ECOSISTEMA DE APACHE SPARK 9.5 VENTAJAS DE APACHE SPARK 9.6 ARQUITECTURA DE APACHE SPARK 9.7 RDD (RESILIENT DISTRIBUTED DATASETS) 9.8 SPARK CON SCALA 9.9 SPARK PARA CIENTÍFICO DE DATOS CAPÍTULO 10. PYSPARK COMO LIBRERÍA DE PROCESAMIENTO DISTRIBUÍDO 10.1 INSTALACIÓN DE APACHE SPARK 10.2 INTRODUCCIÓN A DOCKER 10.3 INSTALAR Y EJECUTAR PYSPARK CON DOCKER 10.4 API DE SPARK EN PYTHON 10.5 INTRODUCCIÓN A PYSPARK 10.6 MAPREDUCE A PYSPARK 10.7 TRABAJANDO CON SPARK SQL Y DATAFRAMES 10.8 SPARK STREAMING CAPÍTULO 11. ENTORNOS DE EJECUCIÓN SPARK 11.1 INTRODUCCIÓN 11.2 FINDSPARK 11.3 DATABRICKS:INTRODUCCIÓN A SPARK EN LA NUBE 11.4 APACHE ZEPPELIN CAPÍTULO 12. MLLIB COMO MÓDULO DE MACHINE LEARNING 12.1 INTRODUCCIÓN. 12.2 REGRESIÓN LINEAL CON PYSPARK 12.3 CLUSTERING CON PYSPARK 12.4 CLASIFICACIÓN MENSAJES SPAM CON PYSPARK CAPÍTULO 13. SISTEMAS DE RECOMENDACIÓN 13.1 INTRODUCCIÓN. 13.2 TIPOS DE SISTEMAS DE RECOMENDACIÓN 13.4 FILTRADO COLABORATIVO MATERIAL ADICIONAL
El libro está dirigido aquellos lectores que estén trabajando en proyecto relacionados con big data y busquen identificar las características de una solución de Big Data, los datos asociados a estas soluciones, la infraestructura requerida, y las técnicas de procesamiento de esos datos. Entre los principales objetivos podemos destacar: ? Introducir los conceptos de ciencias de datos y machine learning. ? Introducir las principales librerías que podemos encontrar en Python para aplicar técnicas de machine learning a los datos. ? Dar a conocer los pasos para construir un modelo de machine learning, desde la adquisición de datos, pasando por la generación de funciones, hasta la selección de modelos. ? Dar a conocer los principales algoritmos para resolver problemas de machine learning. ? Introducir scikit-learn como herramienta para resolver problemas de machine learning. ? Introducir pyspark como herramienta para aplicar técnicas de big data y map-reduce. ? Introducir los sistemas de recomendación basados en contenidos. El libro trata de seguir un enfoque teórico-práctico con el objetivo de afianzar los conocimientos mediante la creación y ejecución de scripts desde la consola de Python. Además, complementa los contenidos con un repositorio alojado en el Material Adicional donde se pueden encontrar los ejemplos que se analizan a lo largo del libro para facilitar al lector las pruebas y asimilación de los contenidos teóricos. Desde la web del libro podrá descargar los ejemplos y ejercicios que se desarrollan en el libro lo que facilitara al lector a asimilar lo aprendido.