转行数据挖掘和机器学习

Posted 数学人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转行数据挖掘和机器学习相关的知识,希望对你有一定的参考价值。

目前从纯数学专业转行到机器学习领域已经有两年半了,又到了该总结转行经验和个人成长的时候。笔者在公司里面已经做过智能推荐系统智能安全系统智能运维系统。除此之外,笔者对量子计算等前沿内容也有所了解。不过,还是那句老话,大牛们请主动忽视以下内容,初学者可以用作参考。



1

编程语言



目前工业界的机器学习编程语言很多,基于个人的一些浅显的工作经验,发现目前比较常用的编程语言是 Python 和 SQL


通常来说,SQL 是为了从数据库中提取数据,然后进行必要的数据过滤,数据分析,数据提取。对于 SQL,需要掌握的内容有以下几点:聚合函数,数学函数,字符串函数,表格的连接函数,条件语句等。SQL 的经典教材有两本,分别是:

《HIVE编程指南》,作者 Edward Capriolo

《SQL基础教程》,作者 Mick

PS:个人特别喜欢《SQL基础教程》,极易上手,易学易通。之前写过一篇文章总结 HIVE 的使用细节,提供给大家做参考:



至于开发环境的话,一般来说公司都会使用Linux,有一本书可以提供给大家做参考:《Linux命令行与Shell脚本编程大全》,作者 Richard Blum/ Christine Bresnahan


既然是处理大数据,那么 MapReduce,Hadoop,Spark 等内容需要了解。参考文章:



2

机器学习



既然是做数据挖掘和机器学习的工作,那每个人都需要了解这方面的内容。在这里笔者推荐教材《机器学习实战》,作者是 Peter Harrington。阅读这本书需要读者掌握 Python 语言,加上 Numpy,Scipy,matplotlib 函数库的一些基础内容。源代码的话可以在网上找到,然后根据书本的章节逐步学习即可。


除了《机器学习实战》之外,周志华老师所写的《机器学习》西瓜书也是不错的选择。建议初学者结合这两本书一起学习,周志华老师的《机器学习》介绍了多种机器学习算法,并有简单的例子和数学原理进行描述。


既然提到了机器学习,那就简单地总结一下里面的一些算法吧。


如果是做推荐业务的团队,那么使用地最多的还是逻辑回归算法(Logistic Regression),ItemCF 和 UserCF,物质扩散和热传导算法(Heat Spreading) 算法。由于 LR 是使用线性的方法来处理非线性的问题,并且实际的环境中会有物品的特征和用户的特征,因此会导致特征工程比较复杂,交叉项多(二维或者三维的交叉)。因此,在实际的工作中,特征工程的作用就显得十分重要。工程师和业务人员要根据物品和用户进行必要的特征构造,形成物品特征,用户特征,交叉特征等。之前也写过一篇文章,供大家参考。


除此之外,涉及到在线优化的问题,Google 在几年前提出了一个 FTRL 算法。论文是 Ad Click Prediction a View from the Trenches,里面会涉及 SGD 算法,Truncated Gradient 算法,RDA 算法,FOBOS 算法,以及最终的 FTRL 算法等。这一个内容其实只写过一份网页版,后续会改成 ppt 的格式。


比逻辑回归算法还要简单的那就是线性回归算法了,目的都是针对连续型的数据进行预测,结果都十分容易解释。除了直接的线性回归之外,还有局部加权线性回归,岭回归,Lasso 和前向逐步线性回归等算法。这些细节可以参考文章


决策树 ID3,C4.5,CART 都是一些非常经典的算法,但是在工业界里面的使用场景不是很多。不过随着时间的推移和笔者对业务的理解,发现决策树在智能运维领域的根因分析上面有着独特的优势,正如这两篇文章所写的:,。


如果是针对转行的同学的话,那么大家肯定关心的是如何把之前的技能平滑地切入到新的领域中。如果学过数理统计的话,那么就是一个不错的切入点。


除了上面所说的算法,支持向量机算法(Support Vector Machine),GBDT 算法,随机森林算法,XgBoost 算法都是在工业界比较常见的算法。目前个人还没有对这类算法进行过总结,不过还是强烈建议大家去学习一下。2018年笔者应该会对这些算法进行一些个人的总结。


无监督学习算法也是整个机器学习领域的一大方向。提到无监督学习算法,就不得不提到聚类算法,其中最经典的还是 Kmeans 算法。这个可以参见文章,。聚类算法的反面就是异常点检测算法,之前在异常点检测算法上面研究过一阵,也写过不少的文章。例如:

,,。


关联分析,也就是所谓的“啤酒与尿布”的故事。Apriori 和 FpGrowth 算法都有自己的优点和缺点,在智能运维里面经常会涉及到关联性的分析。无论是事件与事件的关联,时间序列与时间序列的关联,时间序列与事件的关联,都需要进行分析。之前微软也研究过,在这里分享给大家。


除此之外,强化学习也是机器学习的一个研究方向。随着 DeepMind 公司的 AlphaGo 打败围棋顶尖选手,能够自动玩游戏的智能 AI,强化学习已经成为了一个比较热门的研究方向。之前写过三篇关于强化学习的小文章,,供大家参考。


目前深度学习已经成为了机器学习的热门研究方向,无论是卷积神经网络 CNN 还是循环神经网络 RNN,都是研究的主流。之前在学习反向传播算法的时候,写过一篇如何基于 BP 算法训练 RNN 网络的文章。


通常来说,循环神经网络是可以用来处理一些文本内容的,然后在这里也写过一篇文章来介绍文本里面的基本概念:。


在现实社会中,社交网络已经成为了大家不可或缺的一部分,无论是在工业界还是学术界都有人对社交网络进行研究。之前也研究过 Google 的排序算法 PageRank 和其余的一些图算法,在这里也列举出来供大家参考。


近些年,Google 等一些大公司也在大力发展量子计算,也有人进行量子计算与机器学习的研究,之前写过两篇科普性质的文章来介绍量子计算:,



3

数理统计



数理统计方面还是有一些东西是蛮常用的。例如时间序列模型 ARMA 模型等。一些数据的指标,例如均值,方差,标准差,变异系数,相关系数,ROC曲线和AUC,召回率和正确率,交叉验证等。


除此之外,时间序列的异常检测在智能运维上面也有着自己的用武之地,例如对 KPI 曲线的异常检测和定位。有的学者也提过相应的方法,里面用到了有监督的方法来进行时间序列的异常检测。




4

业务



在实际的工作中,最重要的一个因素就是理解业务,只有理解了业务的需求,才能够更好的完成领导所布置的任务。在做事情的时候,一定要形成闭环。那就是:了解业务需求-》调研业界方案-》查看是否适用-》上线效果。通过最终的效果和我们要做成的目标,来反推当前需要做的事情。一些学生时代的思维方式需要逐渐抛弃,参考文章:







相关文章推荐:

1.

2.

3.

4.

5.

6.

7.

8.





欢迎大家关注公众账号数学人生


以上是关于转行数据挖掘和机器学习的主要内容,如果未能解决你的问题,请参考以下文章

华燕-专题视频课程

华燕-专题视频课程

猿创征文|0基础文科生的机器学习8大工具

“特殊福利”整理一套《机器学习数据挖掘推荐系统》资料,送给你们!

零基础如何转行大数据?系统学习路线在此

免费下载某平台3980元Hadoop大数据/机器学习全套视频,仅此1次