📅  最后修改于: 2023-12-03 15:37:52.194000             🧑  作者: Mango
多项式回归可以帮助我们拟合非线性关系的数据。在Python中,我们可以使用scikit learn库实现多项式回归。
可以通过pip命令安装scikit learn:
pip install scikit-learn
我们需要一个数据集来实现多项式回归。在这里,我们将使用scikit learn自带的波士顿房价数据集。下面给出数据集加载代码:
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
我们将使用scikit learn中的PolynomialFeatures和LinearRegression类来实现多项式回归。
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
poly_features = PolynomialFeatures(degree=2)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
在上面的代码中,我们首先使用PolynomialFeatures类来将我们的特征矩阵转换为多项式的形式。然后我们使用LinearRegression类来拟合多项式回归模型。在这里,我们使用了二阶多项式,也就是说我们多项式回归模型中会有一次项、二次项和截距项。
我们现在可以使用我们拟合的多项式回归模型来预测结果。
y_pred = lin_reg.predict(X_poly)
我们可以使用均方根误差(RMSE)来评估我们的多项式回归模型。
from sklearn.metrics import mean_squared_error
rmse = np.sqrt(mean_squared_error(y, y_pred))
print("RMSE:", rmse)
我们可以使用matplotlib库将预测结果和实际结果进行可视化。
import matplotlib.pyplot as plt
plt.scatter(range(len(y)), y, color='b')
plt.scatter(range(len(y)), y_pred, color='r')
plt.legend(('Actual', 'Predicted'))
plt.show()
上面的代码将在一个图像中显示实际结果和预测结果。
在本文中,我们介绍了如何使用scikit learn来实现多项式回归。我们讨论了加载数据、拟合模型、预测结果、评估模型和可视化结果的步骤。