Python数据分析-共享单车租赁预测(支持向量机分析预测)

一、研究背景

共享单车作为一种绿色、便捷的出行方式,近年来在全球范围内迅速发展。共享单车不仅减少了城市交通拥堵和污染,还为居民提供了健康的出行选择。随着城市化进程的加快和环保意识的增强,共享单车已成为许多城市居民日常通勤和休闲娱乐的重要工具。共享单车的推广不仅有助于缓解交通压力、减少碳排放,还可以促进健康生活方式,提升城市生活质量。

二、研究意义

共享单车的推广不仅有助于缓解交通压力、减少碳排放,还可以促进健康生活方式,提升城市生活质量。因此,准确预测共享单车的租赁需求,对于合理调度单车资源、提升用户体验具有重要意义。。。。。

三、实证分析

首先导入数据分析所需要的基础的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, r2_score

接下来读取数据集并且展示前五行

数据和代码

报告代码数据

file_path = 'data.csv'
data = pd.read_csv(file_path)

该数据集共有10886条记录和12个特征列。特征包括日期时间(datetime)、季节(season)、是否节假日(holiday)、是否工作日(workingday)、天气情况(weather)、温度(temp)、体感温度(atemp)、湿度(humidity)、风速(windspeed)、非注册用户的租赁次数(casual)、注册用户的租赁次数(registered)以及总租赁次数(count)。

接下来查看数据类型

从上面可以看见,除了日期时间列为对象类型外,其他特征均为数值型数据。数据集的内存使用量约为1020.7 KB。

接下来处理 datetime 特征,将其划分为年月日小时分割开来,为了后续建模使用

接下来填充并且查看缺失值

 

从缺失值可视化图查看发现不存在缺失值。接下来进行特征可视化:

首先可视化气温的直方图:

plt.figure(figsize=(10, 6))
data['temp'].hist(bins=50, color='skyblue')
plt.xlabel('Temperature')
plt.ylabel('Frequency')
plt.title('Histogram of Temperature')
plt.grid(True)
plt.show()

温度数据呈现一个接近正态分布的形态,两端较低,中间较高,形成一个钟形曲线。温度数据大致集中在0°C到40°C之间,这符合我们对自然环境温度的预期。...

接下来查看湿度的箱线图

plt.figure(figsize=(10, 6))
sns.boxplot(y=data['humidity'], color='lightgreen')
plt.title('Boxplot of Humidity')
plt.grid(True)
plt.show()

 接下来注册与租赁次数的散点图

 

plt.figure(figsize=(10, 6))
plt.scatter(data['registered'], data['count'], alpha=0.5, color='coral')
plt.xlabel('registered')
plt.ylabel('Count')
plt.title('Scatter Plot of registered vs. Count')
plt.grid(True)
plt.show()

通过这个散点图发现, 图中的点大部分分布在从左下角到右上角的对角线上,表明这两个变量之间存在强烈的正相关关系。这意味着当一个变量的值增加时,另一个变量的值也倾向于增加。 

接下来查看随时间变化的租赁次数的折线图

 

从图中可以看出,这是一个时间序列图,表示租赁次数随时间的变化趋势。图中显示出明显的周期性波动,每个周期的峰值和谷值反复出现。这种周期性波动可能对应于每日或每周的周期性变化。 

接下来绘制相关矩阵热图

plt.figure(figsize=(12, 10))
correlation_matrix = data.corr()
sns.heatmap(correlation_matrix, annot=True, cmap=plt.cm.coolwarm)
plt.show()

热图中颜色从蓝色(负相关)到红色(正相关),颜色越深表示相关性越强。registered 和 count:相关系数为0.97,表示注册用户的租赁次数与总租赁次数之间存在非常强的正相关关系。....

接下来进行支持向量机的模型建立,首先分割数据集,然后标准化数据,后面对模型进行评价,评价指标为:拟合优度、MSE、RMSE

# 创建支持向量机回归模型
svr_model = SVR()
svr_model.fit(X_train_scaled, y_train)

# 预测
y_train_pred = svr_model.predict(X_train_scaled)
y_test_pred = svr_model.predict(X_test_scaled)
# 计算拟合优度、MSE、RMSE
train_r2 = r2_score(y_train, y_train_pred)
test_r2 = r2_score(y_test, y_test_pred)
train_mse = mean_squared_error(y_train, y_train_pred)
test_mse = mean_squared_error(y_test, y_test_pred)
train_rmse = np.sqrt(train_mse)
test_rmse = np.sqrt(test_mse)

 

 

结果可视化一下

从图中可以看出,你对支持向量机(SVM)模型进行了评价,并使用柱状图展示了训练集和测试集上的R²、MSE和RMSE指标。R² (R-squared)训练集 R²:大约为0.85。测试集 R²:大约为0.86。这意味着模型能够解释大部分的目标变量的方差,具有较高的预测准确性。。。

可视化实际值与预测值

# 可视化实际值与预测值
plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.scatter(y_train, y_train_pred, alpha=0.5)
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.title('Train Data')

plt.subplot(1, 2, 2)
plt.scatter(y_test, y_test_pred, alpha=0.5, color='red')
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.title('Test Data')

plt.tight_layout()
plt.show()

训练数据的散点图来看,模型能很好地拟合训练数据,大多数数据点集中在理想的对角线附近。从测试数据的散点图来看,模型在测试数据上的表现也较好,大多数数据点同样集中在对角线附近,表明模型具有良好的泛化能力。 

四、结论

通过对共享单车租赁数据的分析和支持向量机模型的构建,我们得出以下结论:

1.温度对共享单车的租赁需求具有显著影响。在温暖的天气条件下,人们更倾向于使用共享单车,这可能是因为舒适的骑行体验。湿度:湿度也影响租赁需求,高湿度可能使骑行体验不佳,从而降低租赁次数。

2.租赁需求存在明显的时间模式。例如,在工作日的上下班高峰期和周末的休闲时段,租赁次数会显著增。。。

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大火的AIGC是什么?能用到工作中哪些地方?

前言 一.AIGC是什么? AIGC(即Artificial Intelligence Generated Content),中文译为人工智能生成内容。简单来说,就是以前本来需要人类用思考和创造力才能完成的工作,现在可以利用人工智能技术来替代我们…

LLM意图识别器实践

利用 Ollama 和 LangChain 强化条件判断语句的智能提示分类 ❝ 本文译自Supercharging If-Statements With Prompt Classification Using Ollama and LangChain一文,以Lumos工具为例,讲解了博主在工程实践中,如何基于LangChain框架和本地LLM优…

011、MongoDB副本集数据同步机制深度解析

目录 MongoDB副本集数据同步机制深度解析 1. 副本集架构概述 1.1 基本组成 1.2 节点角色 2. 数据同步过程详解 2.1 初始同步 2.2 持续复制 2.3 Oplog详解 3. 数据一致性与可用性 3.1 写关注(Write Concern) 3.2 读偏好(Read Preference) 3.3 因果一致性会话 4. 高…

SuperMap iDesktop

SuperMap iDesktop 介绍 SuperMap iDesktop是一款由超图公司推出的企业级插件式桌面GIS软件,它通过SuperMap iObjects .NET、桌面核心库和.NET Framework 4.0构建,集成了地图制作、空间分析、数据编辑、三维分析等多种功能于一体,为用户提供…

驾校预约小程序系统的设计

管理员账户功能包括:系统首页,个人中心,学员管理,教练管理,驾校信息管理,驾校车辆管理,教练预约管理,考试信息管理 微信端账号功能包括:系统首页,驾校信息&am…

虚拟化 之八 详解构造带有 jailhouse 的 openEuler 发行版(ARM 飞腾派)

概述 本文将探索学习通过移植适配 yocto-meta-openeuler 这个 Layer 进而使用 oebuild 直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。并且通过移植一个独立的 jailhouse 的 Recipe 文件进而不依赖于 openEuler 官方的 MCS 这个框架(该框架目前本身也…

期末考试后,老师如何私发成绩?

期末考试的钟声一响,学生们如释重负,而老师们的工作却才刚刚开始。成绩的整理、再到成绩单发放,每一步都格外繁重。传统的成绩单发放方式,需要老师一个个私信给学生家长,耗时耗力,而且容易出错。在忙碌的期…

数字信号处理实验一(离散信号及离散系统的MATLAB编程实现)

实验要求: 离散信号及离散系统的MATLAB编程实现(2学时) 要求: 编写一程序,输出一定长度(点数),具有一定幅度、(角)频率和初始相位的实(或复&…

第四节:如何使用注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好,我是网创有方,上一节学习了如何理解Spring的两个特性IOC和AOP,这一节来基于上节的内容进行一个简单实践。这节要实现的效果是通过IOC容器获取到Bean,并且将Bean的属性显示打印出来。 第一步:创建pojo实体类stu…

FreeSWITCH 1.10.10 简单图形化界面24-呼入呼出编码

FreeSWITCH 1.10.10 简单图形化界面24-呼入呼出编码 FreeSWITCH GUI界面预览00、安装FreeSWITCH GUI先看使用手册1、语音接听还是视频接听2、排查 FreeSWITCH GUI界面预览 http://myfs.f3322.net:8020/ 用户名:admin,密码:admin FreeSWITCH…

讨论stl链表

讨论链表 list迭代器失效list的模拟实现创建结点类链表迭代器完成实现代码 list与vector 链表是一个序列容器,在任意位置都可以用常数时间插入或者删除,并且可以在两个方向进行迭代。 list迭代器失效 迭代器失效指迭代器所指向的结点无效,即该…

数据结构7---图

一、定义 对于图的定义,我们需要明确几个注意的地方:一线性表中我们把数据元素叫元素,树中叫结点,在途中数据元素我们则称之为顶点(Vertex)。 对于图的定义,我们需要明确几个注意的地方: 线性表中我们把数据元素叫元素&#xf…

通过systemctl启停tomcat

目录 目的.service配置文件的结构介绍实验步骤1. 安装java2. 二进制安装tomcat3. 编写/usr/systemd/system/tomcat.service文件4. 测试启动关闭 目的 通过二进制安装的tomcat,只能通过tomcat文件目录下的.sh脚本进行启停。 而我们一般使用的服务,是通过…

kubuadm 方式部署 k8s 集群

准备三台机器 主机名IP地址CPU/内存角色K8S版本Docker版本k8s231192.168.99.2312C4Gmaster1.23.1720.10.24k8s232192.168.99.2322C4Gwoker1.23.1720.10.24k8s233192.168.99.2332C4Gwoker1.23.1720.10.24 需要在K8S集群各节点上面安装docker,如未安装则参考 …

探究互联网领域知识,解密数字化时代神秘面纱

随着信息时代的不断发展,互联网的发展呈现出爆炸式的增长,以至于引起广泛的关注和深入的探究。互联网作为一个庞大的网络体系,涵盖着无穷无尽的信息和知识,其背后的科技和应用已经改变了人们的生活,产生了翻天覆地的变…

使用java代码实现GUI画面的简易项目操作

要使用Java创建一个图形用户界面(GUI),我们可以使用Swing库,它是Java提供的一个标准GUI工具包。以下是一个简单的Java Swing程序示例,它创建了一个窗口(JFrame),并在其中添加了一个标…

Ubuntu系统,实现FastDDS的源码编译

目录 一、Ubuntu系统介绍二、FastDDS是什么三、FastDDS的源码编译四、FastDDS的简单测试 一、Ubuntu系统介绍 Ubuntu是一个基于Linux的开源操作系统,由Canonical公司开发和维护。它以其易用性、稳定性和安全性而受到广泛赞誉。Ubuntu系统提供了一个图形化的桌面环境…

深入解析链表:解锁数据结构核心奥秘

一. 链表的定义 链表是一种线性数据结构,由一系列节点组成。每个节点包含两个部分: 数据域(Data):存储节点的数据。指针域(Pointer):存储指向下一个节点的地址。 链表的第一个节点…

微信小程序开发_准备工作

1 注册小程序 注册地址 https://mp.weixin.qq.com/wxopen/waregister?actionstep1&sourcempregister&token&langzh_CN 2 完善小程序信息 进入微信公众平台https://mp.weixin.qq.com/,登录账号 登录后,在首页完善小程序信息和小程序类目 完成后在左侧找到开发…

权威认可 | Smartbi连续5年入选“Gartner增强数据分析代表厂商”

近日,全球权威技术研究与咨询公司Gartner最新发布《2024 年中国数据、分析和人工智能技术成熟度曲线》,Smartbi以其卓越的增强数据分析及自助分析能力,再次入选代表厂商,这也是Smartbi连续5年入选增强数据分析及自助分析代表厂商&…