
En esta lección aprenderás los más importante sobre el uso correcto y óptimo del portal formativo Udemy. Recuerda que si aún sigues tienes algún problema o dificultad durante la formación puedes contactar conmigo.
En la siguiente clase te detallo como está organizado y configurado el curso que estas comenzando. El objetivo es que aproveches al máximo la formación y saques el mayor beneficio de la misma.
¡Comencemos!
El curso de “Machine Learning con Python” se centra en un subcampo específico de aprendizaje automático llamado modelado predictivo. Este es el campo del aprendizaje automático que es el más útil en la industria y el cual se utilizar la librería de aprendizaje automático scikit-learn en Python por su gran rendimiento y facilidad en su uso.
A diferencia de las estadísticas, donde los modelos se usan para comprender los datos, el modelado predictivo se enfoca en el desarrollo de modelos que hacen las predicciones más precisas a expensas de explicar por qué se hacen las predicciones.
A diferencia del campo más amplio del aprendizaje automático que podría utilizarse con datos en cualquier formato, el modelado predictivo se centra principalmente en datos tabulares (por ejemplo, tablas de números como en una hoja de cálculo).
Para ir conociéndonos todos, te invito a presentarte. Ponle cara a tu perfil y sube un par de proyectos, personales o profesionales, compártelos en el foro de esta clase y cuéntanos en qué lugar o proyecto desearías trabajar idealmente.
Recuerda que desde el apartado de "Preguntas y Respuestas" podrás presentarte al resto de alumnos de este curso y plantear todas las inquietudes que tengas.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Comenzamos nuestro curso de Máster en Ciencia de Datos con Python realizando una introducción del proceso paso a paso que se debe de utilizar en el mundo del modelado predictivo con el lenguaje de programación Python. Veremos como Python es un potente lenguaje de programación que nos permitirá analizar y tomar decisiones sobre cualquier conjunto de datos de manera muy sencilla con los conocimientos ya adquiridos de programación que ya deberemos de poseer.
Finalmente, recordarle que la estructura del curso está diseñada de manera que cada unidad está compuesta por una parte de teoría y otra de práctica. Cada una de las unidades dispondrá del PDF de lectura (y presentación) que tendrá todos los conceptos teóricos y varios vídeos que tendrá los conceptos prácticos que deberás reproducir usted en su estudio. Por tanto, es importante, antes de ver la parte de práctica, se entienda y estudie la parte de teoría.
¡Manos a la obra!
¡Clase práctica! Recuerda que los archivos y cuadernos asociados a esta clase se encuentran adjuntos.
Good coding!
¡Clase práctica! Recuerda que los archivos y cuadernos asociados a esta clase se encuentran adjuntos.
Good coding!
¡Clase práctica! Recuerda que los archivos y cuadernos asociados a esta clase se encuentran adjuntos.
Good coding!
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
En esta segunda unidad, se estudiarán una de las partes más importantes para trabajar en analítica predictiva, esto es, es el análisis de los datos y conocer su comportamiento. Para ello, comenzaremos manipulando un conjunto de datos simple en Python para, posteriormente, intentar conocer y entender como es el comportamiento de estos. Para ello, Python nos proporciona una serie de funciones muy interesantes que debemos de hacer uso al inicio de trabajo en modelado predictivo.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
En esta tercera unidad, ampliaremos el concepto de Análisis de datos viendo como se realiza un análisis exploratorio de datos bajo un hilo argumental y sacando algunas conclusiones en nuestro conjunto de datos. Finalmente trabajaremos con algunas funciones de generación de gráficos para ver el comportamiento e interrelaciones de las diferentes característica de un conjunto de datos en particular. Finalmente, deberemos aprender en un primer momento qué métricas tenemos a nuestro alcance para poder evaluar un problema de Machine Learning.
Análisis Exploratorio de Datos: Empezaremos viendo como se realiza un correcto Análisis Exploratorio de nuestros datos con la base de la unidad anterior.
Preprocesamiento de datos. Analizaremos las diferentes técnicas que tenemos a nuestra disposición para poder realizar un buen preprocesamiento de datos y, así, mejorar el rendimiento de nuestros modelos.
Métodos de remuestreo. Aprenderemos a qué nos referimos con la métrica de un modelo para poder estimar su desempeño en los datos no etiquetados.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Una vez realizado un preprocesamiento de los datos aprenderemos a comparar los diferentes resultados de los algoritmos para así crear un modelo más robusto en la fase de predicción. Así mismo, para poder comprenderlos existen técnicas como feature selection nos permitirán seleccionar las variables más significativas en los resultados.
En este sentido, el tema se divide en las siguientes secciones:
Evaluación de las métricas. Descubriremos cómo puede evaluar sus algoritmos de machine learning en Python utilizando una serie de métricas de evaluación estándar.
Feature selection. El proceso de feature selection en los datos permite modelar su problema se denomina selección de mejores características, es decir, atributos más relevantes para los modelos de aprendizaje.
Feature Importance. Este concepto es muy parecido al anterior (por no decir igual), pero la diferencia es que cuando hablamos de Feature Importance es porque vamos a realizar técnicas basadas en algoritmos de Machine Learning para evaluar las características más importante.
Reducción de dimensiones. Un último apartado, más corto pero no menos importante, es la reducción de dimensiones en nuestro conjunto de datos. Para ello utilizaremos la técnica principal que es PCA.
Para los usuario de Windows tenéis que seguir este tutorial para la visualización del árbol
https://www.youtube.com/watch?v=kOYnlqbZ8K4
Por otro lado, la nueva versión de Python no integra six. Por lo que si se quiere visualizar hay que seguir este tutorial: https://stackoverflow.com/questions/61901365/modulenotfounderror-no-module-named-sklearn-externals-six
En todo caso la visualización del árboles es meramente informativo, por lo que se puede prescindir de este punto y continuar con el curso
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
En esta unidad aprenderemos sobre los algoritmos más importantes de machine learning ya que tenemos que comparar el rendimiento de los algoritmos para buscar al mejor candidato. Además, tan importante es aprender de estos algoritmos como también evaluar su rendimiento y, sobre todo, los modelos más avanzados que tenemos a nuestra disposición para poder trabajar problemas avanzados
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
En este tutorial vamos a utilizar el conjunto de datos Pima Indians Diabetes. Describe los datos de los registros médicos de los pacientes y si tuvieron una aparición de diabetes dentro de los cinco años. Es un problema de clasificación binaria (aparición de diabetes como 1 o no como 0). Las variables de entrada que describen a cada paciente son numéricas y tienen escalas variables. A continuación, se enumeran los ocho atributos del conjunto de datos:
Número de embarazos.
Concentración de glucosa en plasma a 2 horas en una prueba de tolerancia a la glucosa oral.
Presión arterial diastólica (mm Hg).
Espesor del pliegue cutáneo del tríceps (mm).
Insulina sérica de 2 horas (mu U/ml).
Índice de masa corporal.
Función del pedigrí de la diabetes.
Años de edad.
Clase, aparición de diabetes en cinco años.
Dado que todos los atributos son numéricos, es fácil de usar directamente con redes neuronales que esperan entradas y valores de salida numéricos, y es ideal para nuestra primera red neuronal en Keras.
Ahora que el modelo está definido, podemos compilarlo. La compilación del modelo utiliza las bibliotecas numéricas eficientes debajo de las cubiertas (el llamado backend) como Theano o TensorFlow. El backend elige automáticamente la mejor manera de representar la red para entrenar y hacer predicciones para ejecutar en su hardware.
Al compilar, debemos especificar algunas propiedades adicionales requeridas al entrenar la red. Recuerde que entrenar una red significa encontrar el mejor conjunto de pesos para hacer predicciones para este problema.
Debemos especificar la función de pérdida que se utilizará para evaluar un conjunto de ponderaciones, el optimizador utilizado para buscar entre diferentes ponderaciones para la red y cualquier métrica opcional que nos gustaría recopilar e informar durante el entrenamiento. En este caso usaremos la pérdida logarítmica, que para un problema de clasificación binaria se define en Keras como binary_crossentropy.
También usaremos el algoritmo de Gradiente Descendiente adam sin ninguna otra razón que sea un valor predeterminado eficiente. Finalmente, debido a que es un problema de clasificación, recopilaremos e informaremos la precisión de la clasificación como métrica.
Hemos definido nuestro modelo y lo hemos compilado listo para un cálculo eficiente. Ahora es el momento de ejecutar el modelo en algunos datos. Podemos entrenar o ajustar nuestro modelo en nuestros datos cargados llamando a la función fit() en el modelo.
El proceso de entrenamiento se ejecutará para un número fijo de iteraciones a través del conjunto de datos llamado épocas, que debemos especificar usando el argumento epochs.
También podemos establecer el número de instancias que se evalúan antes de que se realice una actualización de peso en la red, denominada tamaño de batch, y se establece mediante el argumento batch_size.
Para este problema, realizaremos una pequeña cantidad de épocas (150) y usaremos un tamaño de batch relativamente pequeño de 16. Nuevamente, estos pueden elegirse experimentalmente por ensayo y error.
Keras puede separar una parte de sus datos de entrenamiento/validación y evaluar el rendimiento del modelo en cada época. Puede hacer esto configurando el argumento validation_split en la función fit() en un porcentaje del tamaño de su conjunto de datos de entrenamiento.
Por ejemplo, un valor razonable podría ser 0,2 o 0,33 para el 20% o el 33% de sus datos de entrenamiento para validación.
Al ejecutar el ejemplo, puede ver que la salida detallada en cada época muestra la pérdida y Accuracy tanto en el conjunto de datos de entrenamiento como en el conjunto de datos de validación.
Keras también le permite especificar manualmente el conjunto de datos que se utilizará para la validación durante el entrenamiento. En este ejemplo usamos la práctica función train_test_split() de la biblioteca de aprendizaje automático de Python scikit-learn para separar nuestros datos en entrenamiento/validación.
Usamos el 67% para entrenamiento y el 33% restante de los datos para validación. El conjunto de datos de validación se puede especificar a la función fit() en Keras mediante el argumento validation_data. Toma una tupla de los conjuntos de datos de entrada y salida.
Como antes, ejecutar el ejemplo proporciona una salida detallada del entrenamiento que incluye la pérdida y Accuracy del modelo en los conjuntos de datos de entrenamiento y validación para cada época.
El estándar de oro para la evaluación de modelos de aprendizaje automático es la validación cruzada de k-fold. Proporciona una estimación sólida del rendimiento de un modelo sobre datos no etiquetados.
La validación cruzada a menudo no se usa para evaluar modelos de aprendizaje profundo debido al mayor gasto computacional. Por ejemplo, la validación cruzada de k-fold se usa a menudo con 5 o 10 fold. Como tal, se deben construir y evaluar 5 o 10 modelos, lo que aumenta considerablemente el tiempo de evaluación de un modelo. Sin embargo, cuando el problema es lo suficientemente pequeño o si tiene suficientes recursos informáticos, la validación cruzada puede brindarle una estimación menos sesgada del rendimiento de su modelo.
En el siguiente ejemplo, usamos el práctico clase StratifiedKFold de scikit-learn para dividir el conjunto de datos de entrenamiento en 10 folds.
El ejemplo crea y evalúa 10 modelos utilizando las 10 divisiones de los datos y recopila todas las puntuaciones. La salida detallada para cada época se desactiva pasando verbose = 0 a las funciones fit() y evaluation() en el modelo. La desviación promedio y estándar del rendimiento del modelo se imprime al final de la ejecución para proporcionar una estimación del Accuracy del modelo.
Como tenemos un problema de clasificación multiclase recordemos que debemos de utilizar One-Hot Encoding para poder formatear la salida.
Por ejemplo, en este problema los tres valores de clase:
Iris-setosa
Iris-versicolor
Iris-virginica
Por lo que convertimos esta salida en una codificación binaría como:
Iris-setosa, Iris-versicolor, Iris-virginica
1, 0, 0
0, 1, 0
0, 0, 1
Por tanto,
Codificando primero las cadenas de manera coherente en números enteros utilizando la clase LabelEncoder de scikit-learn.
Luego, conviertimos el vector de números enteros en One-Hot Enconding usando la función de Keras to_categorical().
A continuación se muestra el procedimiento a la hora de crear la función a trabajar:
Crea una red simple completamente conectada con una capa oculta de 8 neuronas.
La capa oculta utiliza una función de activación ReLu.
Debido a que utilizamos One-Hot Encoding, la capa de salida debe crear 3 valores de salida, uno para cada clase.
El valor de salida con el valor más grande se tomará como la clase predicha por el modelo. La topología quedaría así:
4 inputs -> [8 hidden nodes] -> 3 outputs
Tendremos una función de activación Softmax en la capa de salida.
Finalmente, la red utiliza Adam con una función de pérdida logarítmica (categorical_crossentropy).
Comencemos por definir la función que crea nuestro modelo de línea de base.
Tiene una sola capa oculta completamente conectada con el mismo número de neuronas que los atributos de entrada (13).
La red utiliza la función de activación ReLU para la capa oculta.
Al ser problema de regresión no tiene función de activación la capa de salida
Utiliza el algoritmo de optimización ADAM y se optimiza una función de pérdida de error cuadrático medio.
El objeto Wrapper para regresión se llama KerasRegressor.
Evaluamos este modelo de línea de base con 10-fold.
Otro enfoque para aumentar la capacidad de representación del modelo es crear una red más amplia. Aquí, hemos aumentado el número de neuronas en la capa oculta en de 13 a 20. La topología de nuestra red más amplia se puede resumir de la siguiente manera:
13 entradas -> [20] -> 1 salida
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
El problema que veremos es un problema de predicción de pasajeros de aerolíneas internacionales. Este es un problema en el que, dado un año y un mes, la tarea es predecir el número de pasajeros de aerolíneas internacionales en unidades de 1.000. Los datos van desde enero de 1949 hasta diciembre de 1960 o 12 años, con 144 observaciones.
Sección que dispondrá de una serie de recursos y enlaces interesantes para poder complementar eficazmente la formación del curso.
Máster de especialista en Ciencia de Datos con Python.
Aprenda a desarrolar proyectos de Machine Learning y Deep Learning con Python. Data Science de básico a Experto
Instructores: PhD. Manuel Castillo.
Requisitos: Se recomienda tener conocimientos de programación, preferiblemte Python.
Descripción del Curso:
El curso de “Máster de especialista en Ciencia de Datos con Python” tiene dos bloques principales de estudio:
El primer bloque se centra en un subcampo específico de aprendizaje automático llamado modelado predictivo y clustering. Este es el campo del aprendizaje automático que es el más útil en la industria y el cual se utilizar la librería de aprendizaje automático scikit-learn en Python por su gran rendimiento y facilidad en su uso.
A diferencia del campo más amplio del aprendizaje automático que podría utilizarse con datos en cualquier formato, el modelado predictivo y clustering se centra principalmente en datos tabulares, llamados técnicamente Tidy Data (por ejemplo, tablas de números como en una hoja de cálculo).
El segundo bloque se centra en el aprendizaje profundo. En este curso trataremos la librería Keras de Python para Deep Learning y cómo usarla para desarrollar y evaluar modelos de Deep Learning. En este curso, descubriremos las técnicas, código y habilidades de Deep Learning que luego puede llevar a sus propios proyectos de Machine Learning.
La librería Keras envuelve la complejidad de la computación numérica de Theano y TensorFlow proporcionando una API concisa que usaremos para desarrollar nuestra propia red neuronal y modelos Deep Learning. Además, trataremos las habilidades de Deep Learning para llevar esta nueva tecnología asombrosa a nuestros propios proyectos.
Contenidos del Curso:
MÓDULO I. Introducción.
Conceptos básicos de machine learning.
Jupyter Notebook como nuestro entorno de machine learning.
Curso rápido de Python.
MÓDULO II. Análisis de datos
Cargar un conjunto de datos.
Estadística descriptiva.
Visualización de datos.
Taller: Trabajo de aplicación de diferentes técnicas analíticas de datos en un conjunto de datos seleccionado por el usuario e interpretar la salida obtenida.
Examen tipo test sobre los contenidos del módulo.
MODULO III. Preprocesamiento de datos
Análisis exploratorio de datos.
Preprocesamiento de datos.
Métodos de remuestreo para estimar la precisión del modelo.
Taller: Trabajo de aplicación de diferentes técnicas de análisis y procesamiento de datos de datos en un conjunto de datos seleccionado por el usuario e interpretar la salida obtenida.
Examen tipo test sobre los contenidos del módulo.
MÓDULO IV. Fase de tratamiento de datos
Evaluación de las métricas.
Feature Selection.
Feature Importance.
Reducción de dimensiones en un dataset.
Taller: Aplicación de diferentes técnicas de tratamiento de datos en un conjunto de datos y verificación de su impacto en las métricas algorítmicas.
Examen tipo test sobre los contenidos del módulo.
MÓDULO V. Fase de modelado
Algoritmos de Machine Learning.
Rendimiento de los algoritmos.
Algoritmos Ensamblados
Algoritmo "Super Lerner"
Taller: Aplicación de diferentes algoritmos de machine learning en un conjunto de datos e interpretar la salida obtenida, así mismo, verificar el algoritmo que tenga mejor comportamiento.
Examen tipo test sobre los contenidos del módulo.
MÓDULO VI. Redes Neuronales.
Curso sobre Multilayer Perceptron
Redes Feed Forward
Desarrollar nuestra primera red neuronal con Keras.
Evaluar el rendimiento de los modelos.
Proyecto: Problema de clasificación multiclase.
Proyecto: Problema de regresión.
MODULO VII. Redes Neuronales Avanzadas
Guardar modelos para hacer predicciones.
Mantener puntos de control en el entrenamiento de los modelos.
Comprender el comportamiento del modelo durante el entrenamiento trazando el historial.
Reducir el sobreajuste con la regularización Dropout.
Optimizar el rendimiento con una planificación basada en la tasa de aprendizaje.
MÓDULO VIII. Redes Neuronales Convolucionales
Curso intensivo en redes neuronales convolucionales.
Optimizar el rendimiento del modelo con Data Augmentation.
Proyecto: Reconocimiento de dígitos manuscritos.
Proyecto: Reconocimiento de objetos en fotografías.
Proyecto: Clasificación de opiniones en revisión de películas.
MÓDULO IX. Redes Neuronales Recurrentes
Curso intensivo en redes neuronales recurrentes.
Modelos de perceptrones multicapa para problemas de series de tiempo.
Modelos LSTM para problemas de series temporales.
Proyecto: Clasificación secuencial de reseñas de películas.
Proyecto: Generación de texto.
Características del Curso:
Recuerda que esta formación incluye lecciones en vídeo fullHD con audio de estudio (compatible con TV, PC, Mac, tablet y smartphone), artículos didácticos, actividades, proyectos paso a paso, recursos descargables, links de interés, acceso de por vida, certificado de finalización, tutorización online, y una exclusiva comunidad de aprendizaje privada que nos ayudamos aportando nuestras experiencias en el foro de comunicación del curso.
Con esta formación disfrutarás aprendiendo desde dónde quieras, sin tener que desplazarte, sin horarios, con quién quieras, según tus necesidades y disponibilidad. Aprenderás con un instructor avalado por miles da alumnos satisfechos en todo el mundo (comentarios certificados). Conocerás las técnicas, métodos, trucos y flujos de trabajo de este sector creativo. El docente te transmitirá su sabiduría y conocimientos con pasión a la vez que las explicaciones concisas, claras, sencillas y con un enfoque profesional en cada clase. Podrás conseguir un certificado homologado personalizado y firmado por tu instructor en cada formación. De está forma podrás compartir tu título en tu portafolio, currículo, en redes sociales...
Con la alta definición de los vídeos (vídeo fullHD y audio de estudio) conseguirá no te perder detalle. Podrás ver las clases las veces que requieras para recordar y perfeccionar tus habilidades como diseñador. Tendrás la posibilidad de preguntar, pedir opinión y ayuda al instructor, además de compartir tu experiencia de aprendizaje con los demás alumnos del curso, tan apasionados como tú, repartidos por todo el mundo. Seleccionamos cuidadosamente los contenidos y producimos cada curso para garantizar una experiencia de aprendizaje online integral y de la máxima calidad.
¿A qué esperas?, este curso es ideal para ti, atrévete a convertirte en un experto. Adelante, nos vemos dentro de la formación.