📅  最后修改于: 2023-12-03 15:23:43.651000             🧑  作者: Mango
多项式回归是利用多项式函数来拟合数据点的一种回归分析方法。多项式回归可以适用于非线性数据的拟合,比一般的线性回归更加灵活。
在进行多项式回归之前,我们需要准备一些数据。我们可以使用numpy库生成一些随机数据来进行演示。
import numpy as np
# 生成随机数据
x = np.linspace(0, 1, 50)
y = np.sin(x * 2 * np.pi) + np.random.normal(0, 0.1, len(x))
这里生成了50个数据点,其中x是一个0到1之间等分的数组,y是在sin曲线上加上一些噪声而得的一个数组。
接下来,我们需要使用多项式函数来拟合这些数据点。在Python中,我们可以使用numpy库中的polyfit函数来实现多项式回归。
# 使用2次多项式函数拟合数据
p2 = np.polyfit(x, y, 2)
这里使用了2次多项式函数来拟合数据。我们还可以使用更高次数的多项式来得到更精确的拟合结果,但也可能因为"过拟合"而导致模型性能下降。
拟合完数据之后,我们可以使用matplotlib库将原始数据点和拟合曲线绘制出来。
import matplotlib.pyplot as plt
# 绘制原始数据点
plt.scatter(x, y)
# 绘制拟合曲线
xp = np.linspace(0, 1, 100)
plt.plot(xp, np.polyval(p2, xp), 'r-')
这里使用了散点图和红色线条来绘制数据点和拟合曲线。绘制结果会显示在窗口中。
完整代码如下:
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
x = np.linspace(0, 1, 50)
y = np.sin(x * 2 * np.pi) + np.random.normal(0, 0.1, len(x))
# 使用2次多项式函数拟合数据
p2 = np.polyfit(x, y, 2)
# 绘制原始数据点
plt.scatter(x, y)
# 绘制拟合曲线
xp = np.linspace(0, 1, 100)
plt.plot(xp, np.polyval(p2, xp), 'r-')
# 显示绘图结果
plt.show()
其中,polyval函数用于计算拟合曲线在给定x处的值。
以上就是多项式回归在Python中的实现方法。