作家
登录

机器学习研究与开发平台的选择

作者: 来源: 2017-04-11 17:05:01 阅读 我要评论

今朝机械进修可以说是百花齐放阶段,不过如不雅要进修或者研究机械进修,进而用到临盆情况,对平台,开辟说话,机械进修库的选择就要费一番脑筋了。这里就我本身的机械进修经验做一个建议,仅供参考。

机械进修研究与开辟平台的选择

起首,对于平台选择的第一个问题是,你是要用于临盆情况,也就是具体的产品中,照样仅仅是做研究学惯用?

1. 临盆情况中机械进修平台的搭建

如不雅平台是要用于临盆情况的话,接着有一个问题,就是对产品须要分析的数据量的估计,如不雅数据量很大年夜,那么须要选择一个大年夜数据平台。不然的话只须要一个单机版的平台就可以了。

1.1 临盆情况中机械进修大年夜数据平台的搭建

临盆情况琅绫擎大年夜数据平台,今朝最主流的就是Spark平台,加上帮助的分布式数据处理容器,比如YARN,或者Mesos.如不雅须要及时的收集在线数据,那么就加上Kafka。简言之,一个通用的大年夜数据处理平台就是集成Spark + YARN(Mesos) + Kafka. 我如今做的产品项目都是基于Spark + YARN+ Kafka的,今朝来看,这个平台选择根本上是主流的偏向。

当然,有人会说,这么多开源软件,一路集成起来好麻烦,大年夜坑肯定不少,有没有一个通用的平台,可以包含类似Spark + YARN+ Kafka的大年夜数据平台功能呢?今朝据我所知,做的比较好的有CDAP(http://cdap.io)。它对Spark, YARN, Kafka还有一些主流的开源数据处理软件进行了集成,开辟者只须要在它膳绫擎封装的一层API上做二次开辟就可以了。这应当是一个不错的点子,不过今朝还没有看到商用的成功案例,所以我们在构架选型的时刻就没有推敲CDAP。

是以,环绕Spark + YARN+ Kafka的大年夜数据平台照样首选。因为Spark MLlib的机械进修算法并不丰富好用,是以如不雅你的产品中须要一些MLlib中没有的算法,就须要本身去找开源实现了。

【编辑推荐】

  1. 机械进修难在哪
  2. 有望代替Spark的实机会械进修框架Ray
  3. 进修机械进修时须要尽早知道的三件事
  4. 机械进修研究趋势分析:TensorFlow已超出Caffe成研究最常用框架
  5. 机械进修的成长过程及启发
【义务编辑:51CTO_OS TEL:(010)68476606】

1.2 临盆情况中机械进修单机数据平台的搭建

临盆情况琅绫擎如不雅数据里不大年夜,大年夜数据平台就显得有点over design了,此时我们有更多的选择。首选,仍然是Spark平台,不过我们不须要分布式的容器YARN和分布式数据分发的路由Kafka了。为什么首选照样Spark呢?因为我们要推敲扩大,如今数据量不大年夜,不代表今后数据量不大年夜。这也是我介入的一些小型数据分析项目也是选择Spark的原因。当然我认为还有一些原因是Spark同时支撑了Python, Java, Scala和R。这降低了很多法度榜样员的介入门槛。我介入的Spark项目中,开辟说话主如果Java和Scala。Python没有选择是因为一些速度的原因和体系其它部分都是用Java写的。

是以,临盆情况中机械进修单机数据平台, Spark是做产品首选,而scikit-learn家族合适做快速的原型开辟验证。

2. 研究情况中机械进修平台的搭建

如不雅只是做研究,那么选择就很多了,主流的有三种。

  • 第一种是基于Spark MLlib来进修。好处是学到的器械用到临盆情况可以无缝切换,然则坏处也很明显,Spark器械很多,在本身的单机上跑很吃内存,比较慢,并且MLlib的类库并不丰富,很多算法须要本身再去找类库。根据四周同事的反馈,比较吃力,是以基于Spark MLlib来进修机械进修,我小我认为不是一个好的选择。
  • 第二种是基于scikit-learn为主的一系列python对象来进修,包含膳绫擎提到的numpy, scipy, pandas, MatplotLib等等。好处是类库多,API强大年夜,可以让你专注于数据的分析,例子也多,进修起来不难。当然也出缺点,就是这一大年夜堆的python库,要闇练的用起来须要一段时光。 小我比较推荐这种办法,四周同事来说,用scikit-learn进修交换也是主流。
  • 第三种是基于R的平台来做机械进修(不包含Spark R),重要平台是R studio。因为R是一门比较老的说话,是以他的数据处理和机械进修的API比较丰富,尤其是对于之前做数据分析师的仁攀来说更是熟悉不过。然则R是一门相对封闭的说话,社区远远没有Python的活泼,并且对于法度榜样员来说, R的那种语法让人难熬苦楚。几年前,一般会认为R的机械进修比Python的好,然则如今Python已经将R远远甩在了后面。是以,除非你之前已经很熟悉R说话,不然完全不推荐用R来研究机械进修,BTW,这琅绫腔有歧视R的意思。

总之,如不雅你想研究进修机械进修,并且没有特别的R背景,scikit-learn是你的首选。当然,有人会说,我爱好本身去一点点的实现机械进修的算法,不爱好直接调用类库,如许不可吗? 当然,如许肯定是异常不错的,并且对加深各个算法懂得很有好处。只是如许比较的花时光,如不雅你和我一样时光不太多的话,照样直接调用API来研究数据比较直接。

第二个选择是以scikit-learn为主的一系列python对象,包含 numpy, scipy, pandas, MatplotLib等等。特点是类库丰富,尤其是scikit-learn的机械进修库,可以说是十八般兵器,样样都有。别的就是因为可以交互式的编写法度榜样,便利快速开辟原型。我介入的有两个项目在可行性分析阶段,都是用scikit-learn来做原型和给客户做demo。



  推荐阅读

  bmon:Linux下一个强大的网络带宽监视和调试工具

bmon 是类 Unix 体系一一个基于文本,简单但异常强大年夜的 收集监督和调试对象,它能抓取收集相干统计信息并把它们以用户友爱的格局展示出来。它是一个靠得住高效的带宽监督和网速估测对>>>详细阅读


本文标题:机器学习研究与开发平台的选择

地址:http://www.17bianji.com/lsqh/34728.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)