数学建模-基于集成学习的共享单车异常检测的研究
基于集成学习的共享单车异常检测的研究
整体求解过程概述(摘要)
近年来,共享单车的快速发展在方便了人们出行的同时,也对城市交通产生了一定的负面影响,其主要原因为单车资源配置的不合理。本文通过建立单车租赁数量的预测模型和异常检测模型,以期能够帮助城市合理配置资源。
首先,进行探索性数据分析。主要步骤为数据预处理、描述性统计和回归分析。其中,分位数回归能够表现出输入变量与输出变量各分位点间的线性关系。
其次,建立单车预测模型。分别运用集成学习中的 Bagging、Boosting 和模型融合算法 Stacking 进行建模。实验结果显示,Boosting 算法中的 CatBoost 模型对单车租赁数量的预测效果最好。
最后,建立异常检测模型。运用孤立森林算法检测单车租赁数量的异常值,并利用支持向量机分析各输入变量对租赁异常的影响程度。研究表明,租赁异常可能与城市意外事件的发生、节假日的到来、温度与风速以及湿度的突变和极端恶劣天气的产生有关。预测模型能够帮助城市合理规划共享单车的投放数量,而异常检测模型则有助于城市及时处理突发事件,希望本文的研究能够为城市资源合理配置提供参考。
问题分析
首先,本文对该共享单车数据集进行了探索性数据分析。探索性数据分析用于解释原始数据,并挖掘数据的潜在规律。第一步,进行数据预处理,即对数值特征的归一化处理和对类别特征的哑变量处理。该预处理方法有利于数据建模分析。第二步,进行描述性统计,本文绘制了小提琴图和饼状图,借以表现各特征变量的概率分布情况。第三步,进行回归分析,其中,相比于线性回归,分位数回归能够表现出解释变量与被解释变量各分位点之间的线性关系,其解释数据效果更好。
其次,本文对该数据集进行了集成学习研究。集成学习是指将若干个弱学习器通过一定的策略组合得到一个强学习器,其基本分类为 Bagging、Boosting 和Stacking。第一步,运用随机森林、XGBoost、LightBoost 和 CatBoost 四种模型分别对该数据集进行训练,并探究其特征变量重要性。随机森林是集成决策树的Bagging 算法,其学习结果由其决策树的投票产生。XGBoost、LightGBM 和CatBoost 均属于 Boosting 算法,其中,XGBoost 对损失函数进行改进,并利用正则化减少过拟合,提高了模型的泛化能力。LightGBM 支持并行化学习,在处理多维问题时其计算效率更高;CatBoost 在处理类别特征问题上进行了优化,其模型精度往往比 XGBoost 和 LightGBM 更高。第二步,运用 Stacking 方法将上述四种算法进行模型融合,以期得到一个泛化能力更好的模型。Stacking 是模型融合的学习框架,其核心思想是将不同模型的优点进行有机结合,从而提高模型的泛化能力。
最后,本文以上述模型的训练误差为样本对单车租赁数量进行异常检测研究。第一步,运用孤立森林模型检测样本中的异常点,以期通过误差异常来反映共享单车租赁数量异常。孤立森林是一种异常检测方法,可以精准识别分布稀疏的独立离群点。第二步,运用支持向量机对上述异常情况进行训练,支持向量机非常擅长分类及回归问题,以期通过其向量空间特征系数来反映各变量对单车租赁数量异常的影响程度。集成学习所建立的预测模型能够帮助城市合理规划共享单车的投放数量,而孤立森林和支持向量机所建立的异常检测模型则有助于城市及时处理突发事件。本文研究方法的流程图如下图 1 所示:

其中,探索性数据分用于解释数据,集成学习用于构造预测模型,孤立森林和支持向量机用于构造检测模型。
模型的建立与求解(部分)
对于该数据集中的数值型变量,即数值特征,本文对其进行数据归一化,即统一映射到[0, 1]区间上;数据无量纲化有利于提升机器学习模型的训练精度和收敛速度,其公式如下:

其中,𝑥代表原始数据,𝑥′代表归一化后的数据,𝑚𝑎𝑥代表原始数据中最大值,𝑚𝑖𝑛代表原始数据中最小值。数值型变量的代表符号如下表 1 所示:

对于该数据集中的分类型变量,即类别特征,本文采用哑变量的处理方式,将其统一变换为 0 或 1 变量。分类型变量的代表符号如下表 2 所示:

本文探索性数据分析和集成学习所用数据均为上述预处理数据。
描述性统计
探索性数据分析(Exploratory Data Analysis,EDA)用于解释原始数据,探索数据之间的潜在规律。EDA 在数据科学工作过程中,能够对多个环节产生影响,是不可或缺的重要步骤。本文采用描述性统计和分位数回归两种方法进行EDA。
小提琴图是箱线图与密度图的结合,可以同时反映出变量的概率密度及分布情况,其中,箱线图的信息在中间部分,密度图的信息在两侧部分。本文主要运用小提琴图对数值型变量进行了 EDA,其结果如下图 2 所示:

从图 2 中可以看出,单车租赁数量与时间和温度这两个变量主要集中分布在中间区域,各数据间的取值无明显差异;而湿度与风速这两个变量存在极值点,可初步判断这两个变量与单车租赁数量有较大相关性。
对于该数据集中的分类型变量,本文主要运用饼状图进行 EDA,其结果如下图 3 所示:

从季节变量饼状图中可以看出,春夏秋冬四季约各为总体的四分之一,说明该数据集的季节变量分布较为均匀;从天气变量饼状图中可以看出,晴天出现的次数最多,约为总体的 63%,而雨雪等极端天气出现的次数最少,仅为 3%;除此之外,工作日所占比重最大,约为总体的 69%,而节假日所占比重最少,仅 3%。

为了方便进行回归分析,本文对季节和天气两个类别特征进行编码化处理,其他数据仍为预处理数据,并进行了线性回归分析,其结果如下图 4 所示:

模型的建立与求解整体论文缩略图


全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
(代码和文档not free)
X - input data, t - number of trees, ψ - subsampling size
输出:a set of t iTrees
1:Initialize Forest
2:set height limit l = ceiling(log2ψ)
3:for i = 1 to t do
4: X’← sample(X, ψ)
5: Forest← Forest∪iTree(X’, 0, l)
6:end for
7:return Forest
输入:X’ – input data
输出:an iTree
1: if X’ cannot be divided then
2: return exNode{Size← | X’ |}
3: else
4: let Q be a list of attribute in X’
5: randomly select an attribute q∈Q
6: randomly select a split point p between the max and min values of attribute q in X’
7: Xl← filter(X’, q < p)
8: Xr← filter(X’, q ≥ p)
9: return inNode{Left← iTree(Xl),
10: Right← iTree(Xr),
11: SplitAtt← q,
12: SplitValue← p}
13: end if
输入:x – an instance, T – an iTree, hlim – height limit, e – current path length;
To be initialized to zero when first called
输出:path length of x
1: if T is an external node or e ≥ hlim then
2: return e + c(T, size) {c(.) is defined in Equation 1}
3: end if
4: α← T.splitAtt
5: if xα < T.splitValue then
6: return PathLength(x, T.Left, hlim, e +1)
7: else {xα ≥ T.splitValue}
8: return PathLength(x, T.Right, hlim, e +1)
9: end if
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:
数学建模-基于集成学习的共享单车异常检测的研究
基于集成学习的共享单车异常检测的研究 整体求解过程概述(摘要) 近年来,共享单车的快速发展在方便了人们出行的同时,也对城市交通产生了一定的负面影响,其主要原因为单车资源配置的不合理。本文通过建立单车租赁数量的预测模型和异常检测模型…...
C语言-内存分配
内存分配 1. 引入 int nums[10] {0}; //对int len 10; int nums[len] {0}; //错是因为系统的内存分配原则导致的2. 概述 在程序运行时,系统为了 更好的管理进程中的内存,所以有了 内存分配机制。 分配原则: 2.1 静态分配 静态分配原…...
算法工程师-机器学习面试题总结(1)
目录 1-1 损失函数是什么,如何定义合理的损失函数? 1-2 回归模型和分类模型常用损失函数有哪些?各有什么优缺点 1-3 什么是结构误差和经验误差?训练模型的时候如何判断已经达到最优? 1-4 模型的“泛化”能力是指&a…...
【蓝桥杯选拔赛真题73】Scratch烟花特效 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析
目录 scratch烟花特效 一、题目要求 编程实现 二、案例分析 1、角色分析...
Juniper EX系列交换机端口配置操作
配置物理端口参数 userhost#set interface ge-slot/pic/port decription description #配置端口描述 userhost#set interface ge-slot/pic/port mtu mtu-number #配置端口MTU userhost#set interface ge-slot/pic/port ether-options speed (10m | 100m | 1g) #配置端口速率…...
2.1 Linux C 编程
一、Hello World 1、在用户根目录下创建一个C_Program,并在这里面创建3.1文件夹来保存Hellow World程序; 2、安装最新版nvim ①sudo apt-get install ninja-build gettext cmake unzip curl ②sudo apt install lua5.1 ③git clone https://github.…...
服务器数据恢复—ocfs2文件系统被格式化为其他文件系统如何恢复数据?
服务器故障: 由于工作人员的误操作,将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统。 由于Ext4文件系统每隔几百兆就会写入文件系统的原始信息,原Ocfs2文件系统数据会遭受一定程度…...
海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布
近日,由TC260(全国信息安全标准化技术委员会)归口 ,主管部门为国家标准化管理委员会,深圳海云安网络安全技术有限公司(以下简称“海云安”)等多家相关企事业单位共同参与编制的GB/T 43435-2023《…...
如何调用 API | 学习笔记
开发者学堂课程【阿里云 API 网关使用教程:如何调用 API】学习笔记,与课程紧密联系,让用户快速学习知识。 课程地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 如何调用 API 调用 API 的三要素 要调用 API 需要三…...
关于云备份项目的HTTP协议字段理解
200状态码 给客户端返回该文件全部内容的响应 304状态码 206状态码 和If-Ranage请求头字段搭配使用,...
掉落的俄罗斯方块
欢迎来到程序小院 掉落的俄罗斯方块 玩法:上键 W↑变换、 左键 A← 左移、右键 D→ 右移、下键S ↓ 加速,两种模式, 可以一个大人玩,也可以两个人一起玩,小鸟经过会撞走方块,快去体验吧^^。开始游戏 html <div idc…...
医院不良事件报告系统源码带鱼骨图分析
医院不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件…...
数据库相关算法题 V3
订单最多的客户 在考虑多个最多订单客户的情况下可以采用dense_rank()函数,最多则由group by customer_number以及order count(*)得到 select customer_number from (select customer_number,dense_rank() over (order by count(*) desc) as rk from Orders group…...
第二证券:本周3只新股申购,大豆蛋白行业领军企业来了!
截至发稿,本周网上发行有2只新股宣布发行价。创业板新股丰茂股份发行价为31.9元,发行市盈率28.27倍,工作最近一个月平均动态市盈率25.76倍。沪主板新股索宝蛋白发行价为21.29元,发行市盈率26.74倍,工作最近一个月平均动…...
【go语言开发】loglus日志框架的使用
本文将简单介绍loglus框架的基本使用,并给出demo 文章目录 前言Loglus常见用法自定义日志级别使用字段钩子输出到多个位置使用钩子实现自定义日志处理demo 前言 Logrus 是一个用于 Go 语言的结构化日志框架,它提供了丰富的日志级别、钩子和格式化选项。…...
【Unity动画】Unity 动画播放的流程
本文以2D为案例,讲解Unity 播放动画的流程 准备和导入2D动画资源 外部导入序列帧生成的 Unity内部制作的 外部导入的3D动画 2.创建动画过程 打开时间轴Ctrl6 选中场景中的一个未来需要播放动画的物体 回到时间轴点击Create一个新动画片段 拖动2D动画资源放入…...
深度学习——第3章 Python程序设计语言(3.2 Python程序流程控制)
3.2 Python程序流程控制 目录 1.布尔数据类型及相关运算 2.顺序结构 3.选择(分支)结构 4.循环结构 无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架,例如PyTorc…...
EasyExcel生成多sheet页的excel
一、controller层 ApiOperation(value "明细查询导出") PostMapping(value "/SummaryDetailExport") public void summaryDetailExport(RequestBody SearchDTO dto, HttpServletResponse response) throws IOException {reportService.deptPackagingSum…...
家用小型洗衣机哪款性价比高?内衣洗衣机品牌推荐
近日,国内著名的电子商务平台公布了“内衣洗衣机产业趋势”的研究报告。该报告指出,由于消费者对生活质量的要求越来越高,内衣洗衣机的行业也有了长足的发展,特别是在今年以来,内衣洗衣机的销售额同比上涨了830%&#…...
为何Go爬虫依然远没有Python爬虫流行
目录 一、Go与Python的比较 1、语言生态 2、易用性 3、库支持 二、Go爬虫的优势 1、性能与并发性 2、跨平台性 3、内存占用 三、Go爬虫的潜力与未来发展 1、社区支持与库完善 2、跨平台移动应用开发 3、大数据处理与实时分析 四、代码示例 五、结论 在当今的互联…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
