Python | Implementación de regresión polinomial

La regresión polinómica es una forma de regresión lineal en la que la relación entre la variable independiente x y la variable dependiente y se modela como un polinomio de grado n . La regresión polinomial ajusta una relación no lineal entre el valor de x y la media condicional correspondiente de y, denotada como E(y |x)
Por qué la regresión polinomial: 
 

  • Hay algunas relaciones que un investigador hipotetizará que son curvilíneas. Claramente, tales tipos de casos incluirán un término polinomial.
  • Inspección de residuos. Si tratamos de ajustar un modelo lineal a datos curvos, un diagrama de dispersión de residuos (eje Y) en el predictor (eje X) tendrá parches de muchos residuos positivos en el medio. Por lo tanto, en tal situación, no es apropiado.
  • Una suposición en el análisis de regresión lineal múltiple habitual es que todas las variables independientes son independientes. En el modelo de regresión polinomial, esta suposición no se cumple.

Usos de la Regresión Polinomial: 
Básicamente se utilizan para definir o describir fenómenos no lineales como: 
 

Python3

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
 
# Importing the dataset
datas = pd.read_csv('data.csv')
datas

Python3

X = datas.iloc[:, 1:2].values
y = datas.iloc[:, 2].values

Python3

# Fitting Linear Regression to the dataset
from sklearn.linear_model import LinearRegression
lin = LinearRegression()
 
lin.fit(X, y)

Python3

# Fitting Polynomial Regression to the dataset
from sklearn.preprocessing import PolynomialFeatures
 
poly = PolynomialFeatures(degree = 4)
X_poly = poly.fit_transform(X)
 
poly.fit(X_poly, y)
lin2 = LinearRegression()
lin2.fit(X_poly, y)

Python3

# Visualising the Linear Regression results
plt.scatter(X, y, color = 'blue')
 
plt.plot(X, lin.predict(X), color = 'red')
plt.title('Linear Regression')
plt.xlabel('Temperature')
plt.ylabel('Pressure')
 
plt.show()

Python3

# Visualising the Polynomial Regression results
plt.scatter(X, y, color = 'blue')
 
plt.plot(X, lin2.predict(poly.fit_transform(X)), color = 'red')
plt.title('Polynomial Regression')
plt.xlabel('Temperature')
plt.ylabel('Pressure')
 
plt.show()

Python3

# Predicting a new result with Linear Regression after converting predict variable to 2D array
pred = 110.0
predarray = np.array([[pred]])
lin.predict(predarray)

Python3

# Predicting a new result with Polynomial Regression after converting predict variable to 2D array
pred2 = 110.0
pred2array = np.array([[pred2]])
lin2.predict(poly.fit_transform(pred2array))

Publicación traducida automáticamente

Artículo escrito por Akashkumar17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *