Está en la página 1de 11

INSTITUTO TECNOLOGICO DE HERMOSILLO

ACTIVIDAD 6: REGRESIÓN LINEAL MÚLTIPLE CON


PYTHON

MATERIA: APRENDIZAJE AUTOMÁTICO I

DOCENTE: HINOJOSA PALAFOX EDUARDO ANTONIO

ALUMNO: CORREA MARTINEZ MANUEL FRANCISCO

GRUPO: S8A

Hermosillo, Son.
INTRODUCCIÓN

SciKit Learn es prácticamente el estándar de oro cuando se trata de aprendizaje


automático en Python. Tiene muchos algoritmos de aprendizaje, para regresión,
clasificación, agrupamiento y reducción de dimensionalidad. (Guía para:
Implementación y visualización de una regresión lineal múltiple en Python )

IMPLEMENTACIÓN

Para dar inicio a la presente práctica es necesario tener instalado Jupyter Notebook
o bien utilizar la herramienta Google Colab la cual se ejecuta en la nube, ya que
este tipo de entornos permiten trabajar específicamente con Python y sus librerías
para ciencia de datos y aprendizaje automático.

Una vez ya abierto el Notebook de python, es necesario cargar el set de datos con
el que se trabajara, el cual lleva por nombre “datos1.xlsx”.

Para importar estos datos y trabajar con ellos es necesario utilizar la librería Pandas
de python la cual está especializada en la manipulación y el análisis de datos.
Ofrece estructuras de datos y operaciones para manipular tablas numéricas y series
temporales.

Creamos la variable datos_consumo para cargar el archivo con la función


read_excel() de la librería Pandas:
Con la función head() se imprimen los primeros 5 registros, y se verifica que se
hayan cargado correctamente los datos:

Ahora bien, una vez que los datos ya están cargados, se realizará una exploración
para ver cómo se distribuyen estos mismos. Con la función groupby() agrupamos
los datos de la columna Momento y con count() los contamos para obtener
subtotales:

Para visualizar las estadísticas descriptivas de nuestros datos es necesario ejecutar


la función describe(), la cual nos muestra las medidas de tendencia central, en sí
las estadísticas generales del dataset:
SELECCIONANDO LOS DATOS

Lo siguiente es crear una nueva variable la cual se llamará datos_seleccionados


para asignarle el DafaFrame que contendrá sólo los datos que analizaremos,
utilizamos la función iloc[] para seleccionar los elementos de acuerdo a su
ubicación, su sintaxis es iloc[<filas>, <columnas>]:

Haciendo uso de la función info() de python se tiene información (número de filas,


número de columnas, índices, tipo de las columnas y memoria usado) sobre el
DataFrame.
LIMPIANDO LOS DATOS

A continuación, con las siguientes instrucciones se realizará una limpieza de los


datos para su respectivo proceso.

Con la funcion isnull() se verifica si el set de datos tiene valores nulos

Se crea una nueva variable la cual lleva por nombre “dataset” y se le asigna el valor
de la variable datos_seleccionados pero aplicando la función dropna() la cual
permite, de una forma muy conveniente, filtrar los valores de una estructura de
datos pandas para dejar solo aquellos no nulos.

Esta validación permite observar que no se tienen valores nulos en cada una de las
columnas del dataset, utilizando la función isnull() y sum() se puede visualizar este
resultado:
PREPARANDO LOS DATOS

El siguiente paso es asignar los atributos a las variables en nuestros datos. La


variable X contiene los atributos de entrada y la variable y los atributos de salida:

Ahora lo siguiente será dividir los datos en un conjunto de entrenamiento (80%) y un


conjunto de prueba (20%). Con los datos de entrenamiento se realiza el aprendizaje
automático y con los datos de prueba se realiza la evaluación, para ello se necesita
importar desde la librería Sklearn la función train_test_split permite hacer una
división de un conjunto de datos en dos bloques de entrenamiento y prueba de un
modelo (train and test). Esta función está íntimamente relacionada con la
estratificación, proceso que se hace con respecto a una variable que normalmente
es la variable target.
MODELACIÓN DE LOS DATOS

De la librería SciKit-Learn importamos la clase de regresión lineal y crearemos un


objeto de esa clase, que será nuestro modelo de regresión lineal:

Ya con el modelo, utilizaremos la función fit() el cual se encarga de ajustar los


parámetros de regresión lineal a los datos, en este caso "ajustar" el modelo a
nuestro conjunto de datos. Esto permite al modelo "estudiar" nuestros datos y
"aprender" de ellos:

En este punto, el algoritmo ya ha aprendido cuáles son los coeficientes de X


óptimos para satisfacer el modelo. Despliega los coeficientes y sus valores; por
cada unidad del coeficiente, su impacto en las calorías será igual a su valor

Vemos los coeficientes de cada variable; en este caso notamos como el Sodio tiene
un impacto no significativo en la cantidad de calorías al tener un coeficiente
sumamente pequeño.
Una vez que el modelo ya ha sido entrenado, es momento de ponerlo a prueba, y
esto es utilizando la función predict() con la cual se pueden predecir nuevas
observaciones.

Lo siguiente será revisar la diferencia entre los valores actuales y los valores de
predicción en la comparación, y se puede observar la diferencia en cantidad de
calorías calculadas por el modelo.

Utilizando la función describe() se puede ver la estadística descriptiva:


Como siguiente paso se calculará el coeficiente de determinación R2 para
comprobar la precisión del modelo, mientras mayor sea el R2, mejor será el ajuste
del modelo a los datos. El objetivo es un valor lo más cercano a 1 (100%), que nos
indica que tanto se ajusta el modelo a los datos, es decir, que porcentaje de calorías
explicado por la regresión.

En este caso el valor de R2 es de 0.8695 por lo que se puede concluir que el


modelo explica el 87% del contenido calórico de los alimentos. Por lo que podemos
deducir que el modelo se considera eficiente.
VISUALIZACIÓN DE LOS DATOS

Ahora toca realizar los gráficos para la visualización de los datos para hacer la
comparación de valores actuales y de predicción y estimar de manera visual que tan
preciso o no es el modelo para calcular calorías.

Para realizar estos gráficos se hará uso de matplotlib la cual es una biblioteca para
la generación de gráficos en dos dimensiones, a partir de datos contenidos en listas
o arrays.
CONCLUSIÓN

Visto lo anterior y el trabajo realizado, puedo deducir que se cumplió con el objetivo
principal de la práctica, ya que al poner en acción los conocimientos adquiridos en
clase se obtuvo experiencia trabajando con la regresión lineal múltiple y ver cómo
este tipo de algoritmo puede dar soluciones efectivas.

También podría gustarte