多项式拟合sklearn的Python代码
时间: 2024-09-21 11:08:57 浏览: 36
Python 普通最小二乘法(OLS)进行多项式拟合的方法
在Python中,可以使用scikit-learn (sklearn) 库来进行多项式拟合。下面是一个简单的例子,演示了如何使用`PolynomialFeatures`和`LinearRegression`来拟合一次、二次和三次多项式:
```python
# 导入必要的库
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
import numpy as np
# 创建一些示例数据
np.random.seed(0)
x = np.linspace(0, 10, 50)
y = 2 * x + 3 + np.random.normal(0, 2, x.shape)
# 一次、二次和三次多项式拟合
for degree in [1, 2, 3]:
# 转换数据以便添加特征
poly = PolynomialFeatures(degree=degree)
x_poly = poly.fit_transform(x[:, np.newaxis])
# 创建线性回归模型并训练
model = LinearRegression()
model.fit(x_poly, y)
# 打印拟合结果
print(f"Degree {degree} polynomial fit:")
print("Intercept:", model.intercept_)
print("Coefficients:", model.coef_)
# 可视化原始数据和拟合曲线
plt.scatter(x, y, label=f'degree={degree}')
x_new = np.linspace(0, 10, 100)
y_new = model.predict(poly.transform(x_new[:, np.newaxis]))
plt.plot(x_new, y_new, label='fit', linestyle='dashed')
plt.legend()
plt.show()
阅读全文