如何在Python中进行二次回归
二次方程是对一组独立变量之间的关系进行建模的方法是二次回归,或者我们可以说获得最适合一组数据的抛物线方程的技术被称为二次回归。我们使用R平方度指标来衡量二次回归的相对预测能力。
一元二次方程的形式是:。
y=
其中a, b , c是常数,a≠0。
二次方程指的是具有2的幂的方程。
Python中的二次回归
代码从导入必要的包开始,然后使用read_csv()读取CSV文件,并将数据可视化。使用seaborn散点图将数据可视化。np.polyfit()和np.poly1d()被用来创建二次方程和二次方程的拟合。
语法: numpy.polyfit (X, Y, deg, rcond=None, full=False, w=None, cov=False)
参数:
- X:类似数组的对象,它代表X坐标。
- Y:类似数组的对象,它代表Y坐标。
- deg: 整数,多项式的度数。
R平方度指标是用来衡量预测能力的。R平方值决定了一个因果值的方差比例。R2值一般在0到1之间。R平方值接近1是相当好的。
# 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'])))
输出:
2
2.008 x - 21.69 x + 121.7
0.8133556222534604
R平方值高于0.7,所以它意味着二次拟合是对数据的一种适合。