浅论大数据的一般套路(未完)
最近喊着自己是大数据的越来越多,很多数据装了两块硬盘就敢喊自己是做大数据的,实在让人不知道说什么。
大数据之大,在于超出计算机能处理的范畴,必须要用其他方式处理,最典型的比如分布式。
即使是大数据,在处理到最后一步的时候,大多也是使用传统的方法对其进行挖掘的。
下面我会举两个例子:
例子1:行动轨迹的挖掘和预测
假设我们有很多用户的出行记录,出行有停留,有运动(不是锻炼,在交通工具上也是运动),有掉线,有GPS神经病发作突然的跳变,第一步要做的就是数据清洗。
这绝壁是个脏活累活,但同时也是技术活。对于任意一个轨迹,一般的,我们先把速度明显异常的(有些算出来都达到0.1倍光速了好吗?)去掉。
剩下的基本是干净的数据,随后找出所有停留点,这个需要根据业务确定最小停留时间,有的时候是很难判定一个人到底是转公交车还是遇到了堵车,尤其堵车地点在公交站台附近的时候。对每一个停留点,都要获取它们的POI,根据关键词判断这是住宅区,商业区,或者是工业区等等。
随后针对每两个停留点之间的数据进行处理,通过最大速度、最小速度、加速度特征、自相关的周期、上线情况判断交通工具。
我们就得到了这样的一堆数据:
User1:(商业区:袁记腊汁肉店,<时间信息>)--(走路)-->(商业区:新华书店,<时间信息>)--(地铁)-->...--(飞机)-->(郊区:虹桥国际机场,<时间信息>)
User2:和上面差不多
等等
这是一个典型的非结构化数据,是一个时间序列,要预测用户下一步去哪儿,最好用的模型应该是NGram(详情参见我的文章:https://zhuanlan.zhihu.com/p/21997490)
如果要找出公司的地点可以用周期(日+星期)+特定时间段+可重复性去自动发现,还可以找出的是家的地点,惯常工作餐地点和惯常周末休息地点等等。
除了上面的处理,还有一个操作叫抽稀,主要用在商用车轨迹的挖掘上,但是鉴于现在在给某车企搬砖,技术先不公开避免麻烦。
例子2:
第二个例子,我们以爬虫挖掘的文本数据为例,我们获得了一个帖子或者是文章的正文(这一步已经很麻烦了,涉及编码问题,特殊符号问题,网络的可靠,任务的管理……)以后,灾难才刚开始。
第一步是分词(我一般使用ANSJ,同事使用J8),如果是英文的话则没有这一步,但是把ur,naa之类的缩写还原一下。
第二步是送入Word2Vec和NGram做个训练,这两个模型会在以后用上。
第三步是用LDA等获取文章的关键词,并且用词向量做Embedding,得到文章的关键词的向量。
往后的步骤暂时没有套路,要根据实际项目选取需要的文档,通过正则表达式或者语义分析对关键信息进行提取和清洗,最后一步才是分析,等到分析的一步的时候往往画出柱状图就已经李菊福了。
数据第一步清洗完成,特征提取完成得到了一行行个案的Features的时候,这就变成了一个传统的机器学习的问题了。