到处都在说大数据,其实大部分说的只是古老的概念。特别是数据分析用的东西,目前还没一个跟大数据搭得上边的。
大数据,首先得够大。
大数据,最重要的一个词就是“大”。要多大才算大数据呢?Google定义为超越普通电脑处理能力的数据量才是大数据。若以纯文本形式储存这些数据,至少得是1T以上才够的上入门。
而很多时候我们碰到的数据量,远远还谈不到“大数据”的门槛。现在很多行业说到的“大数据”是啥概念?
例如所谓“大数据”应用于审计:几百万笔交易记录明细导出来,通过一些条件筛选识别一些有风险的交易来检查。拜托,这1G的数据量,个人电脑卡个20分钟绝对给你筛选出来,也不是什么高频实时需求,这就是最古典的数据分析方法。不要把一个(或者若干个)excel文件就能处理的数据就叫做大数据,谢谢。
数据和算法同样重要。
处理大数据需要有巧妙的算法。“豆瓣FM”是第一个推出音乐推荐的豆瓣猜。它根据个人和其他虾米用户听歌的记录进行分析,智能推荐你可能喜欢的歌。这个推荐算法的背后是多元线性的距离公式:寻找在多元空间中距离最近的人/歌。这公式讲起来很简单,也就是高中的解析几何的难度。可是这算法的计算复杂度是N(O2),当只有3个人 + 3首歌的时候可以秒算,而当人和歌的数量急剧增长的时候,这算法需要的计算量呈几何增长。
好了,你知道了这个算法了,你可以写出一个新的电台软件了。可以吗?No.
你要有数据积淀。
Rubbish in, rubish out. 这是数据分析的第0条原则。就像大部分的互联网产品死在了第一步:冷启动。一个新用户出现在你面前,也是一个空白的profile。第一首歌你想推荐哪首?只能去金曲榜或者播放榜找排名。结果就是对于每个新用户,你只能来来回回推荐那么几首歌。算法再跑,这个数据池子亦是空空空空如也。
有了数据还要要重视数据清洗。
不要以为,每个数据集都长得整整齐齐。能长得整整齐齐的那些数据,分析老早就做完了,或者说,这些数据集在生产的时候,已经为了分析的目的而清理好了。实际中碰到的数据常常各种混乱。就算是最结构化的数据集,只要输入端/采集端来源是多个来源,就一定会出问题。不要问我为什么,填过多少坑。在使用这对数据集之前,可能需要化大量的时间对一条条记录做人工或半自动的预处理。这个时间,比实际运算的时候要大10倍。
知乎用户“清夜”曾吐槽过,处理过一段类似于这种“北京丨海淀”数据,需要将这个数据分成“北京”和“海淀”这样的字段。结果不管用什么办法,计算机都无法识别这个“丨”的分隔符,导致分词失败。他把所有的方法全都试了一遍全都不行,甚至换浏览器和电脑。最后灵光一现,通过反查Unicode编码发现,这个分隔符根本就不是电脑键盘上打出来的这个“|”,也不是全角半角的区别,而是一个拼音为gǔn的汉字……留下风中凌乱的作者。
最后总结一句,普通人距离“大数据”,是天和地的距离。还是脚踏实地从数据治理开始做起。从业务流程梳理入手,结构化体系化地生产或者采集数据,用效益成本平衡的指导原则对原始数据进行必要的审核,用90%的时间进行数据清洗,最后才用10%的时间跑算法。
发表回复