📜  多项式回归实现python(1)

📅  最后修改于: 2023-12-03 15:23:43.651000             🧑  作者: Mango

多项式回归实现python

多项式回归是利用多项式函数来拟合数据点的一种回归分析方法。多项式回归可以适用于非线性数据的拟合,比一般的线性回归更加灵活。

准备数据

在进行多项式回归之前,我们需要准备一些数据。我们可以使用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中的实现方法。