機(jī)器學(xué)習(xí)(一) Spark MLlib介紹



【版權(quán)聲明】本文為原創(chuàng)抗俄,轉(zhuǎn)載請(qǐng)注明原地址:http://www.reibang.com/p/b7cd69e64985

歡迎加入機(jī)器學(xué)習(xí)QQ交流群:740377503


一裹刮、什么是機(jī)器學(xué)習(xí)

機(jī)器學(xué)習(xí)(Machine Learning, ML)是一門(mén)多領(lǐng)域交叉學(xué)科盏混,涉及概率論蔚鸥、統(tǒng)計(jì)學(xué)、逼近論许赃、凸分析止喷、算法復(fù)雜度理論等多門(mén)學(xué)科。專(zhuān)門(mén)研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類(lèi)的學(xué)習(xí)行為混聊,以獲取新的知識(shí)或技能启盛,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能。它是人工智能的核心技羔,是使計(jì)算機(jī)具有智能的根本途徑僵闯,其應(yīng)用遍及人工智能的各個(gè)領(lǐng)域,它主要使用歸納藤滥、綜合而不是演繹鳖粟。一種經(jīng)常引用的英文定義是:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E。?

機(jī)器學(xué)習(xí)強(qiáng)調(diào)三個(gè)關(guān)鍵詞:算法拙绊、經(jīng)驗(yàn)向图、性能,其處理過(guò)程如上圖所示标沪。在數(shù)據(jù)的基礎(chǔ)上榄攀,通過(guò)算法構(gòu)建出模型并對(duì)模型進(jìn)行評(píng)估。評(píng)估的性能如果達(dá)到要求金句,就用該模型來(lái)測(cè)試其他的數(shù)據(jù)檩赢;如果達(dá)不到要求,就要調(diào)整算法來(lái)重新建立模型违寞,再次進(jìn)行評(píng)估贞瞒。如此循環(huán)往復(fù),最終獲得滿意的經(jīng)驗(yàn)來(lái)處理其他的數(shù)據(jù)趁曼。機(jī)器學(xué)習(xí)技術(shù)和方法已經(jīng)被成功應(yīng)用到多個(gè)領(lǐng)域军浆,比如個(gè)性推薦系統(tǒng),金融反欺詐挡闰,語(yǔ)音識(shí)別乒融,自然語(yǔ)言處理和機(jī)器翻譯,模式識(shí)別摄悯,智能控制等赞季。

二、基于大數(shù)據(jù)的機(jī)器學(xué)習(xí)

傳統(tǒng)的機(jī)器學(xué)習(xí)算法射众,由于技術(shù)和單機(jī)存儲(chǔ)的限制碟摆,只能在少量數(shù)據(jù)上使用。即以前的統(tǒng)計(jì)/機(jī)器學(xué)習(xí)依賴于數(shù)據(jù)抽樣叨橱。但實(shí)際過(guò)程中樣本往往很難做好隨機(jī)典蜕,導(dǎo)致學(xué)習(xí)的模型不是很準(zhǔn)確,在測(cè)試數(shù)據(jù)上的效果也可能不太好罗洗。

隨著 HDFS(Hadoop Distributed File System) 等分布式文件系統(tǒng)出現(xiàn)愉舔,存儲(chǔ)海量數(shù)據(jù)已經(jīng)成為可能。在全量數(shù)據(jù)上進(jìn)行機(jī)器學(xué)習(xí)也成為了可能伙菜,這順便也解決了統(tǒng)計(jì)隨機(jī)性的問(wèn)題轩缤。然而,由于 MapReduce 自身的限制,使得使用 MapReduce 來(lái)實(shí)現(xiàn)分布式機(jī)器學(xué)習(xí)算法非常耗時(shí)和消耗磁盤(pán)IO火的。因?yàn)橥ǔG闆r下機(jī)器學(xué)習(xí)算法參數(shù)學(xué)習(xí)的過(guò)程都是迭代計(jì)算的壶愤,即本次計(jì)算的結(jié)果要作為下一次迭代的輸入,這個(gè)過(guò)程中馏鹤,如果使用 MapReduce征椒,我們只能把中間結(jié)果存儲(chǔ)磁盤(pán),然后在下一次計(jì)算的時(shí)候從新讀取湃累,這對(duì)于迭代 頻發(fā)的算法顯然是致命的性能瓶頸勃救。

在大數(shù)據(jù)上進(jìn)行機(jī)器學(xué)習(xí),需要處理全量數(shù)據(jù)并進(jìn)行大量的迭代計(jì)算治力,這要求機(jī)器學(xué)習(xí)平臺(tái)具備強(qiáng)大的處理能力蒙秒。Spark 立足于內(nèi)存計(jì)算,天然的適應(yīng)于迭代式計(jì)算宵统。即便如此晕讲,對(duì)于普通開(kāi)發(fā)者來(lái)說(shuō),實(shí)現(xiàn)一個(gè)分布式機(jī)器學(xué)習(xí)算法仍然是一件極具挑戰(zhàn)的事情榜田。

幸運(yùn)的是益兄,Spark提供了一個(gè)基于海量數(shù)據(jù)的機(jī)器學(xué)習(xí)庫(kù),它提供了常用機(jī)器學(xué)習(xí)算法的分布式實(shí)現(xiàn)箭券,開(kāi)發(fā)者只需要有 Spark 基礎(chǔ)并且了解機(jī)器學(xué)習(xí)算法的原理净捅,以及方法相關(guān)參數(shù)的含義,就可以輕松的通過(guò)調(diào)用相應(yīng)的 API 來(lái)實(shí)現(xiàn)基于海量數(shù)據(jù)的機(jī)器學(xué)習(xí)過(guò)程辩块。

其次蛔六,Spark-Shell的即席查詢也是一個(gè)關(guān)鍵。算法工程師可以邊寫(xiě)代碼邊運(yùn)行废亭,邊看結(jié)果国章。spark提供的各種高效的工具正使得機(jī)器學(xué)習(xí)過(guò)程更加直觀便捷。比如通過(guò)sample函數(shù)豆村,可以非常方便的進(jìn)行抽樣液兽。

當(dāng)然,Spark發(fā)展到后面掌动,擁有了實(shí)時(shí)批計(jì)算四啰,批處理,算法庫(kù)粗恢,SQL柑晒、流計(jì)算等模塊等,基本可以看做是全平臺(tái)的系統(tǒng)眷射。把機(jī)器學(xué)習(xí)作為一個(gè)模塊加入到Spark中匙赞,也是大勢(shì)所趨佛掖。

三、Spark 機(jī)器學(xué)習(xí)庫(kù)MLLib

MLlib是Spark的機(jī)器學(xué)習(xí)(Machine Learning)庫(kù)涌庭,旨在簡(jiǎn)化機(jī)器學(xué)習(xí)的工程實(shí)踐工作芥被,并方便擴(kuò)展到更大規(guī)模。MLlib由一些通用的學(xué)習(xí)算法和工具組成脾猛,包括分類(lèi)撕彤、回歸、聚類(lèi)猛拴、協(xié)同過(guò)濾、降維等蚀狰,同時(shí)還包括底層的優(yōu)化原語(yǔ)和高層的管道API愉昆。具體來(lái)說(shuō),其主要包括以下幾方面的內(nèi)容:

機(jī)器學(xué)習(xí)算法:常用的學(xué)習(xí)算法麻蹋,如分類(lèi)跛溉、回歸、聚類(lèi)和協(xié)同過(guò)濾扮授;

特征處理:特征提取芳室、轉(zhuǎn)化、降維刹勃,和特征選擇堪侯;

管道(Pipeline):用于構(gòu)建、評(píng)估和調(diào)整機(jī)器學(xué)習(xí)管道的工具;

存儲(chǔ):保存和加載算法荔仁,模型和管道;

實(shí)用工具:線性代數(shù)伍宦,統(tǒng)計(jì),數(shù)據(jù)處理等工具乏梁。

Spark 機(jī)器學(xué)習(xí)庫(kù)從 1.2 版本以后被分為兩個(gè)包:

spark.mllib包含基于RDD的原始算法API次洼。Spark MLlib 歷史比較長(zhǎng),在1.0 以前的版本即已經(jīng)包含了遇骑,提供的算法實(shí)現(xiàn)都是基于原始的 RDD卖毁。

spark.ml?則提供了基于DataFrames?高層次的API,可以用來(lái)構(gòu)建機(jī)器學(xué)習(xí)工作流(PipeLine)落萎。ML Pipeline 彌補(bǔ)了原始 MLlib 庫(kù)的不足亥啦,向用戶提供了一個(gè)基于 DataFrame 的機(jī)器學(xué)習(xí)工作流式 API 套件。

使用 ML Pipeline API可以很方便的把數(shù)據(jù)處理模暗,特征轉(zhuǎn)換禁悠,正則化,以及多個(gè)機(jī)器學(xué)習(xí)算法聯(lián)合起來(lái)兑宇,構(gòu)建一個(gè)單一完整的機(jī)器學(xué)習(xí)流水線碍侦。這種方式給我們提供了更靈活的方法,更符合機(jī)器學(xué)習(xí)過(guò)程的特點(diǎn),也更容易從其他語(yǔ)言遷移瓷产。Spark官方推薦使用spark.ml站玄。如果新的算法能夠適用于機(jī)器學(xué)習(xí)管道的概念,就應(yīng)該將其放到spark.ml包中濒旦,如:特征提取器和轉(zhuǎn)換器株旷。開(kāi)發(fā)者需要注意的是,從Spark2.0開(kāi)始尔邓,基于RDD的API進(jìn)入維護(hù)模式(即不增加任何新的特性)晾剖,并預(yù)期于3.0版本的時(shí)候被移除出MLLib。

Spark在機(jī)器學(xué)習(xí)方面的發(fā)展非程菟裕快齿尽,目前已經(jīng)支持了主流的統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法〉平冢縱觀所有基于分布式架構(gòu)的開(kāi)源機(jī)器學(xué)習(xí)庫(kù)循头,MLlib可以算是計(jì)算效率最高的。MLlib目前支持4種常見(jiàn)的機(jī)器學(xué)習(xí)問(wèn)題:?分類(lèi)炎疆、回歸卡骂、聚類(lèi)和協(xié)同過(guò)濾。下表列出了目前MLlib支持的主要的機(jī)器學(xué)習(xí)算法:?


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子相艇,更是在濱河造成了極大的恐慌,老刑警劉巖螟蒸,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異崩掘,居然都是意外死亡七嫌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)苞慢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诵原,“玉大人,你說(shuō)我怎么就攤上這事挽放∩苋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵辑畦,是天一觀的道長(zhǎng)吗蚌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纯出,這世上最難降的妖魔是什么蚯妇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任敷燎,我火速辦了婚禮,結(jié)果婚禮上箩言,老公的妹妹穿的比我還像新娘硬贯。我一直安慰自己,他們只是感情好陨收,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布饭豹。 她就那樣靜靜地躺著,像睡著了一般务漩。 火紅的嫁衣襯著肌膚如雪拄衰。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天菲饼,我揣著相機(jī)與錄音肾砂,去河邊找鬼。 笑死宏悦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的包吝。 我是一名探鬼主播饼煞,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诗越!你這毒婦竟也來(lái)了砖瞧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嚷狞,失蹤者是張志新(化名)和其女友劉穎块促,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體床未,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竭翠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薇搁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斋扰。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖啃洋,靈堂內(nèi)的尸體忽然破棺而出传货,到底是詐尸還是另有隱情,我是刑警寧澤宏娄,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布问裕,位于F島的核電站,受9級(jí)特大地震影響孵坚,放射性物質(zhì)發(fā)生泄漏粮宛。R本人自食惡果不足惜窥淆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窟勃。 院中可真熱鬧祖乳,春花似錦、人聲如沸秉氧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)汁咏。三九已至亚斋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攘滩,已是汗流浹背帅刊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漂问,地道東北人赖瞒。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蚤假,于是被迫代替她去往敵國(guó)和親栏饮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348