【python学习】-使用sklearn对数据进行线性回归,并绘制回归线

2023-11-15

使用sklearn对数据进行线性回归,并绘制回归线

在科研工作中,有时得到一组或者几组数据,为了研究数据之间是否存在线性关系,一般会想到拟合数据,看下数据的线性关系。严格地说,是使用线性模型研究两个或多个变量之间规律的一种方法,这个过程就是线性回归。
本文以一元线性回归为例,记录处理过程。

基本思想

在这里插入图片描述

【线性回归步骤】

  1. 读入数据集
  2. 将数据集转为矩阵形式
  3. 进行回归训练
  4. 创建预测输入值
  5. 基于预测模型预测输出值
  6. 绘制回归曲线

代码实现

import matplotlib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
#导入、读入数据
data=pd.read_excel(r"D:\desk\data.xlsx",header=0)
data_tolist = data.values.tolist()
x=[]
y=[]
for i in data_tolist:
    x.append(i[0])
    y.append(i[1])
#绘制散点图
#图形设置
plt.rcParams['figure.figsize']=(6.0,4.5)
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.rcParams['font.sans-serif']=['Arial']
plt.scatter(x,y,marker='o',s=15,c='white',edgecolors='tab:orange')
font1 = {'family' : 'Arial',
         'weight' : 'normal',
         'size'   : 18,}
plt.xlabel('x',font1)
plt.ylabel('y',font1)
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
#plt.show()
#将数据整理为矩阵形式
T_x = np.array(x).reshape((len(x), 1))
T_y = np.array(y).reshape((len(y), 1))
#进行回归训练
lineModel = LinearRegression()
lineModel.fit(T_x, T_y)
#创建预测输入值
x_test=np.linspace(0,3,301)
T_x_test = np.array(x_test).reshape((len(x_test), 1))
#绘制预测曲线
plt.plot(T_x_test,lineModel.predict(T_x_test),linestyle='dotted',color='tab:blue')
ax=plt.gca()
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Arial') for label in labels]
plt.tick_params(axis='both',width=1,length=5)
plt.show()

【图形输出】
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python学习】-使用sklearn对数据进行线性回归,并绘制回归线 的相关文章

  • 根据随机选择的列生成随机天数

    我有一个如下所示的数据框 感谢 SO 社区在以下方面提供的帮助 df1 pd DataFrame person id 11 11 12 13 14 date birth 01 01 1961 12 30 1961 05 29 1967 01
  • 在 python 2 和 3 的spyder之间切换

    根据我在文档中了解到的内容 它指出您只需使用命令提示符创建一个新变量即可轻松在 2 个 python 环境之间切换 如果我已经安装了 python 2 7 则 conda create n python34 python 3 4 anaco
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • Pytest:如何使用从夹具返回的列表来参数化测试?

    我想使用由固定装置动态创建的列表来参数化测试 如下所示 pytest fixture def my list returning fixture depends on other fixtures return a dynamically
  • 如何在“python setup.py test”中运行 py.test 和 linter

    我有一个项目setup py文件 我用pytest作为测试框架 我还在我的代码上运行各种 linter pep8 pylint pydocstyle pyflakes ETC 我用tox在多个 Python 版本中运行它们 并使用以下命令构
  • 无法安装时间模块

    我试过了pip install time and sudo H pip install time 但我不断收到错误 找不到满足要求时间的版本 从 版本 未找到时间匹配的发行版 我正在 PyCharm 中工作 但真正没有意义的是我可以在 Py
  • 远程控制或脚本打开 Office 从 Python 编辑 Word 文档

    我想 最好在 Windows 上 在特定文档上启动 Open Office 搜索固定字符串并将其替换为我的程序选择的另一个字符串 我该如何从外部 Python 程序中做到这一点 OLE 什么 原生 Python 脚本解决方案 The doc
  • 使用 Python 抓取维基百科数据

    我正在尝试从以下内容中检索 3 列 NFL 球队 球员姓名 大学球队 维基百科页面 http en wikipedia org wiki 2008 NFL draft 我是 python 新手 一直在尝试使用 beautifulsoup 来
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • Pandas,按最大返回值进行分组 AssertionError:

    熊猫有问题 我想听听你的意见 我有这个数据框 我需要在其中获取最大值 代码就在下面 df stack pd DataFrame 1 0 2016 0 NonResidential Hotel 98101 0 DOWNTOWN 47 6122
  • 如何在 Keras 中使用部分输入进行训练,其余部分用于损失函数

    我是 Keras 新手 正在尝试实现神经网络机器学习模型 输入张量看起来像 X1 X2 和输出 Y 注意 X1 和 X2 是相关的 在模型中 只有 X1 将用于训练 但 X1 和 X2 都将传递给损失函数 该损失函数是 X1 X2 y pr
  • 如何使用注释和聚合在 Django 的 ORM 中执行此 GROUP BY 查询

    我真的不知道如何翻译GROUP BY and HAVING到姜戈的QuerySet annotate and QuerySet aggregate 我正在尝试将这个 SQL 查询转换为 ORM 语言 SELECT EXTRACT year
  • 将具有不同大小的行的数据加载到 Numpy 数组中

    假设我有一个包含如下数据的文本文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 如何将它加载到 numpy 数组中 使其看起来像这样 1 2 3 4 5 0 6 7 8 0 0 0 9 1
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • django如何将字符串转换为模块?

    我试图了解 django 的另一个神奇之处 它可以将字符串转换为模块 In settings py INSTALLED APPS声明如下 INSTALLED APPS django contrib auth django contrib c
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • 向伪 shell (pty) 发出命令

    我尝试使用 subprocess popen os spawn 来运行进程 但似乎需要伪终端 import pty master slave pty openpty os write master ls l 应该发送 ls l 到从属终端
  • scrapy python 请求未定义

    我在这里找到了答案 code for site in sites Link site xpath a href extract CompleteLink urlparse urljoin response url Link yield Re
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq
  • 如何抑制 Pandas Future 警告?

    当我运行该程序时 Pandas 每次都会给出如下所示的 未来警告 D Python lib site packages pandas core frame py 3581 FutureWarning rename with inplace

随机推荐

  • KNN 原理及参数总结

    文章目录 前言 1 KNN 原理 2 KNN 优缺点 3 KNN 算法三要素 4 KNN 算法实现 5 sklearn实现KNN算法 前言 针对一个完整的机器学习框架目前还没有总结出来 所以目前只能总结每一个单独的算法 由于现在研究的重点是
  • 详解虚短、虚断以及在运算放大器中的应用

    详解虚短 虚断以及在运算放大器中的应用 一 运算放大器 运算放大器 后续简称运放 是一种集成电路 内部有很多三极管类晶体管的组合 外围接很少的电子元器件就能够实现放大信号的作用 并且信号干净 漂亮 1 1 开环 闭环 运算放大器电路 开环电
  • 2021年新版-编程基础训练32题-附提示和答案

    2021年新版 编程基础训练32题 附提示和答案 1 用级数法求圆周率 题目 圆周率十分重要 不仅仅是在数学理论上 即便在千年前的古代 工程上的需求 也迫切需要我们知道圆周率的尽量精确的数值 求圆周率 有很多种方法 级数法就是简便易行的方法
  • 牛客网Python篇入门编程习题

    目 录 一 输入输出 二 类型转换 三 字符类型 四 列表类型 五 运算符号 六 条件语句 七 循环语句 八 元组类型 九 字典类型 十 内置函数 十一 面向对象 十二 正则表达 本文题库非常适合刚刚接触Python编程的同学 有兴趣的同学
  • STlink V2 烧录器使用教学 【STM32篇】

    STlink V2 是一款支持STM32 STM8 烧录的常规工具 本帖主要讲解STM32 的烧录过程 STM32有2种烧录接口 分别为古老的Jtag接口和目前最常规的SWD接口 由于SWD只需要4条线就能烧录 目前STM32硬件工程师用S
  • Unity使用C#实现简单Scoket连接及服务端与客户端通讯

    简介 网络编程是个很有意思的事情 偶然翻出来很久之前刚开始看Socket的时候写的一个实例 贴出来吧 Unity中实现简单的Socket连接 c 中提供了丰富的API 直接上代码 服务端代码 Thread connectThread 当前服
  • idea 编码扫描插件_4款好用的IDEA插件

    刚开始安装使用的IDEA是没有灵魂的 所以我们要通过插件来给 它注入灵魂 Codota 这是一款代码提示工具 根据你敲击的代码进行提示 这样再敲一些长代码时会方便很多 安装方法 点击file gt settings 选择plugins 搜索
  • 悟空CRM9从零开始搭建详细步骤——肯定成功

    悟空CRM9从零开始搭建详细步骤 欢迎留言 欢迎各位一起加入开源 愿意共享分享学习经验 特别感谢打赏点赞的朋友 我们一起努力分享更多学习经验吧 可参考其他论坛 码云https gitee com wukongcrm 72crm java 悟
  • 用户态--fork函数创建进程

    我们一般使用Shell命令行来启动一个程序 其中首先是创建一个子进程 但是由于Shell命令行程序比较复杂 为了便于理解 我们简化了Shell命令行程序 用如下一小段代码来看怎样在用户态创建一个子进程 include
  • 网上经常看到的冒泡排序的动图如何制作

    今天博主想要和大家分享如何实现动态图 经常在其他博主的文章中可以看到各式各样的动图 搜索一下 网上冒泡排序的动图怎么制作出来 可以看到 很迷 全是告诉冒泡排序的原理 以及动图解析 并没有告知动图是如何制作的 结合博主目前正在学习的前端技术
  • Linux Ubuntu16.04 安装lmdb问题

    LMDB的全称是Lightning Memory Mapped Database 快如闪电的内存映射数据库 它的文件结构简单 包含一个数据文件和一个锁文件 LMDB文件可以同时由多个进程打开 具有极高的数据存取速度 访问简单 不需要运行单独
  • ubuntu下新建txt文档的快捷方式

    进入模板文件夹 Templates 右键打开终端 输入如下命令 sudo gedit txt文档 txt 点击右上角保存 退出 即可通过右键新建txt模板
  • Spring Cache缓存注解

    目录 Spring Cache缓存注解 Cacheable 键生成器 CachePut CacheEvict Caching CacheConfig Spring Cache缓存注解 本篇文章代码示例在Spring Cache简单实现上的代
  • 单片机蓝桥杯——DS1302

    1 原理 对 DS1302的操作就是对其内部寄存器的操作 DS1302内部共有12个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数据位为 BCD 码形式 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器 及
  • FAT32文件系统学习(1) —— BPB的理解

    FAT 32 文件系统学习 1 本文的目标 本文将通过实际读取一个FAT32格式的U盘来简单了解和学习FAT32文件系统的格式 虽然目前windwos操作系统的主流文件系统格式是NTFS 但是FAT32由于其兼容性原因 还是有一定的学习价值
  • 实验一:linux中Ubuntu安装及shell命令

    实验一 Ubuntu安装及基本shell命令 1 实验目的 1 熟悉虚拟机Ubuntu的安装过程 2 熟悉shell常用命令 3 习惯自己解决Linux环境中的各种问题 4 熟悉Linux系统的特点 包含但不仅限于文件系统 网络配置 终端窗
  • Spark广播变量与累加器

    在之前的文章中 我介绍了flink广播状态 从而了解了flink广播状态实际上就是将一个流广播到下游所有算子之中 在本文中我将介绍spark中类似的概念 为了方便理解 先放张spark应用程序架构图 1 普通spark变量 实际上 如果我们
  • 拍乐云远程视频银行解决方案,为金融数字化注入“新活力”

    中国银行业协会在今年发布的 中国银行业客服中心与远程银行发展报告 2020 中指出 随着数字化融入经济生活的方方面面 我国银行业正在快速迭代升级 用户对银行的数字化服务也提出了更高的要求 一是从被动接受现有服务转向主动要求个性化服务 二是从
  • c++学习之set/multiset容器

    一 set基本概念 简介 所有元素在插入时都会被自动排序 本质 set multiset属于关联式容器 底层结构是用二叉树实现的 set multiset区别 set不允许有重复的元素 multiset可以有重复的元素 二 set构造和赋值
  • 【python学习】-使用sklearn对数据进行线性回归,并绘制回归线

    使用sklearn对数据进行线性回归 并绘制回归线 基本思想 代码实现 在科研工作中 有时得到一组或者几组数据 为了研究数据之间是否存在线性关系 一般会想到拟合数据 看下数据的线性关系 严格地说 是使用线性模型研究两个或多个变量之间规律的一