大数据时代,数据信息的无处遁形
作者 | 数据与算法之美
数据挖掘,英文名叫Data mining,一般是指从大型数据库中将隐藏的预测信息抽取出来的过程,而更为精确的解释则是“从数据中挖掘知识”。
这个概念乍眼一看有点懵,小天举个栗子解释,相信就比较容易理解:
假如某东需要预测用户在未来5天内的购买需求,以达到精准营销的目的,那么此时完全可以借助数据挖掘实现。通过数据挖掘技术和机器学习算法,在以某东真实的用户、商品和行为数据(脱敏后)为基础的情况下,构建一个用户购买商品的预测模型,输出高潜用户和目标商品的匹配结果,从而提供高质量的目标群体,实现精准营销。
也就是说,我们能够从海量的数据中挖掘出有用知识服务于我们的工作。
而就目前而言,数据挖掘大致上是可以分为四个层次:纯粹数据加工、傻瓜式挖掘、较为自由的挖掘以及算法拆解和开发。
(一)纯粹数据加工
这一层次主要侧重于变量的加工和预处理,主要的加工工具就是大家比较熟悉的SQL和SAS base。
从源系统或数据仓库,对相关数据进行提取、加工、衍生处理,生成各种业务表。紧接着,以客户号为主键,将这些业务表整合汇总出一张大宽表,而这张宽表就是所谓的“客户画像”。
(二)傻瓜式挖掘
傻瓜式操作的优点就是让数据挖掘变得入手快且简单,但是,众所周知傻瓜式操作必然存在缺陷,比如挖掘的过程会很单调无趣,没办法批量运算模型等等。而较为典型的工具有SAS EM和clementine。
这两种工具已经嵌入了很多较为传统成熟的算法、模块和节点(如大家很熟悉的神经网络以及前几天小天提到的决策树等)。只需鼠标的托拉拽,基本上就可以满足你挖掘数据的需求。
因此,在熟练操作这些工具的情况下,若想进一步提升建议需要抛弃它们。
(三)较为自由的挖掘
在这个层次,典型的工具就是R和Python这两个开源工具,前者是统计学家开发的,而后者则是计算机学家开发的。
它们不但有较多前沿且成熟的算法包调用,还能对既有的算法包进行修改调整,以适应分析需求,十分的灵活。此外,Python在文本、社会网络方面的处理,功能比较强大。
(四)算法拆解和自行开发
到了这一层次,说明你们已经拥有了重新编写算法代码的能力,比如用自己的代码实现逻辑回归运算过程,甚至根据业务需求和数据特点,更改其中一些假定和条件,以提高模型运算的拟合效果。
[](https://upload-images.jianshu...
一般而言,大多数人会利用python、c、c++进行算法拆解和开发。
可以看到,四个层次中出现最多的就是python,因此可以这么说掌握了python,掌握数据挖掘也就不在话下了!
而根据当前互联网的招聘和对技能的需求来说,当你已经顺利度过前三个层次的时候,建模分析师的职位是妥妥的,如果再更进一步到达了第四层次,相信你就是当之无愧的算法工程师了!
那么,怎么才能更好地掌握数据挖掘,最高效的学习路径应该是什么样的呢?
此时,我们最先要做的就是了解数据挖掘的大致流程。
(一)数据读取
既然是叫数据挖掘,那么可以看出数据是重中之重,因此第一步就应该把数据读取出来。
(二)特征理解分析
数据读出来了,但并不代表这些数据都是有用的,因此需要根据数据的特征进行理解和分析,考虑变量与结果的关系,最后绘图得出结论,辅助判断,进而选出有价值的数据。
(三)数据清洗与预处理
选出了有价值的数据就可以马上建立模型了吧?别想太多,还得先清洗和预处理数据。虽然这一步看似很简单,但是实际上它是整个数据挖掘过程中最耗时的,大概占了70-80%的时间。
如何对数据进行恰当的处理使得最终能够获取最合适的数据是这一步需要解决的。请记住,数据决定了模型的上限。
(四)建立模型
完成了最重要的第三步之后,就可以开始建模了,通过多种算法的对比以及参考他人的策略进行建模与优化,最终得出合适的模型。