基于spark的深度学习怎么实现,具体应用实例

《基于Spark的机器学习》 - 小象学院 - 互联网新技术学习平台|人工智能|大数据|机器学习|深度学习|Python|Java|Hadoop|Spark|Linux|MySQL|数据分析
课程名称:《基于Spark的机器学习》 时间:共 12 周
课程概述:
本课程包含下列开源产品/组件(星号代表重要程度):
***** Spark MLlib
**** ML Pipeline and GraphX
*** Spark Core and Spark SQL
** Spark Streaming
* Scikit-learn for reference.
培训方式:视频学习 + 在线答疑 + 每周作业 + 结业考试
培训价格:¥ 699元
week 1 课程简介及入门基础
Spark基础知识
机器学习基础知识
图计算基础知识
Spark,MLlib,以及GraphX的操作示例
week 2 广义线性模型
广义线性模型代码及示例(如手写数字识别)
week 3 推荐算法及系统
奇异值分解
Mahout与MLlib的对比分析
推荐系统的搭建示例(依赖PredictionIO)
week 4 聚类算法
高斯混合模型
Power Iteration聚类
聚类算法应用示例(如主题建模及地理位置聚类)
week 5 流式机器学习
Lambda架构
参数服务器
from Freeman labs提供的流式算法
应用示例(如斑马鱼实验)
week 6 机器学习流水线
Scikit-learn的流水线(包括Pandas等对比)
Spark的流水线(如DataFrame以及ML组件)
特征提取与变换
应用示例及对比(待定)
week 7 机器学习中的科学计算
矩阵计算中的注意事项
矩阵计算的组件(in C/Fortran and Java)
MLlib中的矩阵计算
MLlib中的统计方法
科学计算的示例(待定)
week 8 图计算模型
GraphX进阶
GraphX中的图算法
再议LDA与ALS算法
图模型的示例(如网络中的社团聚类)
week 9 决策树与组合学习
MLlib中的决策树
随机森林算法
Gradient-Boosted Trees
实践中的组合学习(如Kaggle)
组合模型的示例(待定)
week 10 机器学习算法评测
Cross validation与Grid Search
MLlib中的实现
在线、离线测评方法
week 11 优化算法并行化
常用的优化算法
优化算法的串行基因
计算模型:从BSP到BSP+再到SSP
未来的趋势
week 12 课程拾遗以及框架再思考
机器学习/数据分析的一般步骤
实践机器学习的再思考
多系统对比(Mahout、Oryx、VM以及一些python的包,SparkR,PySpark等)
主讲人: 尹绪森
Intel中国研究院 大数据高级工程师
资深Spark和机器学习技术实践者和研究者,对Spark MLlib,Mahout、GraphLab等开源项目有深入研究和理解,并从优化层向下,系统层向上对并行算法及平台做出社区贡献。
全面深入的Spark底层架构及其原理的认识,尤其熟悉基于Spark的机器学习相关内容,同时对自然语言处理、推荐系统等有丰富的实践经验。
目前正全力致力于基于Spark的机器学习算法并行、凸优化层面的算法优化问题,以及Spark大数据平台性能调优。
常见问题:请点击 /page/questions
在线咨询QQ群:
在线客服QQ:
官方微博号:ChinaHadoop
微信公众号:ChinaHadoop
收藏了课程
开始学习课时
学完了课时
学完了课时966,690 七月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
Spark应用案例分析
Spark应用案例分析
智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?!
Apache Spark作为新一代大数据分析平台,以全能分析闻名,可以在单个软件栈内混合批处理、流式计算、以机器学习为代表的迭代型计算、关系查询、交互式查询、图计算等多种分析范式,是搭建一体化大数据流水线的极佳选择。在部署Spark集群、设计Spark应用时有哪些方面的问题需要考量?目前Spark适合应用在哪些场景? 哪些场景不适合Spark使用? 本演讲试图通过亚信科技在Spark平台上的应用案例与经验教训为上述问题提供参考。
田毅,北京Spark meetup创始人,微博: @亚信科技-田毅,从2010年起, 尝试独立编写分布式的业务处理平台. 2011年开始全面使用hadoop平台, 早期设计开发利用MapReduce构建可视化数据处理平台, 后逐步转向研究使用Hive分担电信行业传统数据仓库的复杂计算. 从2013年开始关注Spark, 目前致力于利用Spark技术的特性拓展电信行业的业务模式. 从2011年到2014年, 鉴证了Hadoop技术在电信行业中从小范围探索,到大规模推广使用, 。先后使用HBase实现了电信业务场景中的单据类数据即时查询业务, 使用Shark实现了准实时用户标签统计分析平台. 2014年7月创建北京Spark Meetup小组, 目前已经成功举办2次, 活动中邀请了来自Databricks, 亚信, 京东, Intel等多个知名企业的员工分享了Spark实践中的经验与教训。
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。
相关厂商内容
相关赞助商
CNUTCon全球运维技术大会,9月10日-9月11日,上海&光大会展中心大酒店,
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。Hadoop(8)
Spark是基于Hadoop的大数据处理框架,相比较MapReduce,Spark对数据的处理是在本地内存中进行,中间数据不需要落地,因此速度有很大的提升。而MapReduce在map阶段和Reduce阶段后都需要文件落地,对于连续的数据处理,就需要写多个MapReduce Job接力执行。
最近分析用户查询日志提取共现查询,流程如下:a.先获得&uid, query&对;b.合并同一个uid的queries,组成共现query对&query1, query2&, &query3, query4&等;c.计算共现query对的出现次数,&query1, query2& -& 5,&query3, query4& -& 10等,最后输出结果。
写MapReduce就需要2个Job,第一个Job获得每个uid下的共现query,第二个Job读取第一个Job的输出,合并共现query。我们来看下Spark怎么简单的实现这个流程的。
Spark框架是用Scala编写的,Scala是一个函数式编程语言,函数可以作为输入和输出,可以用连续接力的计算单元让计算结果不断渐进变化,逐层推导。Scala尽力避免程序状态和可变对象。
我们主要来体验下spark和scala的接力处理,与业务相关的代码就删掉了,精华部分是processQueryLog函数。
object SimilarQuery {
val QUERY_LOG_PATH: String = &/search_log/&
val SIMILAR_QUERY_PATH: String = &/similar_query/&
def main(args: Array[String]) = {
val conf = new SparkConf().setAppName(&MigameSimilarQuery&)
val sc = new SparkContext(conf)
//输入/输出路径
val input = QUERY_LOG_PATH
val output = SIMILAR_QUERY_PATH
//获取共现查询
val lines = sc.sequenceFile[BytesWritable, BytesWritable](input)
val similarQ = processQueryLog(lines)
val hadoopCfg = new Configuration(sc.hadoopConfiguration)
val fs: FileSystem = FileSystem.get(hadoopCfg)
fs.delete(new Path(output), true)
similarQ.saveAsTextFile(output)
//获取一天的共现query
def processQueryLog(rdd: RDD[(BytesWritable, BytesWritable)]) = {
rdd.map(log =& {
//源文件是thrift序列化后的scribe日志,里面记录了一次用户的查询(uid, query, time)
val deserializer: TDeserializer = new TDeserializer(new TCompactProtocol.Factory)
//找到一个用户今天的查询
val searchLog: SearchLog = new SearchLog
deserializer.deserialize(searchLog, log._2.copyBytes())
(searchLog.getUid, (searchLog.getCommon.getTime, query))
}).filter(!_._1.isEmpty).groupByKey().flatMap {
case (uid, iter) =& {
//处理共现查询
val queries = iter.toList
queries.sortBy(_._1)
//lambda运算,返回list,元素是一个元组
val relateQueries = for (i &- 0 to queries.length - 2;
j &- i + 1 to queries.length - 1) yield {
(queries(j)._2, queries(i)._2)
//list过滤和去重,执行map过程,打散输出
relateQueries.filter(_._1 != null).distinct.map(t =& (t, 1))
}.reduceByKey(_ + _).map(query =& {
query._1._1 + &\t& + query._1._2 + &\t& + query._2
解析log =& uid/query对 =& filter &=& 同一个uid的query merge =&共现query =& 相同的query对计数 =& &#26684;式化输出,一系列的流程瀑布式的推进。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:528256次
积分:6977
积分:6977
排名:第3207名
原创:179篇
转载:24篇
评论:76条
(2)(1)(2)(4)(1)(1)(1)(1)(2)(1)(2)(2)(2)(3)(2)(2)(5)(2)(3)(3)(2)(2)(1)(3)(2)(1)(3)(3)(1)(6)(2)(2)(2)(2)(5)(3)(6)(3)(7)(2)(5)(1)(1)(1)(11)(14)(9)(1)(10)(6)(1)(13)(11)(2)(6)(6)(2)(4)(1)  IT168 评论本周早些时候Google开源了TensorFlow(GitHub),此举在深度学习领域影响巨大,因为Google在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且Google自己的Gmail和搜索引擎都在使用自行研发的深度学习工具。  无疑,来自Google军火库的TensorFlow必然是开源深度学习软件中的明星产品,登陆GitHub当天就成为最受关注的项目,当周获得评星数就轻松超过1万个。  对于希望在应用中整合深度学习功能的开发者来说,GitHub上其实还有很多不错的开源项目值得关注,首先我们推荐目前规模人气最高的TOP3:  一、Caffe。源自加州伯克利分校的Caffe被广泛应用,包括Pinterest这样的web大户。与TensorFlow一样,Caffe也是由C++开发,Caffe也是Google今年早些时候发布的DeepDream项目(可以识别喵星人的人工智能神经网络)的基础。  二、Theano。2008年诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras。  三、Torch。Torch诞生已经有十年之久,但是真正起势得益于去年Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了不怎么流行的编程语言Lua(该语言曾被用来开发视频游戏)。  除了以上三个比较成熟知名的项目,还有很多有特色的深度学习开源框架也值得关注:  四、Brainstorm。来自瑞士人工智能实验室IDSIA的一个非常发展前景很不错的深度学习软件包,Brainstorm能够处理上百层的超级深度神经网络——所谓的公路网络Highway Networks。  五、Chainer。来自一个日本的深度学习创业公司Preferred Networks,今年6月发布的一个Python框架。Chainer的设计基于define by run原则,也就是说,该网络在运行中动态定义,而不是在启动时定义,这里有Chainer的详细文档。  六、Deeplearning4j。顾名思义,Deeplearning4j是”for Java”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j由创业公司Skymind于2014年6月发布,使用Deeplearning4j的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。  DeepLearning4j是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能,可应用于以下深度学习领域:  人脸/图像识别  语音搜索  语音转文字(Speech to text)  垃圾信息过滤(异常侦测)  电商欺诈侦测  七、Marvin。是普林斯顿大学视觉工作组新推出的C++框架。该团队还提供了一个文件用于将Caffe模型转化成语Marvin兼容的模式。  八、ConvNetJS。这是斯坦福大学博士生Andrej Karpathy开发浏览器插件,基于万能的t可以在你的游览器中训练神经网络。Karpathy还写了一个ConvNetJS的入门教程,以及一个简洁的浏览器演示项目。  九、MXNet。出自CXXNet、Minerva、Purine等项目的开发者之手,主要用C++编写。MXNet强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。  十、Neon。由创业公司Nervana Systems于今年五月开源,在某些基准测试中,由Python和Sass开发的Neon的测试成绩甚至要优于Caffeine、Torch和谷歌的TensorFlow。  标签:开源,Google,开源项目  分享到:  0 个人觉得赞好文章 点个赞您已经赞过了+1  查看更多热销产品&大学生分期购物销量榜}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信