目前機(jī)器學(xué)習(xí)可以說(shuō)是百花齊放階段,不過(guò)如果要學(xué)習(xí)或者研究機(jī)器學(xué)習(xí),進(jìn)而用到生產(chǎn)環(huán)境,對(duì)平臺(tái),開(kāi)發(fā)語(yǔ)言,機(jī)器學(xué)習(xí)庫(kù)的選擇就要費(fèi)一番腦筋了。這里就我自己的機(jī)器學(xué)習(xí)經(jīng)驗(yàn)做一個(gè)建議,僅供參考。

    首先,對(duì)于平臺(tái)選擇的第一個(gè)問(wèn)題是,你是要用于生產(chǎn)環(huán)境,也就是具體的產(chǎn)品中,還是僅僅是做研究學(xué)習(xí)用?

1. 生產(chǎn)環(huán)境中機(jī)器學(xué)習(xí)平臺(tái)的搭建

    如果平臺(tái)是要用于生產(chǎn)環(huán)境的話,接著有一個(gè)問(wèn)題,就是對(duì)產(chǎn)品需要分析的數(shù)據(jù)量的估計(jì),如果數(shù)據(jù)量很大,那么需要選擇一個(gè)大數(shù)據(jù)平臺(tái)。否則的話只需要一個(gè)單機(jī)版的平臺(tái)就可以了。

1.1 生產(chǎn)環(huán)境中機(jī)器學(xué)習(xí)大數(shù)據(jù)平臺(tái)的搭建

    生產(chǎn)環(huán)境里面大數(shù)據(jù)平臺(tái),目前最主流的就是Spark平臺(tái),加上輔助的分布式數(shù)據(jù)處理容器,比如YARN,或者M(jìn)esos.如果需要實(shí)時(shí)的收集在線數(shù)據(jù),那么就加上Kafka。簡(jiǎn)言之,一個(gè)通用的大數(shù)據(jù)處理平臺(tái)就是集成Spark + YARN(Mesos) + Kafka. 我現(xiàn)在做的產(chǎn)品項(xiàng)目都是基于Spark + YARN+ Kafka的,目前來(lái)看,這個(gè)平臺(tái)選擇基本上是主流的方向。

    當(dāng)然,有人會(huì)說(shuō),這么多開(kāi)源軟件,一起集成起來(lái)好麻煩,大坑肯定不少,有沒(méi)有一個(gè)通用的平臺(tái),可以包括類(lèi)似Spark + YARN+ Kafka的大數(shù)據(jù)平臺(tái)功能呢?目前據(jù)我所知,做的比較好的有CDAP(http://cdap.io)。它對(duì)Spark, YARN, Kafka還有一些主流的開(kāi)源數(shù)據(jù)處理軟件進(jìn)行了集成,開(kāi)發(fā)者只需要在它上面封裝的一層API上做二次開(kāi)發(fā)就可以了。這應(yīng)該是一個(gè)不錯(cuò)的點(diǎn)子,不過(guò)目前還沒(méi)有看到商用的成功案例,所以我們?cè)跇?gòu)架選型的時(shí)候就沒(méi)有考慮CDAP。

    因此,圍繞Spark + YARN+ Kafka的大數(shù)據(jù)平臺(tái)還是首選。由于Spark MLlib的機(jī)器學(xué)習(xí)算法并不豐富好用,因此如果你的產(chǎn)品中需要一些MLlib中沒(méi)有的算法,就需要自己去找開(kāi)源實(shí)現(xiàn)了。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式