You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/es/2-Regression/1-Tools
leestott e4050807fb
🌐 Update translations via Co-op Translator
2 weeks ago
..
solution 🌐 Update translations via Co-op Translator 3 weeks ago
README.md 🌐 Update translations via Co-op Translator 2 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago
notebook.ipynb 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

Comienza con Python y Scikit-learn para modelos de regresión

Resumen de regresiones en un sketchnote

Sketchnote por Tomomi Imura

Cuestionario previo a la lección

¡Esta lección está disponible en R!

Introducción

En estas cuatro lecciones, descubrirás cómo construir modelos de regresión. Hablaremos sobre para qué sirven en breve. Pero antes de hacer nada, ¡asegúrate de tener las herramientas adecuadas para comenzar el proceso!

En esta lección, aprenderás a:

  • Configurar tu computadora para tareas locales de aprendizaje automático.
  • Trabajar con Jupyter notebooks.
  • Usar Scikit-learn, incluyendo su instalación.
  • Explorar la regresión lineal con un ejercicio práctico.

Instalaciones y configuraciones

ML para principiantes - Configura tus herramientas para construir modelos de aprendizaje automático

🎥 Haz clic en la imagen de arriba para ver un video corto sobre cómo configurar tu computadora para ML.

  1. Instalar Python. Asegúrate de que Python esté instalado en tu computadora. Usarás Python para muchas tareas de ciencia de datos y aprendizaje automático. La mayoría de los sistemas informáticos ya incluyen una instalación de Python. También hay disponibles Paquetes de Codificación de Python útiles para facilitar la configuración a algunos usuarios.

    Sin embargo, algunos usos de Python requieren una versión específica del software, mientras que otros requieren una versión diferente. Por esta razón, es útil trabajar dentro de un entorno virtual.

  2. Instalar Visual Studio Code. Asegúrate de tener Visual Studio Code instalado en tu computadora. Sigue estas instrucciones para instalar Visual Studio Code para la instalación básica. Vas a usar Python en Visual Studio Code en este curso, por lo que podrías querer repasar cómo configurar Visual Studio Code para el desarrollo en Python.

    Familiarízate con Python trabajando en esta colección de módulos de aprendizaje

    Configura Python con Visual Studio Code

    🎥 Haz clic en la imagen de arriba para ver un video: usando Python dentro de VS Code.

  3. Instalar Scikit-learn, siguiendo estas instrucciones. Dado que necesitas asegurarte de usar Python 3, se recomienda que utilices un entorno virtual. Nota: si estás instalando esta biblioteca en una Mac M1, hay instrucciones especiales en la página enlazada arriba.

  4. Instalar Jupyter Notebook. Necesitarás instalar el paquete Jupyter.

Tu entorno de autoría de ML

Vas a usar notebooks para desarrollar tu código en Python y crear modelos de aprendizaje automático. Este tipo de archivo es una herramienta común para los científicos de datos y se identifican por su sufijo o extensión .ipynb.

Los notebooks son un entorno interactivo que permite al desarrollador tanto codificar como agregar notas y escribir documentación alrededor del código, lo cual es bastante útil para proyectos experimentales o de investigación.

ML para principiantes - Configura Jupyter Notebooks para comenzar a construir modelos de regresión

🎥 Haz clic en la imagen de arriba para ver un video corto sobre este ejercicio.

Ejercicio - trabajar con un notebook

En esta carpeta, encontrarás el archivo notebook.ipynb.

  1. Abre notebook.ipynb en Visual Studio Code.

    Se iniciará un servidor Jupyter con Python 3+. Encontrarás áreas del notebook que pueden ser ejecutadas, piezas de código. Puedes ejecutar un bloque de código seleccionando el ícono que parece un botón de reproducción.

  2. Selecciona el ícono md y agrega un poco de markdown, y el siguiente texto # Bienvenido a tu notebook.

    Luego, agrega algo de código en Python.

  3. Escribe print('hello notebook') en el bloque de código.

  4. Selecciona la flecha para ejecutar el código.

    Deberías ver la declaración impresa:

    hello notebook
    

VS Code con un notebook abierto

Puedes intercalar tu código con comentarios para auto-documentar el notebook.

Piensa por un momento en cómo es diferente el entorno de trabajo de un desarrollador web en comparación con el de un científico de datos.

Puesta en marcha con Scikit-learn

Ahora que Python está configurado en tu entorno local y te sientes cómodo con los notebooks de Jupyter, vamos a familiarizarnos con Scikit-learn (se pronuncia sci como en science). Scikit-learn proporciona una API extensa para ayudarte a realizar tareas de ML.

Según su sitio web, "Scikit-learn es una biblioteca de aprendizaje automático de código abierto que admite aprendizaje supervisado y no supervisado. También proporciona varias herramientas para ajuste de modelos, preprocesamiento de datos, selección y evaluación de modelos, y muchas otras utilidades."

En este curso, usarás Scikit-learn y otras herramientas para construir modelos de aprendizaje automático para realizar lo que llamamos tareas de 'aprendizaje automático tradicional'. Hemos evitado deliberadamente redes neuronales y aprendizaje profundo, ya que están mejor cubiertos en nuestro próximo currículo 'AI para Principiantes'.

Scikit-learn hace que sea sencillo construir modelos y evaluarlos para su uso. Se centra principalmente en el uso de datos numéricos y contiene varios conjuntos de datos listos para usar como herramientas de aprendizaje. También incluye modelos preconstruidos para que los estudiantes los prueben. Vamos a explorar el proceso de cargar datos preempaquetados y usar un estimador para el primer modelo de ML con Scikit-learn con algunos datos básicos.

Ejercicio - tu primer notebook con Scikit-learn

Este tutorial fue inspirado por el ejemplo de regresión lineal en el sitio web de Scikit-learn.

ML para principiantes - Tu primer proyecto de regresión lineal en Python

🎥 Haz clic en la imagen de arriba para ver un video corto sobre este ejercicio.

En el archivo notebook.ipynb asociado a esta lección, elimina todas las celdas presionando el ícono de 'papelera'.

En esta sección, trabajarás con un pequeño conjunto de datos sobre diabetes que está integrado en Scikit-learn para propósitos de aprendizaje. Imagina que quisieras probar un tratamiento para pacientes diabéticos. Los modelos de aprendizaje automático podrían ayudarte a determinar qué pacientes responderían mejor al tratamiento, basándote en combinaciones de variables. Incluso un modelo de regresión muy básico, cuando se visualiza, podría mostrar información sobre variables que te ayudarían a organizar tus ensayos clínicos teóricos.

Hay muchos tipos de métodos de regresión, y cuál elijas depende de la respuesta que estés buscando. Si quieres predecir la altura probable de una persona dada su edad, usarías regresión lineal, ya que estás buscando un valor numérico. Si estás interesado en descubrir si un tipo de cocina debería considerarse vegana o no, estás buscando una asignación de categoría, por lo que usarías regresión logística. Aprenderás más sobre regresión logística más adelante. Piensa un poco en algunas preguntas que puedes hacer a los datos y cuál de estos métodos sería más apropiado.

Vamos a comenzar con esta tarea.

Importar bibliotecas

Para esta tarea, importaremos algunas bibliotecas:

  • matplotlib. Es una herramienta útil para graficar y la usaremos para crear un gráfico de líneas.
  • numpy. numpy es una biblioteca útil para manejar datos numéricos en Python.
  • sklearn. Esta es la biblioteca Scikit-learn.

Importa algunas bibliotecas para ayudarte con tus tareas.

  1. Agrega las importaciones escribiendo el siguiente código:

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    Arriba estás importando matplotlib, numpy y estás importando datasets, linear_model y model_selection de sklearn. model_selection se usa para dividir datos en conjuntos de entrenamiento y prueba.

El conjunto de datos de diabetes

El conjunto de datos de diabetes integrado incluye 442 muestras de datos sobre diabetes, con 10 variables de características, algunas de las cuales incluyen:

  • age: edad en años
  • bmi: índice de masa corporal
  • bp: presión arterial promedio
  • s1 tc: células T (un tipo de glóbulos blancos)

Este conjunto de datos incluye el concepto de 'sexo' como una variable de característica importante para la investigación sobre diabetes. Muchos conjuntos de datos médicos incluyen este tipo de clasificación binaria. Piensa un poco en cómo categorizaciones como esta podrían excluir a ciertas partes de la población de los tratamientos.

Ahora, carga los datos X e y.

🎓 Recuerda, esto es aprendizaje supervisado, y necesitamos un objetivo 'y' nombrado.

En una nueva celda de código, carga el conjunto de datos de diabetes llamando a load_diabetes(). El parámetro return_X_y=True indica que X será una matriz de datos y y será el objetivo de regresión.

  1. Agrega algunos comandos de impresión para mostrar la forma de la matriz de datos y su primer elemento:

    X, y = datasets.load_diabetes(return_X_y=True)
    print(X.shape)
    print(X[0])
    

    Lo que estás obteniendo como respuesta es una tupla. Lo que estás haciendo es asignar los dos primeros valores de la tupla a X e y respectivamente. Aprende más sobre tuplas.

    Puedes ver que estos datos tienen 442 elementos organizados en matrices de 10 elementos:

    (442, 10)
    [ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
    -0.04340085 -0.00259226  0.01990842 -0.01764613]
    

    Piensa un poco sobre la relación entre los datos y el objetivo de regresión. La regresión lineal predice relaciones entre la característica X y la variable objetivo y. ¿Puedes encontrar el objetivo para el conjunto de datos de diabetes en la documentación? ¿Qué está demostrando este conjunto de datos, dado ese objetivo?

  2. A continuación, selecciona una porción de este conjunto de datos para graficar seleccionando la tercera columna del conjunto de datos. Puedes hacerlo usando el operador : para seleccionar todas las filas y luego seleccionando la tercera columna usando el índice (2). También puedes cambiar la forma de los datos para que sean una matriz 2D, como se requiere para graficar, usando reshape(n_rows, n_columns). Si uno de los parámetros es -1, la dimensión correspondiente se calcula automáticamente.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    En cualquier momento, imprime los datos para verificar su forma.

  3. Ahora que tienes los datos listos para ser graficados, puedes ver si una máquina puede ayudar a determinar una división lógica entre los números en este conjunto de datos. Para hacer esto, necesitas dividir tanto los datos (X) como el objetivo (y) en conjuntos de prueba y entrenamiento. Scikit-learn tiene una forma sencilla de hacer esto; puedes dividir tus datos de prueba en un punto dado.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. ¡Ahora estás listo para entrenar tu modelo! Carga el modelo de regresión lineal y entrénalo con tus conjuntos de entrenamiento X e y usando model.fit():

    model = linear_model.LinearRegression()
    model.fit(X_train, y_train)
    

    model.fit() es una función que verás en muchas bibliotecas de ML como TensorFlow.

  5. Luego, crea una predicción usando datos de prueba, utilizando la función predict(). Esto se usará para dibujar la línea entre los grupos de datos.

    y_pred = model.predict(X_test)
    
  6. Ahora es momento de mostrar los datos en un gráfico. Matplotlib es una herramienta muy útil para esta tarea. Crea un gráfico de dispersión de todos los datos de prueba X e y, y usa la predicción para dibujar una línea en el lugar más apropiado, entre los grupos de datos del modelo.

    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, y_pred, color='blue', linewidth=3)
    plt.xlabel('Scaled BMIs')
    plt.ylabel('Disease Progression')
    plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
    plt.show()
    

    un gráfico de dispersión mostrando puntos de datos sobre diabetes Piensa un poco en lo que está sucediendo aquí. Una línea recta está atravesando muchos pequeños puntos de datos, pero ¿qué está haciendo exactamente? ¿Puedes ver cómo deberías poder usar esta línea para predecir dónde debería encajar un nuevo punto de datos no visto en relación con el eje y del gráfico? Intenta poner en palabras el uso práctico de este modelo.

¡Felicidades! Has construido tu primer modelo de regresión lineal, creado una predicción con él y la has mostrado en un gráfico.


🚀Desafío

Grafica una variable diferente de este conjunto de datos. Pista: edita esta línea: X = X[:,2]. Dado el objetivo de este conjunto de datos, ¿qué puedes descubrir sobre la progresión de la diabetes como enfermedad?

Cuestionario posterior a la lección

Revisión y Autoestudio

En este tutorial, trabajaste con regresión lineal simple, en lugar de regresión univariante o múltiple. Lee un poco sobre las diferencias entre estos métodos, o echa un vistazo a este video.

Lee más sobre el concepto de regresión y piensa en qué tipo de preguntas pueden responderse con esta técnica. Toma este tutorial para profundizar tu comprensión.

Tarea

Un conjunto de datos diferente


Descargo de responsabilidad:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.