使用sklearn进行多项式回归

1.数据

1
2
3
x = np.random.uniform(-5, 5 ,size=100)
X = x.reshape(-1, 1)
y = x**2 + x +2 + np.random.normal(0, 1, size = 100)

 2. 拟合

1
2
3
4
5
6
7
8
ploy = PolynomialFeatures(degree=2)
X2 = ploy.fit_transform(X)
reg = LinearRegression()
reg.fit(X2,y)
y_predict = reg.predict(X2)
 
print(reg.coef_) #系数
print(reg.intercept_) #截距

 3. 图形绘制

1
2
3
plt.scatter(x, y)
plt.plot(np.sort(x), y_predict[np.argsort(x)], color='r')
plt.show()

 拟合部分还可以通过Pipeline将 多项式生成,归一化处理,线性回归进行整合

1
2
3
4
5
6
7
8
9
10
11
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
 
# 多项式的特征,数据归一化,线性回归
poly_reg = Pipeline([
    ("poly", PolynomialFeatures(degree=2)),
    ("std_scaler", StandardScaler()),
    ("lin_reg", LinearRegression())
])
poly_reg.fit(X, y)
y_predict = poly_reg.predict(X)

系数: [0.         1.02750451 1.00863466]
截距:1.8723913311785978

 

posted @   华小电  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示