爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7127|回复: 5

[经验总结] 机器学习之sklearn线性回归实战

[复制链接]
发表于 2022-8-23 14:44:59 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前面学了不少枯燥的理论,现在终于可以实战一下,
做出机器学习的“Hello World”了。

1、一元线性回归

一元线性回归.png

一元线性回归,就是根据散点拟合一条直线;
常规方法可以使用polyfit函数,这里用机器学习的线性模型来实现。

源代码:

import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt

# 生成测试用的点,我们以直线y=x为基础,加上些随机数

# x坐标序列:
x=np.arange(20)

# y坐标序列:
y=x+np.random.normal(0,1,(20,))
# 这些是正态分布随机数

# x的数据结构改为sklearn线性模型支持的数据结构:

x=x.reshape(20,1)

# 训练模型:
reg=linear_model.LinearRegression()
reg.fit(x,y)

# 获得权重系数:
weights=reg.coef_
bias=reg.intercept_
weights=[float(w) for w in weights]
bias=float(bias)
weights+=[bias]

print('系数=',weights)

# 计算与x对应的拟合函数值:
y2=x*weights[0]+weights[1]

# 画原始散点:
plt.scatter(x,y)


# 画拟合直线:
plt.plot(x,y2)


plt.show()








密码修改失败请联系微信:mofangbao
 楼主| 发表于 2022-8-23 14:52:25 | 显示全部楼层
2、多元线性回归


模型长这样:y=w1*x1+w2*x2+w3*x3+......
w代表系数,x代表属性

from sklearn import linear_model

# 训练数据:
x=[[1,2,3],[3,0,3],[4,-1,3],[5,-2,3]]
y=[6,6,6,6]

# 训练模型:
reg=linear_model.LinearRegression()
reg.fit(x,y)

# 预测一个值:
y_pred=reg.predict([[100,-100,6]])
print('预测值=',y_pred)

# 获得系数:
weights=reg.coef_
bias=reg.intercept_
weights=[float(w) for w in weights]
bias=float(bias)
weights+=[bias]

print('系数=',weights)

# 注意:
# 设计训练数据的时候,标记值是3个属性值之和,
# 一开始,我设置y=[0,0,0,0],想要表示:
# 标记值=3个属性值之和-6,
# 但得出的系数都是0,也就是模型的函数值都是0
# 所以,训练数据还是很重要!




密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-8-24 13:05:51 | 显示全部楼层
楼主666,追更
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2023-7-6 14:00:46 来自手机 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2023-8-3 10:20:37 | 显示全部楼层
我初学还是没看懂,这不是excle都能做的拟合吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2023-8-3 10:29:05 | 显示全部楼层
没有看到训练train函数啊!没有所谓的迭代函数
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表