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

第L2周:机器学习|线性回归模型 LinearRegression:1. 简单线性回归模型

  • 本文为🔗365天深度学习训练营 中的学习记录博客
  • 原作者:K同学啊

任务:
●1. 通过本文学习LinearRegression简单线形回归模型。
●2. 模仿本文代码,通过鸢尾花花瓣长度预测花瓣宽度。

一、概念

  1. 什么是回归

回归的目的是为了预测,比如在通过鸢尾花花瓣长度预测花瓣宽度。

回归之所以能预测,是因为它通过大量的花瓣长度与宽度数据,“弄懂了”花瓣长度与宽度之间的线性关系,在这个基础之上就可以通过花瓣长度预测花瓣宽度了。

  1. 什么是线性

线性就是关系可以用线性方程来表示,通过一个或多个变量来表示另外一个变量。

通俗的说符合“越…,越…”这种说法的可能就是线性关系,比如

●“房子”越大,“租金”就越高。
●“汉堡”买的越多,花的“钱”就越多。
●杯子里的“水”越多,“重量”就越大。

但是也并非所有“越…,越…”都是线性的,比如“弹簧的弹力与位移的关系”。
在这里插入图片描述

  1. 什么是线性回归

通过两个或多个变量之间的线性关系来预测结果。

通过鸢尾花的花瓣长度与宽度的线性关系来预测花瓣宽度,通过杯子里水的体积就可以知道(预测)水的重量。

二、代码实现

我的环境:
●语言环境:Python3.9
●编译器:Jupyter Lab

这里我们采用“学习时长-成绩”数据集,采用LinearRegression简单线形回归模型,通过学习时长去预测学生成绩。

第1步:数据预处理

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltdataset = pd.read_csv('./L2/studentscores.csv')
X = dataset.iloc[ : , :1].values
Y = dataset.iloc[ : ,1].valuesfrom sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=1/4, random_state=0)
dataset

代码输出:

HoursScores
02.521
15.147
23.227
38.575
43.530
51.520
69.288
75.560
88.381
92.725
107.785
115.962
124.541
133.342
141.117
158.995
162.530
171.924
186.167
197.469
202.730
214.854
223.835
236.976
247.886
259.193
269.293
279.593

train_test_split()函数详解:

train_test_split():将数据集划分为测试集与训练集。

●X:所要划分的整体数据的特征集;
●Y:所要划分的整体数据的结果;
●test_size:测试集数据量在整体数据量中的占比(可以理解为X_test与X的比值);
●random_state:
○①若不填或者填0,每次生成的数据都是随机,可能不一样。
○②若为整数,每次生成的数据都相同。

第2步:简单线性回归模型

sklearn.linear_model包实现了广义线性模型,包括线性回归、Ridge回归、Bayesian回归等。LinearRegression是其中较为简单的线性回归模型。

from sklearn.linear_model import LinearRegressionregressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)

第3步:预测结果

Y_pred = regressor.predict(X_test)
Y_pred

代码输出:

array([33.40062313, 39.26803909, 12.86466728, 20.68788856, 16.77627792,59.80399493, 78.38414546])

第4步:可视化

  1. 训练集可视化
plt.scatter(X_train, Y_train, color='red')
plt.plot(X_train, regressor.predict(X_train), color='blue')plt.show()

代码输出:
在这里插入图片描述

  1. 测试集预测结果可视化
plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test), color='blue')
plt.show()

代码输出:

在这里插入图片描述

三、鸢尾花数据集导入

这里的任务需要使用到的数据集,你可以这样导入:

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"  
names = ['花萼-length', '花萼-width', '花瓣-length', '花瓣-width', 'class'] dataset = pd.read_csv(url, names=names)
dataset

代码输出:

花萼-length花萼-width花瓣-length花瓣-widthclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
..................
1456.73.05.22.3Iris-virginica
1466.32.55.01.9Iris-virginica
1476.53.05.22.0Iris-virginica
1486.23.45.42.3Iris-virginica
1495.93.05.11.8Iris-virginica

150 rows × 5 columns

相关文章:

第L2周:机器学习|线性回归模型 LinearRegression:1. 简单线性回归模型

本文为🔗365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 通过本文学习LinearRegression简单线形回归模型。 ●2. 模仿本文代码,通过鸢尾花花瓣长度预测花瓣宽度。 一、概念 什么是回归 回归的目的是为了预测&…...

1.5 测试用例

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 测试用例介绍2 测试用例编写3 案例分析 前言 测试用例的设计和编制是软件活动中最重要的工作。本文详细讲解了测试用例的基本概念以及如何编写测试用例。 本篇文章参考黑马程序…...

P1101 单词方阵

1. 题目链接P1101 单词方阵 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <bits/stdc.h> using namespace std; #define endl \n #define int long long int int xx[] {1,1,1,0,0,-1,-1,-1}; int yy[] {1,0,-1,1,-1,1,0,-1}; int vis[110][110]; char a[11…...

通过 OBD Demo 体验 OceanBase 4.3 社区版

本文作者&#xff1a;马顺华 引言 OceanBase 4.3 是一个专为实时分析 AP 业务设计的重大更新版本。它基于LSM-Tree架构&#xff0c;引入了列存引擎&#xff0c;实现了行存与列存数据存储的无缝整合。这一版本不仅显著提升了AP场景的查询性能&#xff0c;同时也确保了TP业务场景…...

浅拷贝和深拷贝(Java 与 JavaScript)

一、Java 浅拷贝和深拷贝 在Java中&#xff0c;浅拷贝和深拷贝的主要区别在于对对象的引用和内容的复制方式。 浅拷贝 Java 的类型有基本数据类型和引用类型&#xff0c;基本数据类型是可以由 CPU 直接操作的类型&#xff0c;无论是深拷贝还是浅拷贝&#xff0c;都是会复制出…...

力扣每日一题 2306.公司命名

做题过程中使用到的java语法&#xff1a; 1.从一个字符串中取出一部分字符串&#xff1a; String str "Hello, World!"; String part str.substring(7); // 从索引7开始到字符串末尾 System.out.println(part); // 输出: World! class Solution { public lo…...

HTML-DOM模型

1.DOM模型 window对象下的document对象就是DOM模型。 DOM描绘了一个层次化的节点树&#xff0c;每一个节点就是一个html标签&#xff0c;而且每一个节点也是一个DOM对象。 2.操作DOM 2.1.获取DOM对象常用方法 获取DOM对象的常用方法有如下几种&#xff1a; getElementById(…...

vue项目报错: At least one is required in a single file component.的主要原因及解决办法

本篇文章主要讲解 vue项目报错&#xff1a; At least one is required in a single file component.的主要原因及解决办法 作者&#xff1a;任聪聪 日期&#xff1a;2024年9月25日 报文信息&#xff1a; Compiled with problems: ERROR in ./src/xxxx.vue Module Error (from …...

03DSP学习-利用syscfg配置IO

上一篇博客介绍了syscfg&#xff0c;对syscfg有了初步的了解&#xff0c;但是在真正使用上它之前&#xff0c;还不能理解他是一个神器。 (在写博客的时候&#xff0c;我是在从头到尾重新完成这个步骤&#xff0c;希望对初学者有点帮助) 找到Board Component 打开syscfg文件&…...

web - RequestResponse

##Request&Response 1&#xff0c;Request和Response的概述 Request是请求对象&#xff0c;Response是响应对象。这两个对象在我们使用Servlet的时候有看到&#xff1a; 此时&#xff0c;我们就需要思考一个问题request和response这两个参数的作用是什么? request:获取请…...

个人文章汇总

文章模块文章汇总心得&资料 真正优秀的人&#xff0c;更懂得尊重别人 如何用沟通解决80%的工作问题 一个IT青年北漂四年的感悟 史上最污技术解读 操作系统相关 操作系统基础 操作系统&#xff1a;从工厂的角度来理解进程线程操作系统&#xff1a;详述对进程和线程的认识操作…...

Java | Leetcode Java题解之第436题寻找右区间

题目&#xff1a; 题解&#xff1a; class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;int[][] startIntervals new int[n][2];int[][] endIntervals new int[n][2];for (int i 0; i < n; i) {startIntervals[i][0] inter…...

大模型智能体在金融公告理解领域的应用 | OPENAIGC开发者大赛高校组AI创新之星奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…...

链表入门(LeetCode题目)

来源&#xff1a;左程云算法 链表的题目我们经常是有思路但是实现起来总有些小问题&#xff0c;所以是准备笔试应多加练习的一类题 206. 反转链表 这道题我们可以新开链表来存&#xff0c;但是如果面试中有这道题&#xff0c;面试官让你优化又该如何呢&#xff1f;所以我们采…...

kibana开启访问登录认证

编辑es配置文件&#xff0c;添加以下内容开启es认证 vim /etc/elasticsearch/elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enable…...

Java 14Java 15新特性概述

一、Java 14 发布于2020年3月17日。Java 14主要新特性如下&#xff1a; JEP 305&#xff1a;Pattern Matching for instanceof (Preview)instanceof 的模式匹配&#xff08;预览&#xff09; JEP 358&#xff1a;Helpful NullPointerExceptions 有用的 NullPointerExceptions…...

流量特征随机ua修改

作为一个蓝队吗喽&#xff0c;总是能看见因为ua头特征而直接被拦截的ip,当然了还有些是通过X-Forwarded-For被拦截的(X-Forwarded-For:fofa.info&#xff0c;不拦你才怪)&#xff0c; 主要是通过python的mitmproxy和fake_useragent两个模块进行实现&#xff0c;代码量极低 fr…...

CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3)

【题目】 CSP-S 2024 提高级 第一轮&#xff08;初赛&#xff09; 阅读程序&#xff08;3&#xff09; 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 const int maxn 1000000 5; 7 const int P1 998…...

如何在 Rust 中通过 Rumqttc 实现 MQTT 通信

Rust 简介 Rust 是一门系统级编程语言&#xff0c;以其卓越的性能、并发能力以及内存安全特性著称。Rust 由 Mozilla 推出&#xff0c;目标是在现代软件开发中提供一种安全高效的编程语言。其设计旨在提供安全、并发和高效的编程体验&#xff0c;同时保持开发效率和代码质量不…...

广东高校建设AIGC实验室时需要注意哪几个关键点?

随着人工智能技术的飞速发展&#xff0c;特别是生成式人工智能&#xff08;AIGC&#xff09;在各行各业中的广泛应用&#xff0c;它已经成为推动新一轮科技革命和产业变革的关键力量。教育部等相关部门近年来也高度重视人工智能领域的人才培养工作&#xff0c;强调要加快推动高…...

如何在Windows上快速安装ViGEmBus虚拟手柄驱动:终极指南

如何在Windows上快速安装ViGEmBus虚拟手柄驱动&#xff1a;终极指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows电脑上畅玩所有游戏&#…...

免费高效获取通达信金融数据:MOOTDX量化投资接口终极指南

免费高效获取通达信金融数据&#xff1a;MOOTDX量化投资接口终极指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 想要快速获取A股市场数据却苦于高昂的API费用&#xff1f;MOOTDX是你的完美解…...

HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁

HS2-HF Patch&#xff1a;为《Honey Select 2》注入新生命的魔法补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是不是曾经打开《Honey Select 2》时&am…...

保姆级教程:用Python+NumPy复现经典Laplacian曲面编辑算法(附源码)

从理论到代码&#xff1a;Python实现Laplacian曲面编辑的完整指南 在三维图形处理领域&#xff0c;Laplacian曲面编辑技术因其出色的细节保持能力而备受推崇。这项技术允许开发者对三维模型进行直观的变形操作&#xff0c;同时保持模型表面的几何细节不被破坏。本文将带您从零开…...

告别时间混乱:一份超全的Hive日期函数使用手册与常见错误排查

告别时间混乱&#xff1a;一份超全的Hive日期函数使用手册与常见错误排查 在数据开发领域&#xff0c;时间数据处理一直是高频且易错的环节。无论是日志分析、用户行为追踪还是财务报表生成&#xff0c;准确的时间计算都是确保数据质量的基础。Hive作为大数据生态中广泛使用的数…...

基于CircuitPython与NeoPixel打造可编程LED亚克力灯牌:从硬件选型到代码实现

1. 项目概述&#xff1a;打造你的专属可编程光之铭牌在创客和电子爱好者的世界里&#xff0c;总有一些项目能完美地融合软件编程的灵活性与硬件制作的实体成就感。今天要分享的&#xff0c;就是这样一个让我爱不释手的小玩意儿&#xff1a;一个基于CircuitPython和NeoPixel的可…...

如何在Windows 11上让经典游戏重获新生:DDrawCompat兼容性解决方案详解

如何在Windows 11上让经典游戏重获新生&#xff1a;DDrawCompat兼容性解决方案详解 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_m…...

从肌电信号到Arduino控制:MyoWare传感器实战指南

1. 项目概述&#xff1a;当肌肉“说话”&#xff0c;我们如何“倾听”&#xff1f;如果你玩过一些体感游戏&#xff0c;或者看过科幻电影里用意念控制机械臂的场景&#xff0c;心里大概会闪过一个念头&#xff1a;这玩意儿到底是怎么做到的&#xff1f;其实&#xff0c;很多酷炫…...

GitHub自动化运维:构建模块化Operator集提升开发效率

1. 项目概述&#xff1a;一个为GitHub开发者量身定制的“操作集”如果你是一个重度GitHub用户&#xff0c;无论是维护个人项目、参与开源贡献&#xff0c;还是管理团队仓库&#xff0c;大概率都经历过这样的场景&#xff1a;每天要重复执行一堆琐碎但必要的操作。比如&#xff…...

C语言结构体:从‘学生信息管理‘到‘链表实现‘的保姆级跃迁指南(含typedef避坑)

C语言结构体&#xff1a;从学生信息管理到链表实现的实战进阶 在C语言的世界里&#xff0c;结构体就像是一个神奇的收纳盒&#xff0c;它能够将不同类型的数据打包成一个整体。想象一下&#xff0c;当你需要管理学生信息时&#xff0c;不再需要为姓名、学号、成绩等分别定义变量…...