数学建模-基于集成学习的共享单车异常检测的研究

基于集成学习的共享单车异常检测的研究

整体求解过程概述(摘要)

  近年来,共享单车的快速发展在方便了人们出行的同时,也对城市交通产生了一定的负面影响,其主要原因为单车资源配置的不合理。本文通过建立单车租赁数量的预测模型和异常检测模型,以期能够帮助城市合理配置资源。
  首先,进行探索性数据分析。主要步骤为数据预处理、描述性统计和回归分析。其中,分位数回归能够表现出输入变量与输出变量各分位点间的线性关系。
  其次,建立单车预测模型。分别运用集成学习中的 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< 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名片即可

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

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

相关文章

智能优化算法应用:基于秃鹰算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于秃鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于秃鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.秃鹰算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

HTML5+CSS3+Vue小实例:饮料瓶造型文字旋转特效

实例:饮料瓶造型文字旋转特效 技术栈:HTML+CSS+Vue 效果: 源码: 【HTML】【JS】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" …

根据关键词写作文章的软件,根据标题写作文章的工具

在当今信息化时代&#xff0c;人工智能技术的飞速发展&#xff0c;智能AI写作工具逐渐成为文案创作者的得力助手。这些工具不仅能够根据标题迅速生成文章&#xff0c;而且在提高创作效率的同时&#xff0c;也为我们节省了大量时间和精力。 人工智能的基本原理&#xff1a;人工智…

LeetCode(48)插入区间【区间】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 插入区间 1.题目 给你一个 无重叠的&#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&am…

一天一个设计模式---生成器模式

概念 生成器模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;用于构建复杂对象。它允许您逐步构造一个对象&#xff0c;将构建过程与最终对象的表示分离开来。这种模式通常用于创建复杂的对象&#xff0c;这些对象可能有多个部分组成&#xff0c…

MySQL系统函数

select version();查看mysql版本。 select user();可以查看数据库用户名。 select database();可以查看数据库名。 select system_use();可以查看系统用户名。 show variables like %basedir%;可以展示数据库读取路径。 show variables like %sets_dir%;可以看一下安…

Linux 下命令行启动与关闭WebLogic的相关服务

WebLogic 的服务器类型 WebLogic提供了三种类型的服务器&#xff1a; 管理服务器节点服务器托管服务器 示例和关系如下图&#xff1a; 对应三类服务器&#xff0c; 就有三种启动和关闭的方式。本篇介绍使用命令行脚本的方式启动和关闭这三种类型的服务器。 关于WebLogic 的…

优维产品最佳实践第17期:善用控制台

「 背 景 」 遇到页面报错时&#xff0c;是不是感到困扰&#xff0c;不知如何解决&#xff1f; 页面响应缓慢时&#xff0c;是否感到迷茫&#xff0c;不清楚从何入手排查&#xff1f; 面对主机高负载时&#xff0c;是不是觉得确认异常根因很有挑战&#xff1f; 本期最佳实践…

pycharm中requirements

pycharm中requirements 生成requirements.txt文件安装requirements.txt中的包 快速记录所有的包信息&#xff0c;方法在新环境中安装 生成requirements.txt文件 pip freeze > requirements.txt安装requirements.txt中的包 pip install -r requirements.txt

主动学习入门Week1

主动学习&#xff08;Active Learning&#xff09; 介绍实例详解模型分类基本查询策略经典方法应用方向引用 介绍 主动学习是一种通过主动选择最有价值的样本进行标注的机器学习或人工智能方法。其目的是使用尽可能少的、高质量的样本标注使模型达到尽可能好的性能。也就是说&…

华为云购买参考:到底选购ECS还是CCE?

这两天给开发组的小朋友讲cce,有人碰到不知道在ECS和CCE之间怎么选择,在这里说说我的建议,希望能对大家有所帮助。 当然,太多的理由会引起大家混乱,还不如不说,说起来也啰嗦,还是按照我们的经验来主要说说原则吧。 在这里我建议按照下面几个原则选择: 1、你的项目结…

Ant Design Pro初始化报错

今天按照官网步骤初始化项目&#xff0c;第一次报错 fatal: unable to access https://github.com/ant-design/ant-design-pro/: SSL certificate problem: unable to get local issuer certificate 致命&#xff1a;无法访问https://github.com/ant-design/ant-design-pro/&…

19:kotlin 类和对象 -- 密封类和接口(Sealed classes and interfaces )

使用sealed关键字声明一个密封类或者接口 sealed interface Errorsealed class IOError(): Error密封类和接口能够很好的控制继承&#xff0c;在密封类和接口定义的模块和包外无法被继承 在编译期我们就已知了所有的密封类和接口的实现类。在某种意义上&#xff0c;密封类类似…

qt 安装

目录 前言 一、QT在线安装包下载 1.官方网站&#xff1a; 2.镜像&#xff08;清华大学&#xff09; 二、QT安装 1.更换安装源 2.安装界面 3.组件选择&#xff08;重点&#xff09; 参考 Qt2023新版保姆级 安装教程 前言 本文主要介绍2023新版QT安装过程&#xff0c;…

12.4_黑马MybatisPlus笔记(下)

目录 11 12 thinking&#xff1a;关于Mybatis Plus中BaseMapper和IService&#xff1f; 13 ​编辑 thinking&#xff1a;CollUtil.isNotEmpty? 14 thinking&#xff1a;Collection、Collections、Collector、Collectors&#xff1f; thinking&#xff1a;groupBy&#…

回顾Django的第五天

1.多表操作 1.1基于对象的跨表查询 正向查询&#xff08;按字段&#xff1a;publish&#xff09; # 查询主键为1的书籍的出版社所在的城市 book_objBook.objects.filter(pk1).first() # book_obj.publish 是主键为1的书籍对象关联的出版社对象 print(book_obj.publish.city)…

浅谈对SSH的理解

ssh框架指的是Spring Struts2 and Hibernate,Spring可以理解为绿草丛&#xff0c;负责通过配置文件或注解管理组件之间的依赖关系&#xff0c;并提供了高效的事务管理功能&#xff0c;其出色的ioc和aop面向切面编程可以织入增强&#xff0c;并且具有很多spring注解可以减轻配置…

【Virtual Box】显示界面后无反应

本文记录本人在使用Virtual Box中遇到的问题 1.Virtual Box启动后无反应点击菜单栏是可用的&#xff0c;但界面里的无法操作 【解决方法】&#xff1a;以管理员身份启动virtual Box

数据结构 第5 6 章作业 图 哈希表 西安石油大学

第6章 图 1&#xff0e;选择题 &#xff08;1&#xff09;在一个图中&#xff0c;所有顶点的度数之和等于图的边数的&#xff08; &#xff09;倍。 A&#xff0e;1/2 B&#xff0e;1 C&#xff0e;2 D&#xff0e;4 答案&#xff1a…

算法通关村第十六关|白银|滑动窗口经典

1.最长子串 1.1 无重复字符的最长子串 原题&#xff1a;力扣3. 使用 HashMap &#xff0c;将字符和最后一次出现的索引存储起来。 public int lengthOfLongestSubstring(String s) {if (s.length() 0) {return 0;}HashMap<Character, Integer> map new HashMap<…