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.mzph.cn/news/892704.shtml

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

相关文章

如何规模化实现完全自动驾驶?Mobileye提出解题“新”思路

在CES 2025上&#xff0c;Mobileye展示了端到端自动驾驶系统Mobileye Drive™&#xff0c;通过高度集成的传感器、算法和计算平台&#xff0c;可以实现自动驾驶功能的全覆盖。 Mobileye创始人兼首席执行官Amnon Shashua教授 期间&#xff0c;Mobileye创始人兼首席执行官Amnon …

Windows下安装和配置Go开发环境

文章目录 1. 介绍了SDK2. 下载 SDK工具包3. windows 下配置 Golang 环境变量 1. 介绍了SDK SDK 的全称(Software Development Kit 软件开发工具包)SDK是提供给开发人员使用的&#xff0c;其中包含了对应开发语言的工具包 2. 下载 SDK工具包 Go语言的官网为&#xff1a;https…

【JVM中的三色标记法是什么?】

JVM中的三色标记法是什么? 一、基本概念二、标记过程三、优势与问题四、漏标与多标的解决方案三色标记法(Tri-color Marking Algorithm)是Java虚拟机(JVM)中一种用于追踪对象存活状态的垃圾回收算法。 它基于William D. Hana和Mark S. McCulleghan在1976年提出的两色标记法…

【javascript】Web APIs-Dom获取属性操作

目录 Web APIs-Dom获取&属性操作 Web API 基本认知 变量声明 建议&#xff1a; const 优先&#xff0c;尽量使用const&#xff0c;原因是&#xff1a; 1.1 作用和分类 1.2 什么是DOM 1.3 DOM树 1.4 DOM对象&#xff08;重要&#xff09; 2. 获取DOM对象 2.1 根据C…

新版AndroidStudio通过系统快捷创建带BottomNavigationView的项目踩坑记录

选择上面这个玩意创建的项目 坑点1 &#xff1a;配置的写法和不一样了 镜像的写法&#xff1a; 新的settings.gradle.kts中配置镜像的代码&#xff1a; pluginManagement {repositories {mavenCentral()google {content {includeGroupByRegex("com\\.android.*")…

【0390】Postgres内核 启动 checkpointer process ( 1 )

文章目录 1. signal 间接启动1.1 signal callback 初始化1.2 处理 child process 各种退出状态1.3 start checkpointer process1. signal 间接启动 checkpointer process 的主要入口点是 CheckpointerMain(), 它是从 AuxiliaryProcessMain() 调用的,AuxiliaryProcessMain() …

《AI赋能鸿蒙Next,打造极致沉浸感游戏》

在游戏开发领域&#xff0c;鸿蒙Next系统与人工智能技术的结合为开发者们带来了前所未有的机遇&#xff0c;使打造更具沉浸感的游戏成为可能。以下将深入探讨如何利用人工智能在鸿蒙Next上开发出令人身临其境的游戏。 利用AI优化游戏角色智能行为 在传统游戏中&#xff0c;非…

SAP资产盘盈盘亏的过账处理、入账价值错误调整、资产减值准备

文章目录 一、SAP资产盘盈盘亏处理1、ABNAN盘盈 &#xff08;往年资产&#xff09; ABZON (当年资产&#xff09;2、ABAVN盘亏 二、资产价值入账错了&#xff08;价值多了或少了&#xff09;&#xff0c;怎么调账1、价值少了2、价值多了 三、资产减值准备1、启用重估2、指定间隔…

C# 迭代,递归,回调--13

目录 一.迭代 迭代器示例: 关键点: 优势: 二.递归 递归示例: 关键点: 优势: 注意: 三.回调 回调示例: 关键点: 优势: 应用场景: 4.三种模式的特点对比: 迭代: 递归: 回调: 一.迭代 在C#中迭代通常指重复执行一系列指令 在C#中,迭代器是一种特殊的结构,允许…

炸砖块游戏的最终图案

描述 小红正在玩一个“炸砖块”游戏,游戏的规则如下:初始有一个 n * m 的砖块矩阵。小红会炸 k 次,每次会向一个位置投炸弹,如果这个位置有一个砖块,则砖块消失,上方的砖块向下落。小红希望你画出最终砖块的图案。 输入描述 第一行输入三个正整数 n, m, k,代表矩阵的行…

【Python项目】图像信息隐藏技术的实现

【Python项目】图像信息隐藏技术的实现 技术简介&#xff1a;采用Python技术、MYSQL数据库等实现。 系统简介&#xff1a;系统主要的功能有登录模块、对个人信息的维护模块、图片信息的隐藏模块涉及图片的上传和信息的验证。 背景&#xff1a; 在当今时代&#xff0c;信息技术…

游戏市场成果及趋势

2024 年的游戏行业发展情况如何&#xff1f;这是一个既关系到开发商&#xff0c;又关系到玩家的问题&#xff0c;而市场分析师可以为我们揭晓答案。下面&#xff0c;就让我们来看看分析师给出的结论以及他们对未来趋势的预测。 玩家 自 2021 年起&#xff0c;全球平均游戏时间…

Cursor使用教程

一、安装 二、使用 1、操作对象 项目 文件 文件块 代码块 终端 2、chat 窗口 提问 ctrl回车 会针对本地代码进行提问 1、快捷键 ctrl i 打开对话&#xff0c;可以指定文本询问 ctrl k 在文本中询问 ctrl y 接受生成 ctr l n …

大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建二

本篇安装软件版本 mysql5.6 spark3.2.1-hadoop3.2 presto0.272 zeppelin0.11.2 kafka_2.13_3.7.2 mysql 安装步骤见-》 https://blog.csdn.net/dudadudadd/article/details/110874570 spark 安装步骤见-》https://blog.csdn.net/dudadudadd/article/details/109719624 安装…

【算法学习】——整数划分问题详解(动态规划)

&#x1f9ee;整数划分问题是一个较为常见的算法题&#xff0c;很多问题从整数划分这里出发&#xff0c;进行包装&#xff0c;形成新的题目&#xff0c;所以完全理解整数划分的解决思路对于之后的进一步学习算法是很有帮助的。 「整数划分」通常使用「动态规划」解决&#xff0…

深入理解计算机系统阅读笔记-第十二章

第12章 网络编程 12.1 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型的。根据这个模型&#xff0c;一个应用时由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源&#xff0c;并且通过操作这种资源来为它的客户端提供某种服务。例如&#xf…

MySQL | GROUP BY子句使用详解

关注&#xff1a;CodingTechWork 引言 在 MySQL 中&#xff0c;GROUP BY 子句用于将查询结果按照一个或多个列进行分组。每个分组会返回一行&#xff0c;通常与聚合函数&#xff08;如 COUNT(), SUM(), AVG() 等&#xff09;一起使用&#xff0c;用于汇总每个分组的数据。  …

Redis 实战篇 ——《黑马点评》(中)

《引言》 &#xff08;中&#xff09;篇将接着记录 Redis 实战篇 ——《黑马点评》&#xff08;上&#xff09;篇之后的学习内容与笔记&#xff0c;希望大家能够点赞、收藏支持一下 ᕦ(&#xff65;ㅂ&#xff65;)ᕤ&#xff0c;谢谢大家。 传送门&#xff08;上&#xff09;&…

【2024年华为OD机试】(A卷,100分)- 猜字谜(Java JS PythonC/C++)

一、问题描述 小王设计了一个简单的猜字谜游戏&#xff0c;游戏的谜面是一个错误的单词&#xff0c;比如 nesw&#xff0c;玩家需要猜出谜底库中正确的单词。猜中的要求如下&#xff1a; 对于某个谜面和谜底单词&#xff0c;满足下面任一条件都表示猜中&#xff1a; 变换顺序…

git提交大文件

如果有文件大小大于 100M&#xff0c;GitHub 是会被限制推送到仓库中的&#xff0c;大概率情况会显示下面的错误&#xff1a; remote: Resolving deltas: 100% (3601/3601), done.remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59brem…