¿Cómo realizar una regresión cuadrática en Python?

La ecuación cuadrática es un método para modelar una relación entre conjuntos de variables independientes es la regresión cuadrática o podemos decir que la técnica de obtener la ecuación de una parábola que mejor se ajusta a una colección de datos se conoce como regresión cuadrática. Usamos la métrica R cuadrada para medir el poder predictivo relativo de una regresión cuadrática. 

La ecuación de la ecuación cuadrática es de la forma:

y= hacha^2+bx+c

donde a, b , c son constantes y a ≠ 0.

El término cuadrático se refiere a una ecuación que tiene una potencia de 2.

Conjunto de datos utilizado: haga clic aquí

Regresión cuadrática en Python

El código comienza con la importación de los paquetes necesarios, luego se lee el archivo CSV usando read_csv() y se visualizan los datos. visualización de los datos mediante un diagrama de dispersión marítimo. Agregar una línea polinomial a los datos para ver el ajuste. np.polyfit() y np.poly1d() se utilizan para crear un ajuste cuadrático y una ecuación cuadrática.

Sintaxis: numpy.polyfit (X, Y, deg, rcond=Ninguno, full=Falso, w=Ninguno, cov=Falso)

parámetros:

  • X: objeto tipo array, representa las coordenadas x.
  • Y:array como objeto, representa las coordenadas y.
  • deg: entero, grado del polinomio.

 La métrica R cuadrada se utiliza para medir el poder predictivo. El valor de R cuadrado determina la proporción de varianza para un valor dependiente. El valor de r2 generalmente varía de 0 a 1. Un valor de r cuadrado cercano a 1 es bastante bueno.  

Python3

# importing packages and modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics import r2_score
import scipy.stats as stats
  
dataset = pd.read_csv('ball.csv')
sns.scatterplot(data=dataset, x='time', 
                y='height', hue='time')
  
plt.title('time vs height of the ball')
plt.xlabel('time')
plt.ylabel('height')
plt.show()
  
# degree 2 polynomial fit or quadratic fit
model = np.poly1d(np.polyfit(dataset['time'],
                             dataset['height'], 2))
  
# polynomial line visualization
polyline = np.linspace(0, 10, 100)
plt.scatter(dataset['time'], dataset['height'])
plt.plot(polyline, model(polyline))
plt.show()
  
print(model)
  
# r square metric
print(r2_score(dataset['height'], 
               model(dataset['time'])))

Producción:

       2
2.008 x - 21.69 x + 121.7
0.8133556222534604

El valor de R cuadrado está por encima de 0,7, por lo que implica que el ajuste cuadrático es un ajuste para los datos.

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 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 *