一. 引言
也许你觉得自己对机器学习一点也不熟,但当你打开网易云音乐的时候,早已习惯了它给你推荐的新歌;当你点开今日头条的时候,早已习惯了它给你推荐的新闻;当你逛淘宝的时候,也早已习惯了它给你推荐的类似商品。你感觉很多产品好像都变得越来越人性化,因为它们仿佛越来越能猜到你真正想要的内容。实际上,这些功能背后的核心就是机器学习算法。
二、机器学习定义
机器学习其实就是研究计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。人类是通过从以往发生事情的经验中进行学习的;而对于计算机来说,他们学习的经验其实就是一堆数据。即我们通过喂给计算机一堆数据,让计算机学习出一个模型,然后将这个模型运用到新的数据上作出一些预测。
近年来互联网数据大爆炸,数据的丰富度和覆盖面远远超出人工可以观察和总结的范畴,而机器学习的算法能指引计算机在海量数据中,挖掘出有用的价值,这也是无数学习者为之着迷的原因。
三、学习内容
数据科学根据其侧重点不同其实又分为三大类,即:数据分析、数据挖掘和大数据。
数据分析主要偏重业务,即利用一些数据分析和统计工具,如Excel、Spass、SAS、SQL等,进行数据分析和展现,以辅助公司的某项业务决策。
数据挖掘比数据分析更侧重于建模能力一些,一般是给定一些数据和某个问题,让你运用某些机器学习算法从中建立出模型,再通过这个模型去对某些东西进行预测。所以,机器学习算法可以说是数据挖掘中的核心。
大数据目前一般指Hadoop和Spark这些大数据框架,实际上偏重于一些平台架构类的东西。
注意,我们这里的数据科学主要围绕数据挖掘为主,辅助以一些数据分析技术。所以下面主要介绍数据分析和数据挖掘方面的学习路线。
3-1、数据分析学习路线
1、Excel
Excel一般人都有接触过,重点是了解各种函数,如sum,count,sumif, countif,find,if,left/right,时间转换等;但函数不需要学全,掌握一些最常用的的,其它在用到的时候随搜随用就行。
另外vlookup和数据透视表是两个性价比很高的技巧,这两个搞定后,一般10万条以内的数据统计基本没什么难度了。
具体学习内容的话网上视频教程很多,随便找个学习都大同小异。
2、数据可视化
数据分析界有一句经典名言,字不如表,表不如图。数据分析的最终都是要兜售自己的观点和结论的,兜售的最好方式就是做出观点清晰数据详实的PPT给老板看。
虽然Excel也可以完成很多的数据可视化功能,但是如果想要得到更专业的可视化效果,还是建议学些编程方面的知识。
这里推荐微软的BI(商业智能)。BI和图表的区别在于BI擅长交互和报表,适合解释已经发生和正在发生的数据。
3、数据库
Excel对十万条以内的数据处理起来没有问题,但是互联网行业就是不缺数据。但凡产品有一点规模,数据都是百万起,这时候就需要学习数据库。SQL是数据分析的核心技能之一,从Excel到SQL绝对是数据处理效率的一大进步。
除了最基本的增删改查、索引、约束外,主要了解where,group by,order by,having, like,count,sum, min,max, distinct,if,join,left join,limit,and和or的逻辑,时间转换函数等。
如果想要跟进一步,可以学习row_number,substr,convert,contact等。再有点追求,就去了解Explain优化,了解SQL的工作原理,了解数据类型和IO。
4、R/Python语言
是否具备编程能力,是初级数据分析和高级数据分析的风水岭。数据挖掘,爬虫,可视化报表都需要用到编程能力。而数据分析领域推荐使用的两种语言绝对是R和Python了,二者在数据分析领域的地位可以说是旗鼓相当,各有优势。
R的优点是统计学家编写的,如果是各类统计函数的调用,绘图,分析的前验性论证,R无疑有优势。学习R,需要了解数据结构(matrix,array,data.frame ,list等)、数据读取,图形绘制(ggplot2)、数据操作、统计函数(mean,median,sd,var,scale等);开发环境建议使用Rstudio。
Python则是万能的胶水语言,适用性强,有很多分支,我们专注数据分析这块。需要了解调用包、函数、数据类型(list,tuple,dict),条件判断,迭代等;开发环境建议Anaconda。
5、统计知识
统计学是数据分析的基础。需要花一些时间掌握描述性统计知识,包括:均值、中位数、标准差、方差、概率、假设检验、显著性、总体和抽样等概念。
6、分析思维
好的数据分析首先要有结构化的思维,也就是我们俗称的金字塔思维。思维导图是必备的工具;之后再了解SMART、5W2H、SWOT、4P理论、六顶思考帽等框架。分析也是有框架和方法论的,主要围绕三个要点展开:
1)一个业务没有指标,则不能增长和分析;
2)好的指标应该是比率或比例;
3)好的分析应该对比或关联。
7、业务知识(用户行为、产品、运营)
对于数据分析师来说,业务其实比了解数据方法论更重要。但很遗憾,业务学习没有捷径,必须靠你在某个行业自己一点点积累。当然,在你正式从事某个行业之前,你可以在网上找一些相关业务方面的项目自己动手进行实践练习。
3-2、数据挖掘学习路线
1、编程基础
一般主要是要掌握基本的数据结构和算法知识。网上有很多相关的学习资源,比如喜欢学术派一点的可以听听那些名校开的数据结构与算法网课;喜欢幽默有趣一点的可以选择一些培训机构或个人录制的数据结构和算法讲解视频。
2、编程语言
精通最少一门编程语言,推荐学习Python。对于一个初学者来说,推荐一本书《零基础学Python》,里面从最基本开始,每段程序后面都逐句进行了较详细的讲解,对于刚入门的人来说还是很有帮助的。
3、机器学习理论
这部分主要是要掌握一些典型的机器学习算法,如分类、聚类、推荐、概率图、神经网络。(可以分为初级、中级和高级三个阶段,每个阶段的侧重点不同。)
(1)初级阶段
初级阶段推荐可以看《机器学习算法原理与编程实践 》和《机器学习实战》这两本书。
这两本书更偏向于算法的应用方面,学习起来相对轻松一些。如果一上来直接就啃那些纯算法理论,估计很多人是坚持不下去的。
再者,一个东西,当你还不知道它是什么,有什么用,以及怎么用时,让你去硬着头皮啃,你一定会感觉很郁闷,并且根本不可能能够深入理解那些理论。
所以,个人强烈建议不要一上来就贪图那些算法理论的推导,先大胆的去了解各个算法的应用场合并尝试着应用,这对你入门机器学习是一个非常好的选择。
(2)中级阶段
中级阶段就要开始啃那些算法背后的理论了,前面应用是知其然,现在要开始知其所以然。
这个阶段重点推荐看林轩田的《机器学习基石》和《机器学习技法》视频,总共三十二课,每一课都相当精彩,细致学下来需要三个月,我指的是细致的看,每一课都应该写笔记,梳理脉络,强烈建议做笔记。
踏踏实实看完,面试中让你推个svm讲讲adboost,gbdt原理基本就是手到擒来,再辅以李航的《统计学习方法》和周志华的《机器学习》(俗称“西瓜书”)查漏补缺,基础就算比较扎实了。
(3)高级阶段
高级阶段就是要自己开始去灵活运用并组合各个算法了。这个阶段可以在网上找一些比较典型的项目来进行实战演练。
推荐学习资源:Kaggle、CCF、Datacastle、阿里云天池等。
kaggle是国外一个专门做数据挖掘比赛的地方,里面很多比赛比较适合新人,而且里面的氛围也比较好,每个比赛都有对应的论坛,时不时有人会发布自己的代码,大家集思广益一起讨论,可以学到很多。
如果你觉得上面的内容对你有帮助,或者你想要进一步了解和学习数据挖掘和机器学习等知识,欢迎关注我的微信公众号“DT新纪元”。