全文链接:http://tecdat.cn/?p=28519
作者:Yiyi Hu
近年来,共享经济成为社会服务业内的一股重要力量。作为共享经济的一个代表性行业,共享单车疾速倒退,成为继地铁、公交之后的第三大公共出行形式。但与此同时,它也面临着市场需求不均衡、车辆乱停乱放、车辆检修调度等问题。本我的项目则着眼于如何不影响市民出行效率的同时,对共享单车进行正当的批量培修工作的问题,利用 CART 决策树、随机森林以及 Xgboost 算法对共享单车借用数量进行等级分类,试图通过模型探索其影响因素并剖析在何种条件下对共享单车进行批量培修为最优计划。
解决方案
工作 / 指标
通过机器学习分类模型探索共享单车借用数量的影响因素,并剖析在何种条件下对共享单车进行批量培修为最优计划。
数据源筹备
该数据集有三个数据起源,别离为交通局,天气数据,以及法定假期。
数据预处理及可视化
(一)工夫:首先从“timestamp”列中提取了“month”和“hour”两列,试图别离从整体、季度、月份、小时四个方面,对共享单车借用总数进行箱图剖析。
解决方案
工作 / 指标
通过机器学习分类模型探索共享单车借用数量的影响因素,并剖析在何种条件下对共享单车进行批量培修为最优计划。
数据预处理及可视化
(一)工夫:首先从“timestamp”列中提取了“month”和“hour”两列,试图别离从整体、季度、月份、小时四个方面,对共享单车借用总数进行箱图剖析。
(二)天气:察看数据特色发现,其中“weather_code”列各类别别离为:1 = 晴朗; 大抵清晰,但有一些值与雾霾 / 雾 / 雾斑 / 雾左近;2 = 散云 / 一些云;3 = 碎云 / 云层蓬松;4 = 多云;7 = 雨 / 小雨阵雨 / 小雨;10 = 雨与雷暴;26 = 降雪;94 = 冻雾。因而,本文对“weather_code”进行从新定义,将 1,2,3,4 类天气现象定义为宜骑车天气;7,10,26,94 类天气现象定义为不宜骑车天气。
(三)共享单车借用数量:“节假日”与“双休日”中共享单车应用数量的散布较为类似,高峰期均在午后。比照发现,“工作日”中单车应用数量的高峰期在 7 点至 9 点,16 点到 19 点这两个时间段出现为两个显著的波峰,这两个时间段往往是下班下班时间,人流量比拟大,因此数据的出现比拟符合实际的法则。因而,相对将“is_holiday”列与“is_weekend”列联结进行分组,合并为“is\_non\_workday”, 分为工作组与非工作日组。
(四)温度:图 5-4 为各变量之间的相关系数矩阵,发现温度“t1”列与体感温度“t2”列之间存在较高的相关性,且天气温度数据更加主观,因而抉择仅保留“t1”列。各个变量之间的均出现中弱相关性。此外,各变量与因变量“count_log”列均存在肯定的相关性,但相干强度不一。
(五)经察看“count_log”箱图发现,该数据仍存在着大量异样值。因而,为了进步后果的准确性,抉择删去 16 个过低的数值,残余 17398 组数据。
在进行预处理后,本文曾经对共享单车中的变量进行了筛选与调整,保留了 hour,t1,is\_non\_workday,weather_code,wind_speed,hum,season 等 7 个特色变量。在正 式建设模型之前,对于因变量“count_log”进行等频分箱,将其分成了五类,命名为 category。当保障类别均衡,即每类数据的样本量靠近,算法会有更好的成果。对于温度、湿度等连续性变量,为使得最初后果的准确性,并未对其进行分箱。
接下来,本文对所有的特色变量进行了归一化解决,为了演绎对立样本的统计散布性,本文选取 75% 的数据划分为训练集,25% 的数据作为测试集。
建模
CART 决策树:
CART 算法易于了解和实现,人们在通过解释后都有能力去了解决策树所表白的意义。并且可能同时解决分类型与数值型属性且对缺失值不敏感。
随机森林 :
应用随机森林模型在进行分类时,须要当初经过训练的决策树中输出测试样本,这棵决策树的分类便能够由各叶子节点的输入后果而确定;再依据所有决策树的分类后果,从而求得随机森林对测试样本的最终评估后果。
应用自助法随机地抽样失去决策树的输出样本和选取最佳的宰割规范在决策树的节点上随机地选取特色进行宰割是随机森林的两大长处,正是这些劣势使得随机森林具备了良好的容忍噪声的能力,且使得决策树之间的相关性有所升高。随机森林中的决策树还具备了任意成长但不被修剪的特点,因而这些决策树的偏差较低,有利于进步评估的准确度。
Xgboost:
Xgboost 作为一种新型的集成学习办法,长处颇多。首先,他在代价函数里退出了正则化项,用于管制模型的复杂度,无效避免了过拟合。其次,Xgboost 反对并行处理,家喻户晓,决策树的学习最耗时的一个步骤是对特色的值进行排序,Xgboost 在训练之前事后对数据进行了排序,而后保留为 block 构造,前面的迭代中重复使用这个构造,大大减小了计算量。再次,Xgboost 算法灵活性高,它反对用户自定义指标函数和评估函数,只有保障指标函数二阶可导即可,并且对于特征值有缺失的样本,能够主动学习出它的决裂方向。最初,Xgboost 先从顶到底建设所有能够建设的子树,再从底到顶反向进行剪枝,这样不容易陷入部分最优解。
本文别离利用 CART 决策树、随机森林以及 Xgboost 算法对共享单车借用数量进行等级分类,并对三个办法进行精度测试,发现通过 Xgboost 算法分类成果最好,通过调参后,训练集模型精确度高达 0.92,测试集精确度为 0.83。剖析分类后果以及各因素的重要性发现,工夫、风速、湿度、温度四个因素对共享单车使用量存在较高的影响,因而培修部门能够选在凌晨阶段,或者风速较大、温度过低或过高的期间对共享单车进行正当的批量培修,避开市民用车顶峰,保障市民出行效率以及用车平安。
对于作者
在此对 Yiyi Hu 对本文所作的奉献示意诚挚感激,她毕业于上海财经大学,特长工夫序列预测、回归剖析、多元统计、数据荡涤、解决及可视化、根底机器学习模型以及集成模型。
最受欢迎的见解
1.PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和 KMEANS 聚类用户画像
2.R 语言基于树的办法:决策树,随机森林
3.python 中应用 scikit-learn 和 pandas 决策树
4. 机器学习:在 SAS 中运行随机森林数据分析报告
5.R 语言用随机森林和文本开掘进步航空公司客户满意度
6. 机器学习助推快时尚精准销售工夫序列
7. 用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用
8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)
9.python 中用 pytorch 机器学习分类预测银行客户散失