Regresión lineal simple en Python

Contenidos

Introducción

Hola a todos por esta práctica introducción al aprendizaje automático mediante regresión lineal simple. Entonces empecemos:

Entonces, familiaricémonos con los términos que se utilizarán:

Aprendizaje automático (ML): ML es una aplicación de Inteligencia Artificial (IA) que brinda a los sistemas la capacidad de aprender automáticamente y mejorar a partir de la experiencia sin ser programados explícitamente. ML se centra en el desarrollo de programas informáticos que pueden acceder a los datos y utilizarlos para aprender por sí mismos.

Conjunto de datos: Colección de conjuntos de información relacionados que se compone de elementos separados pero que una computadora puede manipular como una unidad.

Visualización de datos: Es una representación de datos o información en un gráfico, cuadro u otros formatos visuales que es útil para realizar análisis, como el análisis predictivo, que puede servir como visualización útil para presentar.

Limpieza de datos: Es el proceso de corregir o eliminar datos incorrectos, corruptos, formateados incorrectamente, duplicados o incompletos dentro de un conjunto de datos.

Aprendizaje supervisado: El modelo se entrena utilizando ‘datos etiquetados’. Se dice que los conjuntos de datos contienen etiquetas que contienen parámetros de entrada y salida. Para simplificar: ‘Los datos ya están etiquetados con la respuesta correcta’.

Regresión lineal simple: Es un Modelo de Regresión que estima la relación entre la variable independiente y la variable dependiente usando una línea recta [y = mx + c], donde ambas variables deben ser cuantitativas.

Modelos: Los resultados se obtienen mediante algoritmos y se componen de datos del modelo y un algoritmo de predicción.

Modelo de entrenamiento: En el aprendizaje supervisado, un algoritmo ML crea un modelo examinando muchos ejemplos e intentando encontrar un modelo que minimice la pérdida y mejore la precisión de la predicción.

Estos son los pocos términos que se utilizan en este artículo y con los que familiarizarse. Ahora comencemos con el análisis y la predicción del modelo. En este tutorial, usaré datos supervisados ​​y regresión lineal simple para análisis y predicción. El objetivo final es predecir la altura de una persona y proporcionar su edad utilizando el modelo entrenado con la mayor precisión posible utilizando los datos disponibles. He usado el lenguaje de programación favorito universal para ML, es decir. Pitón para construir y entrenar el modelo ML y el entorno de Google Colab.

Los pasos involucrados son:

1. Importación del conjunto de datos.

2. Visualización de los datos

3. Limpieza de datos

4. Construya el modelo y entrénelo

5.Haga predicciones sobre datos invisibles

———————————————————————————————————————————————— ——————————

1. Importación de conjunto de datos:

Lo primero y más importante que debemos hacer es importar el conjunto de datos. Tenemos varios sitios web que tienen estos conjuntos de datos para ser utilizados por cualquier persona. De manera similar, comencemos a cómo importar el conjunto de datos que vamos a usar en este tutorial.

24944screenshot202021-03-2620at205-46-0820pm-7031505

Esta única línea de código nos ayuda a obtener los datos utilizados para el tutorial directamente desde la URL.

Conjunto de datos <- Haga clic en el enlace para obtener el conjunto de datos que es la URL mencionada anteriormente.

2. Visualización de los datos:

En este paso, después de importar los datos y montarlos con Colab, tengamos una descripción general del conjunto de datos mediante la importación de un módulo llamado pandas. Dado que el conjunto de datos que tenemos tiene una extensión de .pkl, simplemente lo vemos por la función disponible en la biblioteca de pandas.

36815screenshot202021-03-2620at205-59-4420pm-8975481

Importamos la biblioteca para leer el conjunto de datos y lo almacenamos en una variable llamada raw_data. Luego mostramos el contenido de raw_data que está en formato tabulado.

51690screenshot202021-03-2620at206-07-3320pm-6319357

Podemos ver los datos que tenemos y contiene solo 2 columnas, a saber, Edad (en años) y Altura (en pulgadas) y 100 filas, que en realidad es la representación de una persona.

22785screenshot202021-03-2620at206-23-4020pm-5310107

Esta única línea de código tiene un gran impacto en la forma en que miramos el conjunto de datos. Solo teníamos una vista numérica del conjunto de datos, pero ahora podemos ejecutar esta celda para obtener una vista de histograma del conjunto de datos, lo cual es muy útil. Representa los datos presentes en las columnas individuales como gráficos individuales.

98337screenshot202021-03-2620at206-26-4720pm-6987210

El eje Y en ambos gráficos se refiere a la frecuencia y el eje X representa Edad y Altura respectivamente.

3. Limpieza de datos:

Tenemos que construir el modelo usando conjuntos de datos válidos y limpiar los datos que no se deben rendir cuentas. En la imagen de arriba, podemos saber que hay algunas entradas que tienen una edad menor a cero, lo cual no tiene sentido. Por lo tanto, necesitamos limpiar esos datos para obtener una mayor precisión.

82384screenshot202021-03-2620at206-52-5220pm-6788538

Yo uso variable datos_limpiados para almacenar los valores de edad válidos y mostrarlos al usuario.

18739screenshot202021-03-2620at206-57-2020pm-3432424

Inicialmente, teníamos 100 filas, pero después de realizar la limpieza de datos, está bastante claro que hay siete filas que tenían una edad <0 y las hemos eliminado. Como profesional, se supone que no debemos eliminar los datos, ya que los estamos reduciendo y, por lo tanto, la precisión de nuestro modelo se reduce. Para hacerlo simple, los acabo de eliminar.

Visualice los datos limpios: ahora he utilizado los datos limpios y los visualicé en forma de gráfico.

70990screenshot202021-03-2720at2010-50-5020am-3799242

Para trazar gráficos en python, importo la biblioteca matplotlib.pyplot. Represento la edad en el eje X y la altura en el eje Y. Los puntos del gráfico se refieren a los datos brutos.

69549screenshot202021-03-2720at2010-57-2920am-7127170

4. Construya el modelo y entrénelo:

Aquí es donde entra en juego el algoritmo ML, es decir, la regresión lineal simple.

37274screenshot202021-03-2720at2011-07-1420am-1632675

Usé un diccionario llamado parámetros que tiene alfa y beta como clave con 40 y 4 como valores respectivamente. También he definido una función y_hat que toma la edad y los parámetros como parámetros. Esta función usa la ecuación básica en línea recta y devuelve y, es decir, altura como en nuestro caso. Si pasamos los parámetros requeridos y ejecutamos la función, encontramos que la altura que obtenemos para la edad como entrada no coincide. Por lo tanto, usamos la función que se menciona a continuación para hacer llover el modelo.

64556screenshot202021-03-2720at2011-20-1920am-7143468

Aquí es donde usamos un método para encontrar el alfa y el beta correctos. La función aprender_parámetros acepta datos_limpiados y un diccionario ficticio new_parameter que puede tener cualquier valor para alfa y beta. Entonces, cuando los pasamos como argumentos a los parámetros y la función se ejecuta, podemos obtener el valor correcto de alfa y beta que se encuentra cerca de 30 y 2 respectivamente y reemplazar los valores antiguos por los nuevos.

48164screenshot202021-03-2720at2011-44-3420am-8002797

Hemos encontrado con precisión los valores de alfa y beta, y nuestro próximo objetivo es entrenar los datos. Pero permítanme los valores predichos no entrenados hasta qué punto son precisos.

25974screenshot202021-03-2720at2011-55-4220am-9103542

Yo uso una lista llamada edades_espaciales que tiene valores de 0 a 18 (final – 1). Luego otra lista llamada spaced_untrained_predictions que tiene los valores predichos para la altura utiliza el y_hat función definida anteriormente para predecirlo. Estos valores se trazan en un gráfico y se visualizan.

28235screenshot202021-03-2720at2012-04-4120pm-7665675

La línea verde muestra que el spaced_untrained_predictions se han desviado en gran medida de los valores reales y la precisión es muy pobre. Por lo tanto, es necesario aumentar la precisión para lo cual debemos entrenar los datos.

67976screenshot202021-03-2720at2012-13-3720pm-1251572

Entonces en lugar de usar parámetros usamos nuevos_parámetros ya que contiene el valor exacto de alfa y beta y lo almacena en una lista llamada spaced_trained_predictions. Entonces, cuando trazamos un gráfico para esto, podemos ver una diferencia visible y la precisión ha aumentado mucho. Por lo tanto, hemos construido y entrenado con éxito el modelo. Prueba de ello son los valores de spaced_trained_predictions y el gráfico.

96811screenshot202021-03-2720at2012-26-3920pm-4378555

La Greenline se refiere a los valores de spaced_untrained_predictions y Redline se refiere a los valores de spaced_trained_predictions.

5.Haga predicciones sobre datos invisibles:

Con la ayuda de este modelo entrenado, ahora podemos hacer predicciones precisas.

82091screenshot202021-03-2720at2012-34-5020pm-6171613

Entonces, podemos ver que para cualquier edad dada encontramos la altura posible en pulgadas. Finalmente, hemos entrenado el modelo con éxito y con la máxima precisión, que es el objetivo final de este tutorial.

Como referencia, he pegado el Enlace al cuaderno juegas con él. Espero conectarme a través de LinkedIn también y comparta sus valiosos comentarios. Estén atentos para más blogs de este tipo😊.

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.