Hola. Bienvenido a este video tutorial, donde vas a poner en práctica lo que has aprendido sobre modelos de regresión no lineales. Para ello, vamos a construir un modelo de regresión polinomial a partir del uso de transformaciones polinomiales sobre las variables predictoras y para ello, seguiremos los siguientes pasos. Primero, vamos a preparar los datos para el modelado. Luego, construiremos el modelo de regresión y finalmente, lo evaluaremos. En este caso, vamos a utilizar el conjunto de datos relacionado con la estimación del precio de una vivienda con base en características de la zona de ubicación. Ten en cuenta que, estos son los mismos datos que se utilizaron en la infografía de regresión polinomial. Antes de comenzar, recuerda que debes tener Anaconda, Jupyter Notebook instalados en tu computador. Así como, el notebook y el conjunto de datos que se utilizaron en este video tutorial ubicados en la misma carpeta. Para comenzar, vamos a importar las librerías que necesitaremos. Como puedes ver, la clase de LinearRegression que se utilizó en el video tutorial anterior para la construcción del modelo de regresión lineal simple, también sirve para crear modelos de regresión polinomial. Adicionalmente, para realizar la transformación polinomial utilizaremos la clase de Sklearn de PolynomialFeatures. Listo. Ahora, podemos cargar los datos de la misma manera que hemos venido haciendo en los videos anteriores, utilizando Pandas. Como puedes ver, en este caso estamos trabajando sobre un conjunto de datos muy sencillo que solo contiene dos variables y cerca de 400 registros. Continuando, recuerda, que siempre es importante entender tus datos. Para ello, podemos utilizar la función describe de Pandas y poder tener un primer entendimiento sobre el comportamiento de las variables. Adicionalmente, podemos crear una gráfica de dispersión utilizando Matplotlib, para ver a primera vista cómo se relacionan las dos variables. Como puedes ver a simple vista, la relación de las dos variables es no lineal. Listo. Como los datos ya están listos para crear el modelo, no es necesario realizar el paso de preparación de datos y podemos empezar con la construcción de modelos. Primero, vamos a construir el modelo de regresión lineal simple sobre este conjunto de datos. La idea, es poder comparar este modelo con el de regresión polinomial para observar el efecto de la transformación polinomial. En esta parte del Notebook, como estaremos revisitando temas que ya vimos a fondo en el módulo anterior, te recomiendo que vuelvas a ver el video tutorial anterior en caso de que lo consideres necesario. Primero, vamos a separar la variable objetivo "precio" de la variable explicativa "estrato". A continuación, debemos hacer la separación de nuestros datos en un conjunto para el entrenamiento y otra para el test con la clase train_test_ split. Luego, crearemos un objeto de la clase LinearRegression, con el que podemos entrenar el modelo de regresión lineal simple, utilizando la función fit y el conjunto de datos de entrenamiento. Ahora, para evaluarlo utilizaremos las métricas de MSE, MAE y R cuadrado. Recuerda, que estas métricas se obtienen utilizando el conjunto de datos de test para determinar la capacidad de generalización del modelo. Una vez obtenidas, ahora podemos visualizar el coeficiente y el intercepto del modelo. Adicionalmente, podemos crear una visualización de este modelo de regresión lineal. Para ello, creamos la misma gráfica que creamos previamente, pero ahora creamos una línea que represente el modelo. Para ello, simplemente, utilizamos la función plot, primero, indicando los datos del estrato y luego, la predicción del precio obtenida por el modelo, utilizando la fórmula de regresión lineal. Es decir, el intercepto más el coeficiente multiplicado por el estrato, que en este caso es la variable x. Aquí, observando las métricas y la gráfica, se puede ver que este modelo no es del todo un buen acercamiento al problema, principalmente, dado que hay una clara relación no lineal entre las variables. Listo. Ahora, para crear el modelo de regresión polinomial, primero debemos realizar la transformación de las variables predictoras. Para ello, primero creamos un objeto de PolynomialFeatures de Sklearn, con el cual podemos realizar la transformación de la variable explicativa "estrato". Para este ejemplo, utilizaremos una transformación polinómica de grado dos y para aplicarla utilizamos la función fit_transform sobre el objeto que acabamos de crear, lo cual recibe como parámetro una lista de números, que en este caso es nuestra variable explicativa. Esta transformación crea una nueva variable que será igual a "estrato elevado al cuadrado" y la incluye en el conjunto de datos. Ahora, podemos construir el modelo. Primero, es necesario separar los conjuntos de datos, pero ahora utilizando los datos con la nueva variable, que en nuestro caso es "x_pol", que es la que contiene los datos transformados. Para el entrenamiento del modelo de regresión polinomial, como puedes ver, se utiliza el mismo algoritmo utilizado para regresión lineal. Ahora, para evaluarlo, podemos obtener las mismas métricas que obtuvimos anteriormente. Ahora, como puedes observar, el modelo de regresión polinomial con grado dos muestra una mejor capacidad de generalización a comparación de la regresión lineal, ya que cada una de las métricas muestra mejores resultados. Para las métricas relacionadas al error del modelo, se observan valores ligeramente menores, es decir, se comporta mejor y tiene menos error y por el lado del R cuadrado se observa un valor mayor, indicando que este modelo se ajusta mejor a los datos. Adicionalmente, para comparar visualmente los modelos podemos obtener los coeficientes e intercepto para luego graficar el modelo. Como puedes ver, este modelo logra ser un mejor acercamiento para explicar la relación entre las dos variables. Para terminar, recuerda, que la regresión polinomial se puede realizar con distintos grados de transformación. En esta sección, vamos a crear y evaluar de nuevo otro modelo de regresión polinomial, siguiendo exactamente los mismos pasos que acabamos de seguir, pero ahora con un grado de nivel tres. Como puedes ver ahora, la transformación nos incluye dos nuevas columnas. Primero, el estrato elevado al cuadrado y luego, el estrato elevado al cubo. Continuando, realizando los mismos pasos para entrenar el modelo y evaluarlo, nuevamente obtenemos un mejor modelo, ya que obtenemos mejores métricas que los modelos previamente creados. Finalmente, podemos volver a graficar el modelo y observar directamente que obtuvimos un mejor acercamiento al problema al crear este modelo de regresión polinomial, utilizando un grado de nivel tres. Listo. Con esto, ya eres capaz de crear modelos de regresión polinomial por medio de transformaciones polinomiales. Sin embargo, como pudiste ver, en este caso solo teníamos una variable explicativa. Dicho esto, nos vemos en el siguiente video tutorial donde construiremos un modelo de regresión polinomial, pero con más de una variable explicativa.