以什么姿势进入DataMining会少走弯路?

简介:

前言:大数据时代早已经来临,很多年轻人急着闹着想要跻身于大数据行业,不免也有一些不得志的中年人。自然而然的会报各种培训班,理所当然认为付出总有一天会赚回来的。但却走了不少弯路,花了不少钱。倘若在我写的文章中,能有所启发和收获,希望诸位能够以恰当的姿势进入DataMining吧!

画外音:看过身边花1w+大洋报培训班,周末夜里坚持学习的同学;面过硕士、博士甚至留学交换生,但结果总不尽如人意;现如今堪比前端一样浑浊的算法领域,让人担忧。

承认一点,每个人都在进步,每个人都走过弯路,曾几某时,自己也一腔热血的写过一篇文章,后来分享了出来 “神爱众人,于是带来Python” 。目前来看,那篇文章写得并不好,感兴趣的可以去看看。

前不久,给公司同事做算法培训时候,说了自己在算法领域的四点信仰,可以和看官一起分享:

  • 信仰1:不以具体业务场景出发,不考虑大数据并发实现的数据挖掘,都在耍流氓;
  • 信仰2:知其然,晓其所以然,万变不离其宗,必定变化莫测,这正是算法魅力;
  • 信仰3:在DataMining领域,不做两种人。一种是工具人,一种是研究者;
  • 信仰4:拥有健康、丰满的数据,业务场景建模已经成功90%以上了;

余下的内容,也将对上面四点分别做阐述,附带案例说明:

学会考虑业务场景建模,多思考大数据并发下的实现

案例1:一些网络授课,每当提起分类算法,最常用的典型二分类是男性和女性判别?

a.普遍的讲解流程,介绍各种分类算法,DT、LR、NB和SVM等等;

b.接下来,考虑用户一些基础的网站行为数据,平均访问时长、nick、浏览page、每日pv等等;

c.最后,带入数据,套用模型,个别还会考虑清洗数据,一切就Over;

一堂简单网络授课,也许不能面面俱到,

但也绝对不能错误的引导DM(数据挖掘)的核心要领。

比如:

让学习者认为算法是整个数据挖掘的核心?数据挖掘就是随便找到数据套用模型,甚至工具包就OK了?

很多很多不恰当的思想灌输,正是让现如今算法行业鱼龙混杂,我也不是批判者,也不是熬鸡汤人。我会这样简单去介绍,二分类场景下的男性和女性判别:

Step1:Where 在哪个行业下的用户性别判断的场景需求?(比如:电商行业)

Step2:Why 需要去分析用户性别?(现如今,在资金有限的情况下[广告费,站外流量和短信等等],精准化营销的需求越来越强烈,同时用户体验也会是至关重要,如何做到千人千面?如何提高整个平台,或者商家店铺的成交转化率、用户回购率和用户粘度?甚至如何给每个用户展示他所想看到的宝贝详情页?这些的这些,都是需要对用户,乃至店铺、商品和品牌进行画像,构建标签体系,其中就包括用户性别!)

Step3:What 如何去分析用户性别?(在数据挖掘中,特征选取不当,模型构建不当,都会容易引起[欠拟合]和[过拟合],因此在电商行业的用户性别分析,首先明确一个概念区别(用户网站性别和用户线下性别),顾名思义,一个是用户真实性别,一个是用户在网站的行为性别,而真正对我们有意义的,当然是后者。因此,在考虑用户性别分析特征时,核心要素是考虑用户在平台购买过的类目行为(每款商品在设计之初,都会明确目标群体)。

但是,毕竟会存在很多用户是新用户,这也正是模型的冷启动问题。如果你认为算法是最厉害的,到这里,你会无能为力;但如果你够了解业务,了解数据,你会观察到用户的收货姓名(但,注意,经验表明,每一个电商购物用户,都可能会存在多个收货姓名 ? 甚至存在非姓名的收货姓名?剩下深入的细节,需要建模之处进行合理把控的)

Step4:When 什么时候去分析用户?(通过上面的分析,想必已经够清楚了,模型构建一定要场景化,也必然场景细分,也有就用户细分!这里主要分三类,a.新用户,b.购买行为数在一定范围内?c.高频购买行为用户?

Step5:How 去分析用户性别?(整个二分类场景,模型被我放在最后,希望学习数据挖掘的同学,对于业务和算法的分量,要在心目中有分寸。这里会考虑冷启动模型、分类算法(比如朴素贝叶斯)和符号模型的组合。这里灌输一个思想:模型 != 单算法,而是由多算法+一系列规则逻辑组合而成)

[总结]:一堂课程,还是花了很多培训费,即使不能阐述太多,但我想,如果通过上述方式,会不会更恰当呢?

案例2:很多学者不考虑大数据并发的实现,玩习惯性的单机版时间久了,很难走出这道坎。比如很多人用协同过滤,考虑过大数据量下大矩阵相乘的实现?

知其然,晓其所以然,万变不离其宗,必定变化莫测:

案例3:很多使用算法,甚至数据清洗方式的同学,更多是将知道的方法组合在一起,认为这就是数据挖掘?

我想,这也许还是。

网络课程给学习者带来的诟病吧!

因为课程上已经千篇一律的讲述了数据挖掘的流程体系,所以学习者都会这样做:

a.业务场景需求出现:不假思索就采取能想到的特征变量;

b.不考虑数据清洗,不考虑归一化,无量纲化处理,甚至异常和缺失值,就直接进入模型;

c.不了解具体某一个算法的原理性,一味的用各种工具包,甚至扯上了Spark,R,Mahout 和python等等,输入数据就OK了;

……很多很多,毕竟我不是批判者,我只是希望大家能够做一件正确的事,再正确做好这件事!

如果换做我,我会这样思考!

Step1:业务需求出现时,多向专业运营人员了解业务背景,结合自己理解,确定初步的特征变量,观察数据分布;

Step2:考虑异常值和缺失值处理(这些都是观察数据找到的思路),甚至结合数据分布,采取合适的无量纲化处理方式, 甚至一定程度上降维;

Step3:结合业务场景建模,用户群体细分,确定模型选择,以及所选算法,比如NB(朴素贝叶斯)。

Step4:需要深入了解朴素贝叶斯的原理,知道优势和不足,甚至优化方向(比如:取Log、加平滑曲线等)

[总结]这里只是一个大概的思路,如果课堂时间允许情况下,用具体二分类(性别判别)的案例分析流程,这样学生能够领悟到更透彻。而不是一味的就那几步数据挖掘步骤!

在DataMining领域,不做两种人。一种是工具人,一种是研究者:

做数据挖掘,如果真正热爱这个行业,并希望落实想法,不推荐大家做以上两类人,工具人和研究者。

[工具人]:面试过很多人,(这里谈离线批处理)基本都是Python(很多面试者被豆瓣电影评分的案例害得不浅啊!),很多一味追潮流,也整一个Spark来调包,认为就是懂数据挖掘了,甚至Mahout和R等等;

PS:我曾经反问一位面试者,如果让你招人,你会愿意选择,只会用包,缺乏思考怎么去用?为什么这样用?甚至如何改进和组合的人? 显而易见,面试者的答案是不会招这样的人!

我这里不是批判工具如何不好,曾经大学,我也只是会用Matlab、Spss,甚至Lingo。毕业初期,也只是会用Python和R等。我主要说的是,优秀的模型,不单单是某一个算法能够解决的,其中还包括很多组合算法和逻辑规则。单独的使用工具,结合业务的个性化需求会得不到很好满足,甚至如果让你调优算法,一方面你缺乏算法原理的理解,另一方面,你修改源码的也会很费脑、费神啊!

[总结]:技术没什么吸引人的,它的魅力在于服务业务,通过业务发展来驱动技术提高。这里推荐MapReduce!

[研究者]这类人,不过多讨论,毕竟这个社会是需要这样一类人存在的,我也很佩服他们。 我前面说的前提是,如果真正热爱大数据下的数据挖掘,并落实想法,还是直接作为一个实践者吧!


本文作者:汪榕

来源:51CTO

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
弹性计算 Kubernetes 关系型数据库
初入阿里云,上手走一波
简述个人体验的阿里云产品及相关的操作内容,包括ECS、Mysql、DMS、OSS、Linux等
初入阿里云,上手走一波
|
存储 人工智能 运维
心得体会
学习到了诸多知识,提升了自己的能力
|
弹性计算 Java C++
使用感想
阿里云使用感想
|
弹性计算 Ubuntu
感想
完成这件事颇为困难 成就一番事业需要外物 任其发展并非长远之计 务实一点 而且在今后肯定更加辉煌 以青年的毅力
|
弹性计算
在阿里云学习的心得感想
初步接触阿里云服务器,在学习的过程中收获知识
1123 0
感想与体会
文中讲述本人学习网页制作的经历、感想与体会
149 0
|
弹性计算 监控 JavaScript
关于一个大三学生做项目新手入坑的经验之谈
通过阿里云的实验简单的知道了云服务器的认识和了解,大概知道了云服务器的作用,他给我们带来了许多便利。
|
移动开发 前端开发 JavaScript
【新人福利】前端学习路线,再也不用发愁自己该从何学习
【新人福利】前端学习路线,再也不用发愁自己该从何学习
216 0
【新人福利】前端学习路线,再也不用发愁自己该从何学习
|
弹性计算 开发工具 C语言
我的心得体会
我是一名大二的工业工程专业的大学生,我们学院这学期开设了以C++语言为载体来讲述有关面向对象编程方法的一门课程——面向对象编程。我怀抱着对技术的热爱与渴望,想革新自己以往面向过程式的编程思想以及追赶社会上“人人都学编程”的脚步。于是我选了这门编程课,听老师讲我们这门课是依托阿里云平台来进行教学的,于是乎在刚开课不久我就注册了我的阿里云账号。现在主要的编程语言是C++,目前通过上课的过程中学到了有关markdown文档和git控制的知识,听老师说阿里云飞天加速计划,学生可以免费申领具有一定期限的云服务器,便想加入飞天加速计划,希望自己的技术有进一步的提高并能学到更多的知识。
|
前端开发 小程序 API
学习感想
通过阿里云后台的学习,我掌握了一些前后台互动的相关知识,很感谢阿里巴巴能够给我们学生提供这些资源服务,最后期待阿里云服务能够给我带来更多惊喜。