机器学习入门——线性回归
线性回归
- 什么是线性回归?
- 回归分析:
- 线性回归:
- 回归问题求解
- 单因子线性回归
- 简单实例
- 评估模型表现
- 可视化模型展示
- 多因子线性回归
什么是线性回归?
回归分析:
根据数据,确定两种或两种以上变量间相互依赖的定量关系
线性回归:
回归分析中,变量与因变量存在线性关系
回归问题求解
注解:为了找合适的a和b,问题被替换成了寻找预测值和实际值之间的距离最小化。
损失函数:
注解:为什么要除以2m,是为了我们后面方便求解,因为我们要进行求导。这里除以2m后对最后的ab求解没有影响。
梯度下降法:
单因子线性回归
简单实例
简单说就是为了求y=ax+b中的a和b
假设我们有一份数据如下:
我们先看一下这些数据的分布:
from matplotlib import pyplot as plt
# 输入数据
x = [1,2,3,4,5,6,7,8,9,10]
y = [7,9,11,13,15,17,19,21,23,25]# 生成一个画布,设置坐标轴的比例
plt.figure(figsize=(5,5))# 创建散点图
plt.scatter(x,y)# 显示图形
plt.show()
要对上述数据使用线性回归算法进行拟合,需要用到scikit-learn库。
scikit-learn是一个适用于python语言的、专门针对于机器学习应用的算法库。
使用sklearn.linear_model库中的线性回归算法进行拟合的示例代码:
from sklearn.linear_model import LinearRegression
import numpy as np# 输入数据
x = [1,2,3,4,5,6,7,8,9,10]
y = [7, 9, 11, 13, 15, 17, 19, 21, 23, 25]# 把x从一维转为二维
x = np.array(x)
x = x.reshape(-1,1)# 建立线性回归模型
model = LinearRegression()# 训练模型
model.fit(x, y)# 获得y=ax+b中的a和b
a=model.coef_
b=model.intercept_
print(a)
print(b)# 预测
x_new = [[11], [12], [13], [14], [15]]
y_pred = model.predict(x_new)# 输出预测结果
print(y_pred)
注解:
在这个例子中,输入数据 x 和输出数据 y 分别被定义为两个列表。
然后,需要把x从一维转为二维,让x 中的每个元素是一个列表,包含一个自变量的值。 这是为了满足 LinearRegression() 函数的输入要求。否则会报错。
我们首先使用 LinearRegression() 函数初始化一个线性回归模型对象 model。
然后,我们使用模型对象的 fit() 方法训练模型,输入参数为 x 和 y。
然后,model.coef_
获取系数,model.intercept_
获取截距
最后,我们使用模型对象的 predict() 方法预测 x_new 中对应的因变量值 y_pred。
最后,我们输出预测结果。
评估模型表现
在上述代码的基础上添加如下代码:
from sklearn.metrics import mean_squared_error, r2_score# 计算预测值与真实值之间的MSE
mse = mean_squared_error(y, model.predict(x))# 计算决定系数R2
r2 = r2_score(y, model.predict(x))# 输出MSE和R2
print("MSE:", mse)
print("R2:", r2)
注解:
我们使用 mean_squared_error 函数计算预测值与真实值之间的均方误差(MSE)。
我们使用 r2_score 函数计算模型的决定系数(R2)。
最后,我们输出计算得到的MSE和R2。
MSE越小越好,R2分数越接近1越好
可视化模型展示
在上述代码的基础上添加如下代码:
import matplotlib.pyplot as plt# 绘制数据散点图
plt.scatter(x, y, color='black')# 绘制拟合直线
plt.plot(x, model.predict(x), color='blue', linewidth=3)# 添加图例
plt.legend(['Linear Regression Model', 'Data'])# 添加坐标轴标签
plt.xlabel('X')
plt.ylabel('Y')# 添加标题
plt.title('Linear Regression Model')# 显示图形
plt.show()
注解:
我们使用 scatter 函数绘制数据散点图,其中 x 和 y 分别是自变量和因变量。
我们使用 plot 函数绘制线性回归模型的拟合直线,其中 x 和 model.predict(x) 分别表示自变量和对应的因变量预测值。
我们使用 legend 函数添加图例,其中 [‘Linear Regression Model’, ‘Data’] 分别表示拟合直线和数据散点图的标签。
我们使用 xlabel 和 ylabel 函数添加坐标轴标签。
我们使用 title 函数添加标题。
最后,我们使用 show 函数显示图形。
多因子线性回归
相关文章:
机器学习入门——线性回归
线性回归什么是线性回归?回归分析:线性回归:回归问题求解单因子线性回归简单实例评估模型表现可视化模型展示多因子线性回归什么是线性回归? 回归分析: 根据数据,确定两种或两种以上变量间相互依赖的定量…...
Microsoft Word 远程代码执行漏洞(CVE-2023-21716)
本文转载于: https://mp.weixin.qq.com/s?__bizMzI5NTUzNzY3Ng&mid2247485476&idx1&sneee5c7fd1c4855be6441b8933b10051e&chksmec535547db24dc516d013d3d76097e985aaad7f10f82f15b4e355a97af75fd333acdab6232af&mpshare1&scene23&srci…...
Android kotlin 系列讲解(数据篇)SharedPreferences存储及测试
文章目录 一、什么是SharedPreferences1、将数据存储到SharedPreferences中2、从SharedPreferences中读取数据二、登录使用SharedPreferences一、什么是SharedPreferences SharedPreferences是使用键值对的方式来存储数据的。也就是说,当保存一条数据的时候,需要给这条数据提…...
一文了解Web Worker
一、概述 众所周知,JavaScript最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM带来的渲染冲突问题,所以JavaScript执行器被设计成单线程。但是随着前端技术的发展,JavaScript要处理的工作也越来越复杂,当我们…...
接口文档包含哪些内容?怎么才能写好接口文档?十年测试老司机来告诉你
目录 接口文档结构 参数说明 示例 错误码说明 语言基调通俗易懂 及时更新与维护 总结 那么我们该如何写好一份优秀的接口文档呢? 接口文档结构 首先我们要知道文档结构是什么样子的。接口文档应该有清晰明确的结构,以便开发人员能快速定位自己需…...
java面试八股文之------Java并发夺命23问
java面试八股文之------Java并发夺命23问👨🎓1.java中线程的真正实现方式👨🎓2.java中线程的真正状态👨🎓3.如何正确停止线程👨🎓4.java中sleep和wait的区别👨…...
CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)
🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...
【MySQL】002 -- 日志系统:一条SQL更新语句是如何执行的
此文章为《MySQL 实战 45 讲》的学习笔记,其课程链接可参见:MySQL实战45讲_MySQL_数据库-极客时间 目录 一、日志系统 1、重做日志:redo log(引擎层) 2、归档日记:binlog(Server层) …...
C++---背包模型---数字组合(每日一道算法2023.3.14)
注意事项: 本题是"动态规划—01背包"的扩展题,优化思路不多赘述,dp思路会稍有不同,下面详细讲解。 题目: 给定 N个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,…...
并查集(不相交集)详解
目录 一.并查集 1.什么是并查集 2.并查集的基本操作 3.并查集的应用 4.力扣上的题目 二.三大操作 1.初始化 2.查找 3.合并 三.省份数量 1.题目描述 2.问题分析 3.代码实现 四.冗余连接 1.题目描述 2.问题分析 3.代码实现 一.并查集 1.什么是并查集 并查集&…...
10个最频繁用于解释机器学习模型的 Python 库
文章目录什么是XAI?可解释性实践的步骤技术交流1、SHAP2、LIME3、Eli54、Shapash5、Anchors6、BreakDown7、Interpret-Text8、aix360 (AI Explainability 360)9、OmniXAI10、XAI (eXplainable AI)XAI的目标是为模型的行为和决定提供有意义的解释,本文整理…...
final关键字:我偏不让你继承
哈喽,小伙伴们大家好,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java所有final关键字。 之前呢,我们学习了继承,这大大提高了代码的灵活性和复用性。但是总…...
8大主流编程语言的适用领域,你可能选错了语言
很多人学编程经常是脑子一热然后就去网上一搜资源就开始学习了,但学到了后面发现目前所学的东西并不是自己最喜欢的,好像自己更喜欢另一个技术,感觉自己学错了,于是乎又去学习别的东西。 结果竹篮打水一场空,前面所付…...
关于Python库的问题
关于Python库的问题 问题1: ModuleNotFoundError: No module named ‘requests’ Python库 Pycharm使用Requests库时报错: No module named requests’解决方法 未安装requests库,使用"pip install requests"命令安装 依然提示P…...
好记性不如烂笔头(2)
概述:用来记录一些小技巧。 1.查看MyBatis执行的sql 类:org.apache.ibatis.mapping.MappedStatement方法:getBoundSql(Object parameterObject)在IDEA的Evaluate Expression查看sql:boundSql.getSql() 2.maven仓库地址为https&…...
Java for循环嵌套for循环,你需要懂的代码性能优化技巧
前言 本篇分析的技巧点其实是比较常见的,但是最近的几次的代码评审还是发现有不少兄弟没注意到。 所以还是想拿出来说下。 正文 是个什么场景呢? 就是 for循环 里面还有 for循环, 然后做一些数据匹配、处理 这种场景。 我们结合实例代码来…...
关于我拒绝了腾讯测试开发岗offer这件事
2022年刚开始有了向要跳槽的想法,之前的公司不能算大厂但在重庆也算是数一数二。开始跳槽的的时候我其实挺犹豫的 其实说是有跳槽的想法在2022年过年的时候就有了,因为每年公司3月会有涨薪的机会,所以想着看看那能不能涨(其实还是…...
从GPT到GPT-3:自然语言处理领域的prompt方法
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
Git代码提交规范
Git 代码规范Git 每次提交代码,都是需要写 Commit message(提交说明),否则就不允许提交。Commit message 的格式 (三部分):Heaher ----- 必填type ---必需scope --- 可选subject --- 必需Body ---- 可省略Footer ---- …...
【JavaScript速成之路】JavaScript内置对象--Math和Date对象
📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,Math对象1.1,常用属性方法1.1.1,获取x的…...
(自用POC)Fortinet-CVE-2022-40684
本文转载于:https://mp.weixin.qq.com/s?__bizMzIzNDU5Mzk2OQ&mid2247485332&idx1&sn85931aa474f1ae2c23a66bf6486eec63&chksme8f54c4adf82c55c44bc7b1ea919d44d377e35a18c74f83a15e6e20ec6c7bc65965dbc70130d&mpshare1&scene23&srcid…...
ConvNeXt V2实战:使用ConvNeXt V2实现图像分类任务(二)
文章目录训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法运行以及结果查看测试热力图可视化展示完…...
【人工智能与深度学习】基于正则化潜在可变能量的模型
【人工智能与深度学习】基于正则化潜在可变能量的模型 正则化潜变量能量基础模型稀疏编码FISTALISTA稀疏编码示例卷积稀疏编码自然图像上的卷积稀疏编码可变自动编码器正则化潜变量能量基础模型 具有潜在变量的模型能够生成预测分布 y ‾ \overline{y}...
【Leetcode——排序的循环链表】
😊😊😊 文章目录一、力扣题之排序循环链表二、解题思路1. 使用双指针法2、找出最大节点,最大节点的下一个节点是最小节点,由此展开讨论总结一、力扣题之排序循环链表 题目如下:航班直达!&#…...
ChatGPT研究分享:机器第一次开始理解人类世界目录
0、为什么会对ChatGPT感兴趣一开始,我对ChatGPT是没什么关注的,无非就是有更大的数据集,完成了更大规模的计算,所以能够回答更多的问题。但后来了解到几个案例,开始觉得这个事情并不简单。我先分别列举出来,…...
【linux】Linux基本指令(上)
前言: 在之前我们已经简单了介绍了一下【Linux】,包括它的概念,由来啊等进行了讲解,接下来我们就将正式的踏入对其的学习!!! 本文目录👉操作系统的概念1.命令的语法1.1命令介绍1.2选…...
程序员必会技能—— 使用日志
目录 1、为什么要使用日志 2、自定义日志打印 2.1、在程序中得到日志对象 2.2、使用日志对象打印日志 2.3、日志格式 3、日志的级别 3.1、日志级别的分类 3.2、日志级别的设置 4、持久化日志 5、更简单的日志输出——lombok 5.1、如何在已经创建好的SpringBoot项目中添加…...
生成项目的包依赖文件requirements.txt
目录生成项目的包依赖文件requirements.txtrequirements.txt文件怎么来?使用pipreqs第三方库requirements.txt文件使用requirements.txt生成项目的包依赖文件requirements.txt 在安装部署代码时或者使用别人的项目时,会需要安装项目的依赖包,…...
安卓渐变的背景框实现
安卓渐变的背景框实现1.背景实现方法1.利用PorterDuffXfermode进行图层的混合,这是最推荐的方法,也是最有效的。2.利用canvas裁剪实现,这个方法有个缺陷,就是圆角会出现毛边,也就是锯齿。3.利用layer绘制边框1.背景 万…...
【拳打蓝桥杯】算法前置课——时间复杂度与空间复杂度
文章目录前言为什么需要复杂度分析?大O复杂度表示法时间复杂度分析几种常见时间复杂度实例分析空间复杂度分析内容小结最后说一句🐱🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和大家一…...
青岛网站设计哪家好/seoul是什么意思中文
state 1.类中方法this的指向 constructor和render里的this指向类组件的实例对象在类组件内部定义的普通函数,作为onClick的回调,不是通过实例调用的,是直接调用,并且类组件内部默认开启了局部严格模式,所以this指向u…...
做外贸如何分析客户网站/如何优化网站排名
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、r美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案…...
鼎维重庆网站建设专家/营销策划咨询
文章目录开启、关闭服务操作——>数据库创建数据库选择数据库查看数据库删除数据库数据类型数字类型字符串类型选择原则日期和时间类型操作——>表创建表查找表修改表删除表操作——>记录添加记录查找记录修改记录删除记录详细查找selection_listtable_listwherelike …...
网站首页图/重庆做seo外包的
如题:sidecar 必须和 代理服务部署在一台服务器上,这个是sidecar的要求...
技术支持 东莞网站建设电脑回收/天津百度seo排名优化
内容安全策略(CSP)是一个增加的安全层,可帮助检测和缓解某些类型的攻击,包括跨站点脚本(XSS)和数据注入攻击。这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容(深入CSP) …...
网站做qq链接代码/什么是网络整合营销
之前有一篇写过pycharm远程访问服务器,这里还写vscode的一个类似功能理由有两个。vscode相比于pycharm占用的内存要小。vscode远程访问不要钱!!!而pycharm必须要付费的专业版才拥有这个功能。但是vscode也有不好的地方,…...