jupyter notebook练手项目:线性回归——学习时间与成绩的关系

线性回归——学习时间与学习成绩的关系

第1步:导入工具库

pandas——数据分析库,提供了数据结构(如DataFrame和Series)和数据操作方法,方便对数据集进行读取、清洗、转换等操作。

matplotlib——绘图库,pyplot提供了一系列简单易用的绘图函数,用于创建各种类型的图表,如折线图、散点图、柱状图等。

%matplotlib inline——使matplotlib绘制的图像嵌入在 Jupyter Notebook 的单元格里,这样在运行代码后可以直接在 Notebook 中看到绘制的图形,而不是弹出一个新的图形窗口。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

第2步:导入并查看数据集

dataset = pd.read_csv(‘./studentscores.csv’)——使用pandas的read_csv函数读取当前目录下名为studentscores.csv的 CSV 文件,并将数据存储在dataset变量中。

dataset是一个DataFrame类型的对象,它类似于一个二维表格,每行代表一条数据记录,每列代表一个特征或变量。

Series 是简单的一列数据,而 DataFrame 是由多个 Series 组成的更复杂的表格结构

dataset=pd.read_csv('./studentscores.csv')
type(dataset)
pandas.core.frame.DataFrame
dataset.head()
HoursScores
02.521
15.147
23.227
38.575
43.530
head()——默认显示前5行数据,用于快速查看数据的大致结构和内容
shape——数据集的形状,(25行,2列)
columns——列名集合
info()——详细信息
describe()——各种描述性统计分析
dataset.shape
(25, 2)
dataset.columns
Index(['Hours', 'Scores'], dtype='object')
dataset.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 25 entries, 0 to 24
Data columns (total 2 columns):#   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  0   Hours   25 non-null     float641   Scores  25 non-null     int64  
dtypes: float64(1), int64(1)
memory usage: 528.0 bytes
dataset.describe()
HoursScores
count25.00000025.000000
mean5.01200051.480000
std2.52509425.286887
min1.10000017.000000
25%2.70000030.000000
50%4.80000047.000000
75%7.40000075.000000
max9.20000095.000000

第3步:提取特征和标签

定义了两个列表feature_columns和label_column,分别用于指定数据集的特征列和标签列。
这里将Hours列作为特征列(x),将Scores列作为标签列(y),即要预测的目标变量。

feature_columns=['Hours']
label_column=['Scores']

features = dataset[feature_columns]:从dataset中提取feature_columns指定的列数据,存储在features变量中,features也是一个DataFrame对象。

label = dataset[label_column]:从dataset中提取label_column指定的列数据,存储在label变量中,label是一个DataFrame对象,但只有一列数据。

features=dataset[feature_columns]
label=dataset[label_column]
type(features)
pandas.core.frame.DataFrame
features.head()
Hours
02.5
15.1
23.2
38.5
43.5

在机器学习模型中,通常需要使用 numpy 数组格式的数据来进行训练和预测。sklearn 等机器学习库中的大多数函数和模型都期望输入数据为 numpy 数组形式。通过使用 .values 属性,我们可以将 pandas 数据结构中的数据提取为 numpy 数组,以便与这些机器学习模型兼容。

X=features.values
Y=label.values

第4步:划分数据集

四分之一作为训练集

从sklearn.model_selection模块中导入train_test_split函数,该函数用于将数据集拆分为训练集和测试集。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42):X:特征矩阵,y:目标向量,test_size:测试集的比例,random_state:随机数种子

关于随机数种子:

作用?设置此参数可以保证每次运行代码时,数据的划分结果是相同的,有助于代码的可重复性。
可重复性?指我们可以在相同的训练集和测试集上测试不同的模型或模型参数,公平地比较它们的效果,而不用担心是因为数据集划分不同导致的结果差异。

参数取值?该参数的取值没有特定的限制,通常可以是任意整数;但是不建议用默认值NULL,这样每次调用 train_test_split 函数会使用不同的随机数种子,导致每次数据集的划分结果不同。

from 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)

第5步:建立模型

训练模型

从sklearn.linear_model模块中导入LinearRegression线性回归模型类。

regressor = LinearRegression():创建一个LinearRegression类的实例regressor,即初始化一个线性回归模型。

regressor = regressor.fit(X_train, Y_train):调用regressor的fit方法,使用训练集数据X_train和Y_train对线性回归模型进行训练,拟合出模型的参数(如斜率和截距)。

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

测试模型

调用predict方法:使用训练好的线性回归模型regressor对测试集特征X_test进行预测,得到预测结果Y_pred。

Y_pred=regressor.predict(X_test)

可视化

#散点图:红色点表示原始测试集的点,蓝色表示预测点
plt.scatter(X_test,Y_test,color='red')
plt.scatter(X_test,Y_pred,color='blue',marker='*')
#线图:蓝色线表示训练出来的回归线
plt.plot(X_test,Y_pred,color='blue')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2084.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3使用vue-count-to数字滚动模块报错解决方案

小伙伴们是不是遇到了vue3项目使用vue-count-to出现报错的问题 报错如下&#xff1a; TypeError: Cannot read properties of undefined (reading _c) 这个错误信息具体是说没读取到_c的属性 具体不清楚是什么原因&#xff0c;排查还得去看源码&#xff0c;所以我们来解决&a…

「实战应用」如何为DHTMLX JavaScript 甘特图添加进度线

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 今天&#xff0c;您将学习如何使用进度线补充JavaScript 甘特图&#xff0c;以便于监控项目进度。 DHTMLX Gantt 最新试用版下载 …

系统架构设计师-第1章-计算机系统知识要点

【本章学习建议】 根据考试大纲&#xff0c;本章主要考查系统架构设计师单选题&#xff0c;预计考1分左右。第二版教材2.2节增加了本块内容&#xff0c;但较为简略&#xff0c;需要课程补充&#xff0c;属于非重点内容。 1.1 计算机硬件组成 计算机的基本硬件系统由运算器、控…

【C】初阶数据结构3 -- 单链表

之前在顺序表那一篇文章中&#xff0c;提到顺序表具有的缺点&#xff0c;比如头插&#xff0c;头删时间复杂度为O(n)&#xff0c;realloc增容有消耗等。而在链表中&#xff0c;这些问题将得到解决。所以在这一篇文章里&#xff0c;我们将会讲解链表的定义与性质&#xff0c;以及…

网络网络层ICMP协议

网络网络层ICMP协议 1. ICMP 协议介绍 ICMP&#xff08;Internet Control Message Protocol&#xff09;是 TCP/IP 协议簇中的网络层控制报文协议。用于在 IP 主机、路由器之间传递控制消息&#xff0c;提供可能有关通信问题的反馈信息。 以及用于网络诊断或调试&#xff08;…

nvm 管理nodejs,安装pnpm后报错,出现:pnpm不是内部或外部命令,也不是可运行的程序或批处理文件。

系统环境&#xff1a;window11&#xff0c;exe安装版nvm出现的该问题&#xff0c;&#xff08;如果是解压缩配置版本&#xff0c;环境变量自己配置&#xff0c;可能就不会出现这个问题了&#xff09; 注意&#xff1a;安装nvm时&#xff0c;两个路径尽量放到一个盘上&#xff…

论文阅读:Searching for Fast Demosaicking Algorithms

今天介绍一篇有关去马赛克的工作&#xff0c;去马赛克是 ISP 流程里面非常重要的一个模块&#xff0c;可以说是将多姿多彩的大千世界进行色彩还原的重要一步。这篇工作探索的是如何从各种各样的去马赛克算法中&#xff0c;选择最佳的一种。 Abstract 本文提出了一种方法&…

活动预告 | CCF开源发展委员会开源供应链安全技术研讨会(2025第一期)——“大模型时代的开源供应链安全风控技术”...

点击蓝字 关注我们 CCF Opensource Development Committee CCF开源发展委员会开源供应链安全工作组&#xff08;以下简称CCF-ODC-OSS&#xff09;将于1月17日下午在北京黄大年茶思屋举行2025年第一期开源供应链安全技术研讨会&#xff0c;此次研讨会主题为“大模型时代的开源供…

centos 8 中安装Docker

注&#xff1a;本次样式安装使用的是centos8 操作系统。 1、镜像下载 具体的镜像下载地址各位可以去官网下载&#xff0c;选择适合你们的下载即可&#xff01; 1、CentOS官方下载地址&#xff1a;https://vault.centos.org/ 2、阿里云开源镜像站下载&#xff1a;centos安装包…

关于Profinet 从站转 EtherNet/IP 从站网关详细说明

一、产品概述 1.1 产品用途 本产品是 PN(Profinet) 和 EtherNet/IP 网关&#xff0c;使用数据映射方式工作。 本产品在 PN 侧作为 PN IO 从站&#xff0c;接 PN 主站设备&#xff0c;比如西门子 PLC 等&#xff1b;在EtherNet/IP 侧做为 EtherNet/IP 从站&…

【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统

文章目录 参考资料云盘资料软硬件环境手机解锁刷机驱动绑定账号和设备解锁手机 Mindows工具箱安装工具箱和修复下载下载安卓和woa资源包第三方Recovery 一键安装Windows准备工作创建分区安装系统 效果展示Windows和Android一键互换Win切换安卓安卓切换Win 删除分区 参考资料 解…

企业服务-团队协作相关平台极简介绍

前言 最近&#xff0c;为一家企业做咨询&#xff0c;该公司主要从事地产行业&#xff0c;老板李总招了几名研发人员&#xff0c;想着开发自己的行业APP&#xff0c;但是3年了&#xff0c;产品一直拿不出手&#xff0c;按李总的说法&#xff0c;产品还是很不成熟&#xff0c;但…

怎么防止SQL注入攻击

引言 SQL注入攻击是黑客对数据库进行攻击的常用手段之一&#xff0c;随着B/S模式应用开发的发展&#xff0c;使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐&#xff0c;相当大一部分程序员在编写代码的时候&#xff0c;没有对用户输入数据…

一文说清楚Linux gdb

以下是关于 GDB&#xff08;GNU Debugger&#xff09; 的详细介绍&#xff1a; 什么是 GDB&#xff1f; 定义 GDB&#xff08;GNU Debugger&#xff09;是 GNU 项目开发的一款功能强大的调试工具&#xff0c;用于调试 C、C、Fortran 等语言编写的程序。它允许开发者执行程序时…

api开发及运用小红书笔记详情api如何获取笔记详情信息

item_get_video-获得某书笔记详情 smallredbook.item_get_video 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,i…

蓝桥杯第二天学习笔记

二维码生成&#xff1a; import qrcode from PIL import Image, ImageDraw, ImageFont import osdef generate_custom_qr_code(data, qr_file_path, logo_file_pathNone, textNone):# 创建QRCode对象qr qrcode.QRCode(version1,error_correctionqrcode.constants.ERROR_CORRE…

Springboot和Es整合

说明&#xff1a;本文章主要是简单整合和简单增删改查。 1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

stack_queue的底层,模拟实现,deque和priority_queue详解

文章目录 适配器Stack的模拟实现Queue的模拟实现vector和list的对比dequedeque的框架deque的底层 priority_queuepriority_queue的使用priority_queue的底层仿函数的使用仿函数的作用priority_queue模拟实现 适配器 适配器是一种模式&#xff0c;这种模式将类的接口转化为用户希…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用-以ENSO预测为例讲解

1. 背景与目标 ENSO&#xff08;El Nio-Southern Oscillation&#xff09;是全球气候系统中最显著的年际变率现象之一&#xff0c;对全球气候、农业、渔业等有着深远的影响。准确预测ENSO事件的发生和发展对于减灾防灾具有重要意义。近年来&#xff0c;深度学习技术在气象领域…

网络安全概述

在早期的互联网&#xff08;也是一种计算机网络&#xff09;中数据都是明文传输的&#xff0c;例如直接使用http协议。但由于越来越多的商业和政府的数据也都在互联网传输&#xff0c;直接使用明文传输&#xff0c;相当于让数据在网络中裸奔&#xff0c;而且网络中攻击者可以直…