设为首页 加入收藏

TOP

Spark机器学习过程梳理
2019-02-12 01:25:06 】 浏览:16
Tags:Spark 机器 学习 过程 梳理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iigeoxiaoyang/article/details/53556423

最近半个月开始研究Spark的机器学习算法,由于工作原因,其实现在还没有真正开始机器学习算法的研究,只是做了前期大量的准备,现在把早年学习的,正在学习的和将要学习的一起做个梳理,整理一个Spark机器学习完整流程。本文推荐的书籍注重通俗和实战。

基础知识


Linux基础知识和实战

Linux的学习推荐《鸟哥的Linux私房菜》基础篇,这本书是成千上万Linux学习者的入门书籍,诙谐,幽默,深刻,注实战。我早年看的时候是第三版,今年6月份鸟哥已经更新到了第四版。
繁体网址:http://cn.linux.vbird.org/
简体网址:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/

网络知识

在集群运维时,尤其是生产环境下,各个节点之间的网络问题,至关重要,推荐《鸟哥的Linux私房菜》服务器篇和《Wireshark网络分析就这么简单》,后者的作者是EMC网络存储部门的主任工程师,主要以自己工作中遇到的各种难题,通过调侃的方式,介绍了网络的基础知识(很遗憾,我还没有读完)。

Hadoop基础知识和原理

Hadoop的学习我早年看的书是《Hadoop权威指南》,这本书不推荐,因为确实不好啃,翻译的水平有限,对于初学者来说,容易放弃,我开始学习Hadoop时,应该是1.0时代,这时的三架马车是HDFS和MapReduce,HBase,这几年随着Hadoop的在业界的迅速发展,应该进入了2.0时代,集成进了雅虎的Yarn资源管理器。当然不管如何发展,HDFS和MapReduce还是Hadoop的核心,最好动手去搭建Hadoop集群(前面Linux的学习在这里就能发挥作用了)。

Spark基础知识和原理

Spark的学习推荐《Spark快速大数据分析》和官网指南,这本书是Saprk开源社区的几位核心贡献者写的,读起来很流程,其中RDD章节是核心,相对于MapReduce每次中间过程都将数据写入HDFS,RDD是放在了内存中,速度不言而语。当然最好也去动手搭建集群,这里可以参考我之前写的博客
集群搭建:http://blog.csdn.net/iigeoxiaoyang/article/details/53020066
开发实例:http://blog.csdn.net/iigeoxiaoyang/article/details/53260101

开发语言


在机器学习领域的语言,一定是一门函数式编程语言,其次有强大的第三方科学计算库。

Python

在科学计算领域,Python无疑是第一语言,Spark也是支持Python的,Python的第三方库有NumPy(数值处理库)、SciPy(数学符号计算库)、matplotlib等。

Scala

Python作为科学计算领域的第一语言,有着庞大的科学计算库,但是,我个人选择Scala语言的原因有两个:一,scala语言的函数式设计更好,二,Scala是运行在JVM上的,在生成坏境下速度优势明显。
基础语法的学习推荐:http://twitter.github.io/scala_school/zh_cn/(Twitter的Scala课堂)
推荐视频1:http://www.imooc.com/learn/613 (慕课网scala视频教程),这个视频是下面英文版视频的简化版,每集7分钟左右,主要理解Scala函数式编程的思想。
函数式设计思想:https://www.zhihu.com/question/28292740 (用心阁),和上面的视频一起看,基本上是scala函数式编程的精髓。
推荐视频2:https://www.coursera.org/specializations/scala(Scala 函数式程序设计原理),视频是scala语言的设计者Martin Odersky教授讲解的,有中文字幕,这个是深入学习Scala视频。

理论知识


线性代数

如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多 ————瑞典数学家Lars Garding

这句话可能有点过,但至少是机器学习的基础。推荐麻省理工学院Gilbert Strang教授的线性代数课 ,
视频地址: http://open.163.com/special/opencourse/daishu.html(已看到19集),上学阶段未理解的很多概念,如矩阵列空间,零空间,和行空间及线性变换,这门课讲的很好。
David C.Lay 教授的《线性代数及其应用》,这本书对于矩阵的线性变化解释的很好,是一本很好的工具书,可以随时翻。

Spark高级数据分析和机器学习

下面才是真正的机器学习开始。这里推荐《Spark高级数据分析》和《Spark机器学习》
前者的作者是Cloudera公司的数据科学家,主要以目前业界的案例分析。在理解的基础上最好去动手实践,我个人在集群上运行了第八章的案例,可以参考我之前写的博客:http://blog.csdn.net/iigeoxiaoyang/article/details/53020066。后者还没读。
机器学习才刚开始,后续会更新。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark系列1 - Spark生态和RDD 下一篇基于eclipse的spark开发环境搭建

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }