当前位置: 首页 > article >正文

241115-如何用sklearn做一个简单线性回归

241115-如何用sklearn做一个简单线性回归

可以参考如下代码:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
# 给数据
data=np.array([[1,2],[3,4],[5,6]])
x=data[:,0].reshape(-1,1)
y=data[:,1].reshape(-1,1)
# 训练
reg=LinearRegression().fit(x,y)
# 预测
pred=reg.predict(x)
# 可视化
plt.scatter(x,y)
# 这里线的宽度和颜色必须要给,不然可能看不到线
plt.plot(x,pred,linewidth=3,color='r')

数据点比较少,只给了三个点,可能看的效果不是很好,懂意思就行

image-20241115093848441

如果是从excel表格中读入的数据,我们就需要对其进行处理

初始读入的是dataframe对象,取出来直接训练会报错,因为fit方法需要的参数是array数组,不能接收df

import pandas as pd
df=pd.read_excel("your_excel.xlsx")
# 替换成你自己所需要的列名
column_list=['x','y']
# .values是转换成array,.reshape是对其形状进行重组,这里不执行reshape也是无法载入的
x=df[column_list[0]].values.reshape(-1,1)
y=df[column_list[1]].values.reshape(-1,1)

然后就得到了符合格式的x,y,用上面的训练代码和画图代码进行操作即可,以下是我的excel数据,请自备数据进行试验

image-20241115094410773

同时,如果你的excel有缺失值,记得填充,这里采用均值填充

for i in column_list:
    df[i]=df[i].fillna(df[i].mean())

如果需要对其相关参数进行评估,代码如下

from sklearn.metrics import mean_squared_error, r2_score
print(f"mean_squared_error:{mean_squared_error(y,pred)}")
print(f"R2score:{r2_score(y,pred)}")

image-20241115094951446

以下是一个完整代码:

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error, r2_score
df=pd.read_excel("ST-temp510.xlsx")
# 替换成你自己所需要的列名
column_list=['T900','S47']
# 均值填充
for i in column_list:
    df[i]=df[i].fillna(df[i].mean())
# .values是转换成array,.reshape是对其形状进行重组,这里不执行reshape也是无法载入的
x=df[column_list[0]].values.reshape(-1,1)
y=df[column_list[1]].values.reshape(-1,1)
# 训练
reg=LinearRegression().fit(x,y)
# 预测
pred=reg.predict(x)
# 可视化
plt.scatter(x,y)
# 这里线的宽度和颜色必须要给,不然可能看不到线
plt.plot(x,pred,linewidth=3,color='r')

print(f"mean_squared_error:{mean_squared_error(y,pred)}")
print(f"R2score:{r2_score(y,pred)}")

如有问题请大佬指出。


http://www.kler.cn/a/397157.html

相关文章:

  • 【CV】头盔检测区域入侵项目
  • 千益畅行,共享旅游卡市场乱象解析与未来展望
  • 【已解决】git push一直提示输入用户名及密码、fatal: Could not read from remote repository的问题
  • Flink Source 详解
  • ffmpeg视频编码
  • 容器安装gitlab
  • 如何实现主备租户的无缝切换 | OceanBase应用实践
  • Ubuntu24.04配置安装可视化terminal终端
  • 解决Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • React Native 全栈开发实战班 - 用户界面进阶之自定义组件开发
  • electron安装遇到的问题
  • (一)Ubuntu20.04服务器端部署Stable-Diffusion-webui AI绘画环境
  • UG Motion学习笔记2【正解 反解】
  • HarmonyOS 开发环境搭建
  • keep-alive多级页面缓存实现
  • 商品规格递归拼接
  • 【JAVA】Java基础—面向对象编程:多态—多态的概念
  • 不可变对象:并发编程的“安全岛”
  • ubuntu22 安装 minikube
  • SOC Boot学习(一)——ELF文件
  • HBase压测 ycsb
  • 建设工程监理规范 (2014年3月1日起实施)
  • 01、Spring MVC入门程序
  • 实施案例PPT | 数据湖+数据中台实施方案
  • 用go语言后端开发速查
  • Android从Drawable资源Id直接生成Bitmap,Kotlin