Inteligencia Artificial - Clase 04: Machine Learning
Introducción a Machine Learning
Resumen de la sección: En esta sección, el instructor introduce el concepto de inteligencia artificial y cómo los algoritmos de machine learning son un tipo específico de inteligencia artificial. Explica que para que algo sea considerado inteligente, debe tener la capacidad de aprender.
¿Qué es Machine Learning?
- El machine learning es un método donde se tienen datos y a partir de ellos se crea un modelo que sirve para hacer predicciones.
- El requisito para que algo sea considerado inteligente es que tenga la capacidad de aprender. En el caso del machine learning, aprendemos a través del proceso de entrenar un modelo.
- En esta sección, veremos una técnica o metodología básica en machine learning para crear un modelo, enviarle datos al modelo, hacer que el modelo aprenda y luego generar predicciones.
¿Cómo funciona un Modelo?
- Un modelo hace predicciones basadas en registros anteriores. Para entender cómo funciona esto, el instructor utiliza ejemplos simples con funciones matemáticas.
- Los registros anteriores (inputs y outputs) son utilizados por nuestro cerebro para descifrar qué hace una función matemática. De manera similar, los algoritmos de machine learning utilizan registros anteriores para hacer predicciones acerca del output esperado.
- Aunque no podemos saber con certeza lo que hace una función matemática solo con unos pocos inputs y outputs registrados previamente, podemos hacer predicciones bastante acertadas utilizando nuestra lógica e inteligencia natural humana. De manera similar, los algoritmos de machine learning pueden hacer predicciones acertadas utilizando registros anteriores.
Creación de un Modelo
- En esta sección, el instructor explica que vamos a centrarnos en la creación de un modelo capaz de generar relaciones entre inputs y outputs. Aunque el modelo no sabrá con certeza si lo que está haciendo está bien, será capaz de arrojar predicciones relativamente acertadas.
- Los algoritmos de machine learning pueden aprender cosas o hacer cálculos y predicciones con datos que no se parecen para nada a los que utilizamos al inicio. Este es un tema que se explorará más adelante en el curso.
¿Qué es Machine Learning?
Resumen de la sección: En esta sección, el presentador explica que el machine learning es un tipo de inteligencia artificial que permite a las computadoras aprender sin ser programadas explícitamente. También habla sobre cómo los algoritmos de machine learning pueden hacer predicciones basadas en datos.
¿Cómo funciona un modelo de Machine Learning?
- El presentador muestra cómo un modelo de machine learning puede dar respuestas incorrectas y cómo evaluar la precisión del modelo.
- La precisión del modelo se refiere a qué tan preciso es el algoritmo en sus predicciones.
- La página Kaggle ofrece competiciones para crear algoritmos inteligentes con alta precisión y grandes premios monetarios.
Entendiendo los modelos
- El presentador explica que los modelos de machine learning hacen predicciones basadas en ejemplos de entrada y salida. Luego, se le pide al modelo que haga predicciones sin saber si están correctas o no para evaluar su eficacia.
Predicción en Machine Learning
Resumen de la sección: En esta sección, el instructor explica los dos tipos principales de predicción que se pueden hacer en Machine Learning: clasificación y regresión. Para la clasificación, se pide al algoritmo que prediga una clase específica basada en ciertos datos. Para la regresión, se pide al algoritmo que prediga un valor numérico específico.
Clasificación
- Se le da un ejemplo sencillo de cómo funciona la clasificación: si se le dan las notas del parcial 1, parcial 2 y actividades a un algoritmo inteligente, se puede pedir que haga una predicción sobre si el estudiante aprobará o no.
- El output del modelo de clasificación es una respuesta binaria (sí o no).
Regresión
- En el caso de la regresión, se le dan los mismos datos (notas del parcial 1, parcial 2 y actividades), pero en lugar de pedirle una predicción binaria sobre si el estudiante aprobará o no, se le pide que haga una predicción sobre cuál será su nota final.
- El output del modelo de regresión es un número que representa la nota final.
Máquinas de Soporte Vectorial (SVM)
Resumen de la sección: En esta sección, el instructor introduce las máquinas de soporte vectorial como un tipo común de machine learning utilizado para resolver problemas tanto de clasificación como de regresión.
- Las máquinas de soporte vectorial convierten todos los datos en valores numéricos y los separan en espacios para poder hacer predicciones.
- El modelo de clasificación SVM puede resolver problemas de clasificación binaria, mientras que el modelo de regresión SVM puede predecir un valor numérico específico.
Predicción de diabetes con máquinas de soporte vectorial
Resumen de la sección: En esta sección, el presentador explica cómo utilizar las máquinas de soporte vectorial para predecir si una persona tiene o no diabetes. Se discuten los datos necesarios para hacer la predicción y se explica cómo estos datos se representan en un espacio.
Datos necesarios para la predicción
- Los datos necesarios para hacer la predicción incluyen el peso, altura, nivel de glucosa en sangre, historial familiar de diabetes y presión sanguínea promedio.
- La edad también es importante ya que los síntomas pueden ser diferentes a diferentes edades.
Tarea de clasificación
- La tarea es una tarea de clasificación ya que se le da al modelo dos opciones: si la persona tiene diabetes o no.
- Si se pidiera un valor numérico específico, sería una tarea de regresión.
Representación en un espacio
- Los datos se representan en un espacio donde cada dimensión representa una característica diferente.
- Por ejemplo, el peso puede estar en el eje x y la altura en el eje y.
- El objetivo es encontrar una línea o plano que divida los puntos correspondientes a personas con diabetes y sin diabetes.
Valor final
- Después de procesar todos los datos del individuo, se crea un valor final que representa dónde queda esa persona en relación con otras personas.
- Este valor final ayuda a determinar si esa persona tiene o no diabetes.
Máquinas de soporte vectorial
Resumen de la sección: En esta sección, el orador explica cómo funcionan las máquinas de soporte vectorial y cómo hacen predicciones. También habla sobre la clasificación y la regresión.
Cómo funcionan las máquinas de soporte vectorial
- Las máquinas de soporte vectorial trazan una línea para dividir los datos en dos clases.
- La máquina divide los datos en diferentes espacios según su clase.
- La máquina traza líneas para dividir los espacios y determinar a qué clase pertenece cada dato.
Clasificación vs Regresión
- La clasificación es cuando la máquina da opciones limitadas como respuesta.
- La regresión es cuando la máquina da un valor específico como respuesta.
Tipos de líneas y vectores
- Las líneas pueden ser rectas, arví o polinomios.
- Los desarrolladores deben elegir qué tipo de línea utilizar para obtener mejores resultados.
Máquinas de Soporte Vectorial
Resumen de la sección: En esta sección, el instructor explica qué son las máquinas de soporte vectorial y cómo funcionan. También habla sobre los diferentes tipos de kernel que se pueden utilizar para trazar líneas rectas, círculos y curvas.
Introducción a las máquinas de soporte vectorial
- Las máquinas de soporte vectorial son un tipo de algoritmo utilizado en aprendizaje automático.
- Son útiles cuando hay muchos parámetros involucrados.
- Son muy versátiles y pueden proporcionar resultados precisos.
Tipos de kernel utilizados en las máquinas de soporte vectorial
- Los kernels lineales trazan líneas rectas.
- Los kernels radiales trazan círculos.
- Los kernels polinomiales trazan curvas.
Ventajas y desventajas del uso de máquinas de soporte vectorial
Ventajas
- Son muy útiles cuando hay muchos parámetros involucrados.
- Consumen poca memoria durante la predicción.
- Proporcionan resultados precisos.
Desventajas
- No proporcionan información sobre por qué se hizo una predicción específica.
- El entrenamiento puede ser intensivo en recursos y tiempo.
Ejemplo práctico del uso de una máquina virtual
- Una máquina virtual es buena trabajando con un gran número variables, como 550 o más.
- Es muy útil cuando se tiene un servidor no muy potente para hacer predicciones rápidas.
Ejercicio práctico: predecir la diabetes
- El ejercicio consiste en predecir si una persona tendrá diabetes o no utilizando un set de datos que contiene información sobre 768 pacientes.
- El archivo se llama "diabetes.csv" y se puede encontrar en el repositorio del curso.
Clasificación con Machine Learning
Resumen de la sección: En esta sección, el presentador explica cómo utilizar la clasificación en Machine Learning y presenta la librería Scikit-learn para crear algoritmos de Machine Learning.
Clasificación con Scikit-learn
- Utilizar una función de clasificación para separar los datos en dos clases: cero y uno.
- Importar la librería Scikit-learn (Sklearn) para crear algoritmos de Machine Learning.
Uso de Pandas y Sklearn
- Utilizar Pandas para manipular datos y realizar operaciones numéricas.
- Importar las librerías NumPy y Matplotlib aunque no se utilicen siempre están ahí por costumbre.
Uso del módulo Sklearn
- Utilizar el módulo Sklearn para crear una máquina vectorial que permita clasificar los datos.
- Importar el paquete de métricas desde Sklearn para evaluar la precisión del algoritmo.
Lectura e interpretación de datos
- Leer un archivo CSV utilizando Pandas que contiene información sobre diabetes en pacientes.
- Interpretar las variables del archivo CSV, como número de embarazos, nivel de glucosa, presión sanguínea, índice de masa corporal, entre otros.
- Ver ejemplos específicos dentro del archivo CSV utilizando Pandas.
Análisis y desarrollo inteligente
- Analizar los datos del archivo CSV para crear un algoritmo inteligente de clasificación.
- Utilizar la función value_counts() de Pandas para ver cuántos pacientes tienen diabetes y cuántos no.
Función oculta y separación de datos
Resumen de la sección: En esta sección, el presentador habla sobre cómo encontrar la función oculta en los datos y cómo separar los datos en entrada (x) y salida (y).
Encontrando la función oculta
- La función oculta puede ser calculada como a más b, donde a es la entrada x y b es un número constante.
- Las partes de entrada x son las características que interesan para el modelo.
- La salida y es el resultado que se quiere predecir.
Nombres estándar para las variables
- El estándar para nombrar las partes de entrada x es con mayúscula X.
- Las partes de salida y pueden tener distintos nombres, pero lo común es llamarlas "outcome".
- Se utiliza pandas para separar las características que interesan para la entrada x.
Separación de datos
- La primera parte del trabajo consiste en separar los datos entre equis (entrada) e ye (salida).
- La equis incluye todas las características que interesan al modelo.
- La ye solo incluye el resultado deseado.
Separación entre entrenamiento y prueba
Resumen de la sección: En esta sección, el presentador habla sobre cómo dividir los datos en conjuntos de entrenamiento y prueba.
División utilizando pandas
- Es necesario dividir los datos entre entrenamiento y prueba para validar si el algoritmo funciona correctamente.
- Se utiliza una función llamada train_test_split() de pandas para dividir los datos en conjuntos de entrenamiento y prueba.
- La función devuelve cuatro conjuntos: x_train, x_test, y_train, y_test.
Uso de los conjuntos
- El conjunto x_train se utiliza para entrenar el algoritmo.
- El conjunto x_test se utiliza para validar si el algoritmo funciona correctamente.
Dimensiones de los datos
Resumen de la sección: En esta sección, el instructor muestra las dimensiones de los datos utilizados en el modelo.
Datos de entrenamiento y prueba
- El conjunto de datos de entrenamiento tiene 576 registros con ocho columnas.
- El conjunto de datos de prueba tiene 192 registros con ocho columnas.
Creación del modelo
Resumen de la sección: En esta sección, el instructor explica cómo crear un modelo utilizando una máquina de soporte vectorial (SVM).
Clasificador SVM
- Se utiliza la clase "sevici" para crear un clasificador SVM con un kernel lineal.
- Se utiliza el método "fit" para ajustar los valores del input al output y hacer que el algoritmo aprenda.
- El algoritmo sigue un proceso mental similar al que hacemos nosotros cuando relacionamos inputs y outputs.
Entrenamiento del modelo
Resumen de la sección: En esta sección, el instructor muestra cómo entrenar el modelo creado anteriormente.
Tiempo de entrenamiento
- El tiempo que tarda en entrenarse depende del poder computacional disponible.
- En producción, estos modelos se hacen en servidores especializados.
Aprendiendo a entrenar un algoritmo
Resumen de la sección: En esta sección, el instructor explica que lo importante es entrenar el algoritmo y no importa cuánto tiempo tarde en hacerlo. También ayuda a un estudiante con un error que está teniendo.
Entrenamiento del algoritmo
- El tiempo que tarda en entrenar el algoritmo no importa, lo importante es completar el proceso.
- El instructor ayuda a un estudiante con un error que está teniendo.
- Se revisa si la variable "y" ha sido creada correctamente para solucionar el error del estudiante.
- Los estudiantes pueden utilizar fácilmente lo aprendido para hacer predicciones.
Haciendo predicciones con el algoritmo
Resumen de la sección: En esta sección, los estudiantes aprenden cómo hacer predicciones utilizando el algoritmo que han entrenado.
Generando una predicción
- Se utiliza el método "project" del clasificador para generar una salida de prueba utilizando los datos de entrada de prueba.
- La precisión del modelo es aleatoria debido a la separación aleatoria entre los datos de entrenamiento y prueba utilizados por cada estudiante.
- La precisión obtenida indica qué porcentaje de las predicciones realizadas fueron correctas.
- Debido a procesos aleatorios, no habrá resultados idénticos cada vez que se utilice este modelo.
Entiendo, comenzaré a resumir el contenido del video en español utilizando el formato de markdown y asociando los bullet points con los timestamps correspondientes.
Creación de una matriz de confusión
Resumen de la sección: En esta sección, se explica cómo crear una matriz de confusión para evaluar la precisión de un modelo de máquina vectorial.
Creación de una matriz de confusión
- Se utiliza un conjunto de datos y un kernel lineal para crear un modelo SVM.
- Se promedia la precisión del modelo para obtener un resultado general.
- Si hay errores al ejecutar las celdas, se debe revisar el mensaje de error y buscar dónde se definió la variable que causa el problema.
- Se crea una herramienta llamada "matriz de confusión" para evaluar la precisión del modelo.
- El porcentaje mínimo aceptable depende del número de clases. Para dos clases, lo mínimo es 50%; para tres clases, lo mínimo es 33.3%; para cuatro clases, lo mínimo es 25%.
Explicación del porcentaje mínimo aceptable
- El porcentaje mínimo aceptable depende del número de clases porque afecta la probabilidad aleatoria.
- Si hay dos opciones (como sí o no), entonces el porcentaje mínimo aceptable es 50% (como lanzar una moneda).
- Si hay tres opciones (como piedra, papel o tijera), entonces el porcentaje mínimo aceptable es 33.3%.
- El porcentaje mínimo debería ser igual a 100 dividido entre la cantidad total de clases.
Mejorando la precisión
Resumen de la sección: En esta sección, el presentador explica que no hay una respuesta directa para mejorar la precisión en algoritmos de inteligencia artificial. Señala que es un proceso de prueba y error y que hay muchos parámetros internos que pueden ser cambiados para mejorar la precisión.
Parámetros para cambiar la precisión
- El presentador explica que uno de los parámetros que puede ser cambiado es el kernel utilizado en el algoritmo.
- Además del kernel, hay otros parámetros que pueden ser cambiados para mejorar la precisión del algoritmo.
- Sin embargo, señala que si tuviera una respuesta directa para mejorar la precisión, sería millonario.
Matriz de confusión
Resumen de la sección: En esta sección, el presentador explica cómo funciona una matriz de confusión y cómo puede ser utilizada para evaluar qué tan bien está funcionando un algoritmo.
Significado de los valores en una matriz de confusión
- El presentador muestra cómo interpretar los valores en una matriz de confusión.
- Explica cómo identificar errores y aciertos en las predicciones del algoritmo.
- Muestra cómo utilizar la matriz de confusión para entender dónde está fallando el algoritmo y tomar decisiones sobre cómo mejorarlo.
Importancia de la matriz de confusión
- La matriz de confusión es una herramienta importante para entender cómo está funcionando un algoritmo y tomar decisiones sobre cómo mejorarlo.
- El presentador señala que, aunque un algoritmo puede tener una alta precisión, es importante entender dónde está fallando para poder mejorarlo.
Métricas de Machine Learning
Resumen de la sección: En esta sección, el instructor habla sobre la importancia de las métricas en el proceso de Machine Learning. Explica que estas métricas son útiles para evaluar el rendimiento del algoritmo y ver en qué partes está fallando.
Importancia de las métricas
- Las métricas son importantes para evaluar el rendimiento del algoritmo.
- Ayudan a identificar en qué partes está fallando el algoritmo.
- Son útiles para mejorar el rendimiento general del algoritmo.
Resumen de la Clase
Resumen de la sección: En esta sección, el instructor hace un resumen general de lo que se aprendió en la clase sobre Machine Learning y Máquinas de Soporte Vectorial (SVM).
Lo que se aprendió hoy
- Se aprendió sobre Machine Learning y cómo funciona.
- Se vio cómo funcionan las Máquinas de Soporte Vectorial (SVM).
- Se explicó cómo los kernels pueden afectar el rendimiento del modelo SVM.
- Se mostraron ejemplos prácticos con SVM y diferentes kernels.
Proceso de implementación
- Leer e interpretar los datos.
- Separar los inputs y outputs utilizando Pandas.
- Separar los datos entre entrenamiento y prueba utilizando una función como train_test_split().
- Crear una máquina SVM utilizando Scikit-Learn.
- Entrenar el modelo con fit().
- Hacer predicciones con predict().
- Evaluar la precisión del modelo con score() o matriz de confusión.
Selección del Kernel adecuado
Resumen de la sección: En esta sección, el instructor explica que la selección del kernel adecuado es crucial para el rendimiento del modelo SVM. También menciona que esto puede ser un proceso de prueba y error.
Selección del Kernel
- La selección del kernel adecuado es crucial para el rendimiento del modelo SVM.
- Los kernels pueden afectar significativamente el rendimiento del modelo.
- El desarrollador debe seleccionar cuidadosamente el kernel adecuado para cada caso específico.
- Este proceso puede ser un proceso de prueba y error.
Entrenamiento y Predicción con SVM
Resumen de la sección: En esta sección, el instructor explica cómo entrenar y hacer predicciones con una máquina SVM utilizando Scikit-Learn.
Entrenamiento y Predicción
- Se utiliza fit() para entrenar la máquina SVM con los datos de entrenamiento.
- Se utiliza predict() para hacer predicciones con la máquina SVM.
- Se puede evaluar la precisión del modelo utilizando score() o matriz de confusión.
Creación de otro modelo sencillo
Resumen de la sección: En esta sección, el instructor sugiere crear otro modelo sencillo para comparar los resultados con el modelo anterior. Se propone utilizar un polinomio y seguir el mismo proceso que antes, pero con este objeto en lugar del otro. Al final, se compara el rendimiento de ambos modelos y se selecciona el que tenga mejor matriz de confusión.
- Se puede crear otro modelo sencillo utilizando un polinomio.
- Se sigue el mismo proceso que antes, pero con este objeto en lugar del otro.
- Al final, se compara el rendimiento de ambos modelos y se selecciona el que tenga mejor matriz de confusión.
Conclusión de la clase
Resumen de la sección: En esta última parte del video, el instructor concluye la clase y anuncia que en dos semanas habrá una nueva sesión donde revisarán cómo ajustar todo lo aprendido hasta ahora. También menciona que tendrán una aplicación más avanzada para poner en práctica lo visto hoy.
- El instructor concluye la clase.
- Anuncia que en dos semanas habrá una nueva sesión donde revisarán cómo ajustar todo lo aprendido hasta ahora.
- Menciona que tendrán una aplicación más avanzada para poner en práctica lo visto hoy.