Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Construcción de Regresión Polinómica | Regresión Polinómica
Quizzes & Challenges
Quizzes
Challenges
/
Regresión Lineal con Python

bookConstrucción de Regresión Polinómica

Carga de archivo

Se carga poly.csv y se inspecciona:

1234
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) print(df.head())
copy

Luego, visualización de la relación:

12345
import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()
copy

Una línea recta se ajusta de manera deficiente, por lo que la regresión polinómica es más adecuada.

Construcción de la matriz X̃

Para crear , se pueden agregar manualmente las características al cuadrado:

df['Feature_squared'] = df['Feature'] ** 2

Pero para grados superiores, PolynomialFeatures es más sencillo. Requiere una estructura bidimensional:

from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)

También agrega la columna constante, por lo que no es necesario sm.add_constant().

Si X es unidimensional, convertirla:

X = X.reshape(-1, 1)

Construcción de la regresión polinómica

import statsmodels.api as sm
y = df['Target']
X = df[['Feature']]
X_tilde = PolynomialFeatures(n).fit_transform(X)
model = sm.OLS(y, X_tilde).fit()

La predicción requiere transformar los nuevos datos de la misma manera:

X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)

Ejemplo completo

123456789101112131415161718
import pandas as pd, numpy as np, matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures df = pd.read_csv(file_link) n = 2 X = df[['Feature']] y = df['Target'] X_tilde = PolynomialFeatures(n).fit_transform(X) model = sm.OLS(y, X_tilde).fit() X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) y_pred = model.predict(X_new_tilde) plt.scatter(X, y) plt.plot(X_new, y_pred) plt.show()
copy

Prueba diferentes valores de n para observar cómo cambia la curva y cómo se comportan las predicciones fuera del rango original de la característica; esto conduce al siguiente capítulo.

question mark

Considera el siguiente código. ¿En qué caso el código se ejecutará sin errores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

What does the `PolynomialFeatures` class do in this context?

How do I choose the best degree `n` for my polynomial regression?

Can you explain why a straight line fits poorly in this example?

Awesome!

Completion rate improved to 5.26

bookConstrucción de Regresión Polinómica

Desliza para mostrar el menú

Carga de archivo

Se carga poly.csv y se inspecciona:

1234
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) print(df.head())
copy

Luego, visualización de la relación:

12345
import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()
copy

Una línea recta se ajusta de manera deficiente, por lo que la regresión polinómica es más adecuada.

Construcción de la matriz X̃

Para crear , se pueden agregar manualmente las características al cuadrado:

df['Feature_squared'] = df['Feature'] ** 2

Pero para grados superiores, PolynomialFeatures es más sencillo. Requiere una estructura bidimensional:

from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)

También agrega la columna constante, por lo que no es necesario sm.add_constant().

Si X es unidimensional, convertirla:

X = X.reshape(-1, 1)

Construcción de la regresión polinómica

import statsmodels.api as sm
y = df['Target']
X = df[['Feature']]
X_tilde = PolynomialFeatures(n).fit_transform(X)
model = sm.OLS(y, X_tilde).fit()

La predicción requiere transformar los nuevos datos de la misma manera:

X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)

Ejemplo completo

123456789101112131415161718
import pandas as pd, numpy as np, matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures df = pd.read_csv(file_link) n = 2 X = df[['Feature']] y = df['Target'] X_tilde = PolynomialFeatures(n).fit_transform(X) model = sm.OLS(y, X_tilde).fit() X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) y_pred = model.predict(X_new_tilde) plt.scatter(X, y) plt.plot(X_new, y_pred) plt.show()
copy

Prueba diferentes valores de n para observar cómo cambia la curva y cómo se comportan las predicciones fuera del rango original de la característica; esto conduce al siguiente capítulo.

question mark

Considera el siguiente código. ¿En qué caso el código se ejecutará sin errores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
some-alt