对于这类的建模,类似kaggle数据科学比赛,首先要对数据做好分析,一般数据处理分析大约占到60%,模型的选择40%包括调参。所以,参赛的选手们要做好数据的分析和处理。
竞赛题目地址。
ID : 乘车人的ID
LASTTIME :上次乘车时间;
UPTIME :本次乘车时间;
PAYTYPE :付款方式(类别型数据,在做模型预测前要做One-hot编码)
METRONUM :当月地铁乘车次数;
BUSNUM :当月乘公交车次数;(类别型数据,有时候也要做One-hot编码)
BUSMETRONUM:当月公交地铁乘车总次数;
2.2.1 对于0001-1-1上次乘车时间跟,本次乘车时间都没有的乘客,进行剔除掉或者运用这个月的数据进行汇总,求平均值进行填充;
2.2.2 对每个人(ID)这个月乘地铁的次数,乘公交车的次数,以及全部的总次数,对这三个进行排序,对于次数太少的人的数据进行剔除,因为这些人可能是偶尔来出差一次,不是这个城市的人,对于这类的数据可以剔除掉(注意:题目是要分析这个城市人,要审好题);
2.2.3 对整个月乘车间隔进行排序,对于间隔太长的数据剔除掉,因为这类人员只是偶尔成公交或者地铁一次,可以剔除掉;
2.2.4 付款方式:0表示公交移动支付,1表示公交卡支付,对于其他的付款方式进行剔除,不然在分析中很产生干扰;
2.3.1 0001-1-1表示没有刷卡记录,原因是刷卡故障,但仍会显示刷卡方式:所以把这部分的数据当做刷卡的方式;
2.3.2 缺损值处理(null):当做没刷卡方式,把数据进行填充;
2.3.3 对各个特征进行归一化,这个可以到准备训练模型的时候做;
(注意:题目要求是支付的特征,要根据支付来进行统计)
2.4.1 对每天的支付方式进行统计、整个月支付方式进行统计、对这一天乘坐地铁或者公交和整个月的乘坐地铁或者公交的支付方式进行统计,绘制出饼状图或者装状态,分析说明占比情况;
2.4.2 对每天时间段进行划分,统计每个时间段支付方式进行统计,并进行分析,每天不同的试点进行统计,并绘制出图形;
2.4.3 对乘车时间的长短进行划分,对某个区间乘车的时间支付方式进行统计;
2.4.4 对乘车时间长短进行划分,然后对乘车的方式不同来对支付方式进行统计,分别绘制出支付方式的比较图形;
2.4.5 对每个人的每天乘车次数,这个月的乘车次数,做排序后以乘车次数进行划分,分别统计他们的支付方式;
2.4.6 对每个人使用的支付方式进行统计,每个人这一天是使用两种支付方式还是一种支付方式,对每个人整个月使用的支付方式进行统计,可以得出某个人使用支付的习惯;
2.4.7 对周末和节假日(看日历是否有)进行统计。
最后,统计完后,对于各个时间段、乘车次数、选择乘车的方式(地铁、公交)等进行说明,完成第一问。对于这部分还可以做更细致的划分,来对支付方式做统计,但目前就想到这些;刚才又看了一下数据,分析有点错误,对于附件一只有一个月的数据,我是把一天的数据看成一个月了,对于一个月的数据做统计那就更加简单了。
第二问的目标是建立一个商业盈利的数学模型,然后根据模型分析一下第三方平台的收支和盈利状况。而在第三附件中也提到了主要的盈利影响因素,手续费、广告费、沉淀资金的利息收入、服务费等因素,对于这些数据官方是没有给我们的,我们需要网上爬取我们想要的数据,对于影响因素可以根据具体情况考虑。
所以对于这种类型,运用线性回归模型是最简单不过了。对于线性回归模型最简单的理解是对输入数据x然后输出y。这个可以是个多维的影响因素,输出y就是盈利。然后通过训练,获取到最优的参数,这个参数就是某些因素的权重,但这些参数是有限定的,所以在训练的时候要记得进行限制,以防止超出实际情况。
通过以上的分析我们首先使用线性回归模型。模型的理论我这里不过多解释,网上大把。但要学会使用sklearn机器学习框架,包含了机器学习大部分的模型,对于为什么使用这个模型,是有解释性的。对于这类问题是属于有监督学习。对于获取到数据后我们可以通过训练得到模型,然后就可以根据模型进行预测等,但这里应该用不到预测。通过训练最后得到最优的参数,得到最优的模型。
这部分是机器学习的内容,可以在网上搜。
通过以上得到最优的模型以后,通过输入得到输出,然后与各个影响因素相乘即可得到各个因素的情况下得到的盈利,已经跟收支的关系等。
问题三要求根据问题一种的数据,估计该是全部公交车实现第三方平台支付后的盈利情况。这就需要两部分的数据进行对比,一部分数据是第一问通过数据清洗后的数据;第二个部分就是把第一部分数据的非移动支付改为移动支付。
对于这个问题,我们还需要乘车的价格,这个可以到网上对某个城市公交跟地铁的价格查询,获取数据。应该具体到乘坐多久价格多少的问题。获取到乘车的价格后,我们可以根据问题二的模型进行求解。得到全部公交实现第三方支付平台前后的数据,进行比较。即可完成问题三。
到这问可以说是结束了。对于这个问题可以根据前面得到的数据进行讨论,怎么样得到最优的方案。完成最后建模。
以上是我个人的一些思路,希望对于哪里不对或者有更好的思路可以一起讨论,共同进步。