原文: https://pythonbasics.org/polynomial-regression-in-python/

多项式回归可能非常有用。 X 和 Y 之间并不总是存在线性关系。有时,该关系是指数级或 N 阶。

回归

多项式回归

您可以绘制 X 和 Y 之间的多项式关系。如果没有线性关系,则可能需要多项式。 与线性关系不同,多项式可以更好地拟合数据。

Python 中的多项式回归 - 图1

您只需一行代码即可创建此多项式行。

  1. poly_fit = np.poly1d(np.polyfit(X,Y, 2))

那将训练算法并使用二阶多项式。
训练后,您可以使用一个新示例通过调用polyfit来预测值。 然后它将输出一个连续值。

示例

下面的示例在收集到的数据上方绘制了一条多项式线。 它训练算法,然后预测连续值。

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. X = [1, 5, 8, 10, 14, 18]
  4. Y = [1, 1, 10, 20, 45, 75]
  5. # Train Algorithm (Polynomial)
  6. degree = 2
  7. poly_fit = np.poly1d(np.polyfit(X,Y, degree))
  8. # Plot data
  9. xx = np.linspace(0, 26, 100)
  10. plt.plot(xx, poly_fit(xx), c='r',linestyle='-')
  11. plt.title('Polynomial')
  12. plt.xlabel('X')
  13. plt.ylabel('Y')
  14. plt.axis([0, 25, 0, 100])
  15. plt.grid(True)
  16. plt.scatter(X, Y)
  17. plt.show()
  18. # Predict price
  19. print( poly_fit(12) )

过拟合和欠拟合

切勿过拟合或欠拟合,这是很重要的,您想抓住这种关系但又不能完全遵循这些要点。 线性关系会欠拟合,而过拟合会选择程度高到可以拟合点的程度。 相反,您想要捕获关系。

下载示例和练习