




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训11交通大数据分析实训项目背景随着智能交通技术的不断发展,凭借各种交通数据采集系统,交通领域积累的数据规模膨大,飞机、列车、水陆路运输逐年累计的数据从过去TB级别达到目前PB级别,同时伴随近几年大数据分析、挖掘等技术迅速发展,对海量的交通数据进行挖掘分析是交通领域发展的重要方向,得到了各地政府和企业的高度重视。交通大数据的有效利用与人们的生活息息相关,不仅能够给人们的生活创造巨大的便利,也能为政府的规划、城市的发展提供坚实的数据支撑。交通运输部数据显示,目前全国有360余个城市投放了共享单车,在营车辆约1950万辆,注册用户数超过3亿。共享单车用户的骑行行为会留下大量的数据,如何分析和挖掘相关数据,为共享单车的治理和优化提供数据支持,具有极其重要的意义。本项目将对共享单车的骑行数据进行挖掘,探索用户骑行的规律与模式。实训任务骑行数据缺失值、异常值的检测与处理自定义特征,统计站点每半小时的进出流量骑行数据描述性统计分析站点骑行流量探索性分析利用Apriori算法对站点流量进行关联规则挖掘利用FPGrowth算法对站点流量进行关联规则挖掘数据准备本项目所分析的数据来自CitiBike,这是一家主要运营在美国纽约市的共享单车公司。CitiBike共享单车业务早在2013年5月就首次运营,推出当天就有1.6万名会员注册,可见大家对该项目的喜爱。经过多年的发展CitiBike先后推出了330个站点和5000辆自行车,主要分布在曼哈顿下城和布鲁克林西北区。本次分析的数据为CitiBike在2017年7月的骑行数据,该数据由公司自行公开,可从如下地址进行下载:/tripdata/201707-citibike-tripdata.csv.zip。数据准备此数据共有1735599条骑行记录,包括15个字段,具体含义及类型如下表所示。分析步骤知识储备关联规则挖掘概述关联规则挖掘:一种发现大量数据中事物(特征)之间有趣的关联的技术。典型应用是购物篮分析:找出顾客购买行为模式、发现交易数据库中不同商品(项)之间的联系。例如,通过关联规则挖掘可能会发现,购买牛奶的用户往往会同时购买面包,或是购买的尿布的用户往往会同时购买啤酒等。在此基础上,商家可以考虑进行定制化的推荐或者营销,辅助进行经营方针的制定,如商品捆绑销售设计、商品促销和商品货架分布等,从而提高利润。知识储备关联规则的基本概念1.项集:I={牛奶,面包,尿布,啤酒,鸡蛋,可乐}2.频数:一个项集X在数据库D中出现的次数为频数。
例如,X={牛奶,面包},则count(X)=3.3.支持度:在一个交易数据库D中,用支持度衡量一个项集X出现频率的大小,记为support(X)。support(X)=count(X)/|𝐷|×100%。|𝐷|为该数据库所包含交易数据条数。例如,X={牛奶,面包},则support(X)=60%.4.置信度:项集X发生的情况下,则项集Y发生的概率为关联规则的置信度,记为confidence(X→Y)。confidence(X→Y)=support(X→Y)/support(X)。例如,X={牛奶,面包},Y={啤酒},则confidence(X→Y)=1/3=33.3%。5.频繁项集:项集X的支持度如果大于用户给定的最小支持度阈值,则X被称为频繁项集。TIDItemsT1
牛奶,面包T2面包,尿布,啤酒,鸡蛋T3牛奶,尿布,啤酒,可乐T4面包,牛奶,尿布,啤酒T5面包,牛奶,尿布,可乐知识储备关联规则挖掘关联规则挖掘的主要任务:找出满足最小支持度和最小置信度的频繁项集。
例如,给定minsup=40%和minconf=60%,则{啤酒}→{尿布}为频繁项集,sup({啤酒,尿布})=60%,conf({啤酒,尿布})=100%。目前常见的关联规则算法AprioriFP-Growth知识储备Apriori算法逐层发现算法(Apriori)的主要思想是找出存在于事务数据集中的最大的频繁项集,再利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。知识储备使用Apriori算法实现餐饮菜品关联分析结合餐饮行业的实例讲解Apriori关联规则算法挖掘的实现过程。数据库中部分点餐数据如表所示。序列时间订单号菜品id菜品名称12014/8/2110118491健康麦香包22014/8/211018693香煎葱油饼32014/8/211018705翡翠蒸香茜饺42014/8/211028842菜心粒咸骨粥52014/8/211027794养颜红枣糕62014/8/211038842金丝燕麦包72014/8/211038693三丝炒河粉…………………………知识储备使用Apriori算法实现餐饮菜品关联分析首先将上表中的事务数据(一种特殊类型的记录数据)整理成关联规则模型所需的数据结构,从中抽取10个点餐订单作为事务数据集,设支持度为0.2(支持度计数为2),为方便起见将菜品{18491,8842,8693,7794,8705}分别简记为
,如表所示。订单号原菜品id转换后菜品id118491,8693,870528842,779438842,8693418491,8842,8693,7794518491,884268842,8693718491,8842818491,8842,8693,8705918491,8842,86931018491,8693,8705知识储备使用Apriori算法实现餐饮菜品关联分析算法过程如图所示。知识储备使用Apriori算法实现餐饮菜品关联分析(1)过程一:找最大k项频繁项集算法简单扫描所有的事务,事务中的每一项都是候选1项集的集合
的成员,计算每一项的支持度。如
对
中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得1项频繁项集
知识储备使用Apriori算法实现餐饮菜品关联分析扫面所有事务,
与
连接得候选2项集
,并计算每一项的支持度。如
接着是剪枝步,由于
的每个子集(即
)都是频繁项集,所以没有项集从
中剔除。对
中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得2项频繁项集
知识储备使用Apriori算法实现餐饮菜品关联分析扫描所有事务,
与
连接得候选3项集
,并计算每一项的支持度,如
接着是剪枝步,
与
连接的所有项集为
根据Apriori算法,频繁项集的所有非空子集也必须是频繁项集,因为
不包含在2项频繁项集
中,即不是频繁项集,应剔除,最后的
中的项集只有和知识储备使用Apriori算法实现餐饮菜品关联分析对
中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得3项频繁项集
;
与
连接得候选4项集
,剪枝后得到的项集为空集。因此最后得到最大3项频繁项集
和
。由以上过程可知
都是频繁项集,
是最大频繁项集。知识储备使用Apriori算法实现餐饮菜品关联分析(2)过程二:由频繁集产生关联规则尝试基于该例产生关联规则,在Python中实现上述Apriori算法的代码,
结果如右图所示。针对右图中第一条输出结果进行解释:客户同时点菜品e和a的概率是30%,点了菜品e,再点菜品a的概率是100%。知道了这些,就可以对顾客进行智能推荐,增加销量的同时满足客户需求。结果为:supportconfidencee---a0.31.000000e---c0.31.000000c---e---a0.31.000000a---e---c0.31.000000c---a0.50.714286a---c0.50.714286a---b0.50.714286c---b0.50.714286b---a0.50.625000b---c0.50.625000a---c---e0.30.600000b---c---a0.30.600000a---c---b0.30.600000a---b---c0.30.600000知识储备FP-GrowthFP-Growth算法不同于Apriori算法生成候选项集再检查是否频繁的“产生-测试”方法,而是使用一种称为频繁模式树(FP-Tree,FP代表频繁模式,FrequentPattern)的菜单紧凑数据结构组织数据,并直接从该结构中提取频繁项集。相比于Apriori对每个潜在的频繁项集都需要扫描数据集判定是否满足支持度,FP-Growth算法只需要遍历两次数据集,因此它在大数据集上的速度显著优于Apriori。知识储备FP-GrowthFP-Growth算法的基本步骤扫描数据,得到所有1项频繁一项集的计数。然后删除支持度低于阈值的项,将1项频繁项集放入项头表,并按照支持度降序排列。读入排序后的数据集,插入FP树,插入时将项集按照排序后的顺序,插入FP树中,排序靠前的节点是祖先节点,而靠后的是子孙节点。如果有共用的祖先,则对应的公用祖先节点计数加1。插入后,如果有新节点出现,则项头表对应的节点会通过节点链表连接新节点。直到所有的数据都插入到FP树后,FP树的建立完成。知识储备FP-GrowthFP-Growth算法的基本步骤从项头表的底部项依次向上找到项头表项对应的条件模式基。从条件模式基递归挖掘得到项头表项的频繁项集。如果不限制频繁项集的项数,则返回步骤3所有的频繁项集,否则只返回满足项数要求的频繁项集。知识储备FP-Growth2.FP-Growth算法原理FP-Growth算法主要包含3个部分:扫描数据集建立项头表、基于项头表建立FP-tree和基于FP-tree挖掘频繁项集。(1)建立项头表要建立FP-tree首先需要建立项头表,建立项头表需要先对数据集进行一次扫描,得到所有1项频繁一项集的计数,将低于设定的支持度阈值的项过滤掉后,将1项频繁集放入项头表并按照项集的支持度进行降序排序。之后对数据集进行第二次扫描,从原始数据中剔除1项非频繁项集,并按照项集的支持度降序排序。知识储备FP-Growth以一个含有10条数据的数据集为例,数据集中的数据如表所示。序号数据1A,B,C,E,F,H2A,C,G3E,I4A,C,D,E,G5A,D,E,L6E,J7A,B,C,E,F,P8A,C,D9A,C,E,G,M10A,C,E,G,K知识储备FP-Growth对数据集进行扫描,支持度阈值设为20%,由于H,I,L,J,K,P,M都仅出现一次,小于设定的20%的支持度阈值,因此将不进入项头表。将1项频繁项集按降序排序后构建的项头表如表所示。频繁项计数A8E8C7G4D3B2F2知识储备FP-Growth第二次扫描数据,将每条数据中的1项非频繁项集删去,并按照项集的支持度降序排列。如数据项“A,B,C,E,F,H”,其中“H“为1项非频繁项集,剔除后按项集的支持度降序排列后的数据项为“A,E,C,B,F”,得到排序后的数据集如表所示。序号数据1A,E,C,B,F2A,C,G3E4A,E,C,G,D5A,E,D6E7A,E,C,B,F8A,C,D9A,E,C,G10A,E,C,G知识储备FP-Growth(2)建立FP-tree构建项头表并对数据集排序后,就可以开始建立FP-tree。建立FP-tree时按顺序读入排序后的数据集,插入FP-tree中时按照排序的顺序插入,排序最为靠前的是父节点,之后的是子孙节点。如果出现共同的父节点,则对应父节点的计数增加1次。插入时如果有新节点加入树中,则将项头表中对应的节点通过节点链表链接接上新节点。直至所有的数据项都插入FP-tree后,FP-tree完成建立过程。知识储备FP-Growth以建立项头表的数据集为例,构建FP-tree的过程如图所示。知识储备FP-Growth最终得到的FP-tree如图所示。知识储备FP-Growth(3)挖掘频繁项集在构建FP-tree、项头表和节点链表后,需要从项头表的底部项依次向上挖掘频繁项集。这需要找到项头表中对应于FP-tree的每一项的条件模式基。条件模式基是以要挖掘的节点作为叶子节点所对应的FP子树。得到该FP子树后,将子树中每个节点的计数设置为叶子节点的计数,并删除计数低于最小支持度的节点。基于这个条件模式基就可以递归挖掘得到频繁项集了。知识储备FP-Growth以构建F节点的条件模式基为例,F节点在FP-tree中只有一个子节点,因此只有一条路径{A:8,E:6,C:5,B:2,F:2},得到F节点的FP子树如图所示。知识储备FP-Growth接着将所有的父节点的计数设置为子节点的计数,即FP子树变成{A:2,E:2,C:2,B:2,F:2}。通常条件模式基可以不写子节点,如图所示。通过F节点的条件模式基可以得到F的频繁2项集为{A:2,F:2}、{E:2,F:2}、{C:2,F:2}、{B:2,F:2}。将2项集递归合并得到频繁3项集为{A:2,C:2,F:2}、{A:2,E:2,F:2}等等。最终递归得到最大的频繁项集为频繁5项集{A:2,E:2,C:2,B:2,F:2}。第三方工具库项目中需要安装的第三方工具库如下:basemap:数据地图的可视化工具库geopy:地址编码工具库apyori:Apriori算法库pyfpgrowth:FP-Growth算法库第三方工具库安装basemap的步骤如下:在命令提示行输入condainstallbasemap,如果安装失败,可采用如下1-4步完成。1、下载.whl文件:(1)pyproj-3.0.1-cp36-cp36m-win_amd64.whl(2)basemap-1.2.2-cp36-cp36m-win_amd64.whl注,这两个文件均可在/~gohlke/pythonlibs/找到,需要特别注意的是版本号一定要对应(比如多少位机器,什么版本的python)2、将下载好的.whl文件放在某个目录下,如python的安装目录Scripts;第三方工具库3、打开AnacondaPrompt,进入.whl文件所在的目录下,输入pipinstallXXX安装:4、测试是否安装成功:frommpl_toolkits.basemapimportBasemapimportmatplotlib.pyplotasplt第三方工具库安装geopy
、apyori和pyfpgrowth的步骤如下:
geopy:在命令提示行输入pipinstallgeopyapyori:在命令提示行输入pipinstallapyori
pyfpgrowth:在命令提示行输入pipinstallpyfpgrowth
项目分析报告骑行数据探索性分析租赁点数量自行车数量租赁次数租赁时长平均站点距离633个10422辆5.37次/天17.53分钟5393米表1骑行基本信息工作日频率最高的三个骑行始末站(432,3263),(2006,2006),(281,281)周末频率最高的三个骑行始末站(3182,3182),(3182,3254),(3254,3182)流入量最高的三个站WestSt&ChambersSt,PershingSquareNorth,12Ave&W40St流出量最高的三个站PershingSquare,NorthWestSt&ChambersSt,12Ave&W40St流量最高的站Pershi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路开挖合同范本
- 买衣服购销合同范本
- 养殖配件小窗采购合同范本
- 京津冀外包合同范本
- 农民承包树苗合同范本
- 企业定制酒合同范本
- 出售农机全套纸合同范本
- 半日制合同范本
- 单位门卫聘用合同范本
- 北京正规购车合同范本
- 2025年环卫工作计划
- 2024年07月山东省泰山财产保险股份有限公司2024年夏季校园招考29名工作人员笔试历年参考题库附带答案详解
- 品质巡检培训课件
- 医疗器械生产企业并购合同
- 2025版新能源汽车充电站建设合同含政府补贴及税收优惠条款
- 初验整改报告格式范文
- 2025年北京国资公司招聘笔试参考题库含答案解析
- 2023青岛版数学三年级下册全册教案
- 建设工程总承包EPC建设工程项目管理方案1
- T-CSUS 69-2024 智慧水务技术标准
- (2024)竹产业生产建设项目可行性研究报告(一)
评论
0/150
提交评论