選擇Spark機器學習API的四大機器學習演算法,你掌握了多少?
作者丨Andrew C. Oliver
翻譯丨雨言
編輯註:本文簡要介紹了四種經典的機器學習演算法。
本文將簡要介紹Spark機器學習庫(Spark MLlib』s APIs)的各種機器學習演算法,主要包括:統計演算法、分類演算法、聚類演算法和協同過濾演算法,以及各種演算法的應用。
你不是一個數據科學家。「根據科技和商業媒體報道,機器學習將防止全球變暖」,顯然只有中國的新聞媒體才會發布類似的虛假新聞,可能機器學習能夠識別虛假新聞吧(與分類演算法有關)?事實上,機器學習還真的可以呢!
那麼機器學習能做點什麼呢?你又將怎樣發現呢?如果你已經使用了Apache Spark進行批處理和流處理,那麼現在有一東西可以幫你更好地處理。有一個你在用Spark SQL和Spark流處理的時候很可能同時用到的東西,就是Spark MLlib,Spark MLlib是一個API形式的機器學習庫和統計演算法。
下面簡要介紹一下四種最基本的MLlib APIs,主要包括它們的作用和應用。
統計演算法
這些API主要是用來進行A-B檢驗或者A-B-C檢驗。通常在商業中,我們認為,如果兩個東西的平均值相等,那麼這兩個東西就大體相當了。其實不一定。試想一下,一個汽車製造商換掉汽車座椅之後,做一個關於座椅舒適度的調查。對於個子矮小的用戶來說,他們可能覺得座椅更舒服了,但是對於個子高大的用戶來說,他們可能會覺得非常不舒服,以至於放棄購買汽車,而個子中等的用戶剛好平衡了這個差異。通常,新座椅也許要更舒服一些,但是,如果沒有身高超過6英尺的用戶購買的話,我們還是失敗了。根據Spark的假設測試,你可以先做一個皮爾遜卡方值檢驗或者一個柯爾莫可洛夫-斯米洛夫檢驗,先測試一下某個東西的「合適程度」,或者它的取值是否符合「正態分布」。這種方法基本適用於所有需要比較兩串數據的情況。「合適程度」表明「你是否喜歡」,或者說新演算法是否達到了「優於」舊演算法的目的。趕緊報名參加Coursera的基礎統計課程吧。
分類演算法
你的屬性是什麼?如果你手頭有一堆屬性不同的東西,你可以讓電腦對這些東西進行正確的歸類。這裡的技巧就是要把各個屬性對應到各個「類」,而對於這個分類,並沒有標準的正確答案,錯誤答案倒是不少。如果你認為某人在看一組表格並把它們歸類,這就是分類演算法。你在使用垃圾郵件過濾器時就已經接觸過分類演算法了,垃圾郵件過濾器就是過濾掉包含垃圾郵件中常見詞語的郵件。分類演算法還可以用來診斷患者病情或用來預測哪些用戶有可能取消訂購有線廣播電視(一般是不看體育節目的人)。從本質上來說,分類學習是基於過去的數據標籤,然後把這些標籤應用到未來的發展預測。在Coursera的機器學習專業化中,有一門專門針對分類學習的課程,7月10開始開課,現在報名參加應該也來得及。
聚類演算法
當你跟一個人討論「機器學習」的時候,如果對方只能說出k-means演算法,那說明他只看過「小抄」,什麼都不懂。如果你手上有一組屬性,你可以找到一些關鍵點把這些屬性歸為各個類中,這就是聚類演算法。你能說出各個不同類之間的區別,但是也有可能有些類是比較接近的。有可能一個大的東西和一個小的東西被歸為了同一類,而另一個更小的東西卻被歸為了大的一類。再加上其他各種複雜的屬性和不同的維度,所以其實聚類演算法也有很多種。聚類演算法和分類演算法不同,但是聚類演算法經常用來對一群人分組,二者最大的區別在於,在聚類演算法中,我們不知道集群前面的標籤(或組)是什麼,而在分類演算法中,標籤就很明確了。客戶細分是一個常見的應用,不同的客戶有不一樣的喜好特點,比如可以把客戶分成信用組、保留風險組或購買組(對於新鮮農產品或熟食),但是也有可能要根據已有數據進行詐騙識別的分類。Coursera上有專門講解聚類演算法的講座系列,沒錯,他們確實有包括k-means演算法,但有點詭異的是,有一半的教授是漂浮在黑板表面的(你去看了之後就知道我在說什麼了)。
協同過濾演算法
好吧,協同過濾演算法是一種大眾化的演算法。我們公司就用協同過濾演算法去提高搜索結果的精確度,我還做過一個相關的講座,如果有足夠多的人點擊第二張貓的照片,那它一定比第一張貓的圖片好。在一個社交或電子商務環境中,如果你充分運用各種用戶的「喜歡」和「不喜歡」,你就可以找到出對於大部分用戶或者某一特定用戶群體來說「最好的」結果,這是通過個性化系統的多屬性過濾來實現的,例如,當你在Google地圖或Yelp上搜索餐廳(你可以根據服務質量、食物種類、內部風格、是否適合小孩、是否有情調、用戶評論和消費水平等等進行過濾)時使用的就是這個原理。斯坦福大學機器學習課程有關於協同過濾演算法的專題講座,7月10日開課(現在也還可以報名)。
上述並不是關於機器學習的所有演算法,但也算是使用過程中最常見的幾種演算法了。以上四個大類中,每一類中都包含好幾個可選演算法或者衍生演算法,那要選哪個呢?好吧,具體選用哪一種演算法是考慮數學背景、實驗過程和已知數據等各種因素的綜合結果。記住,這些演算法都只是你分析問題的工具而已,也有可能使用這些演算法之後得到的是沒有用的結果。
如果你剛接觸機器學習,那Coursera上的機器學習基礎(https://www.coursera.org/learn/ml-foundations)可以帶你快速入門——請忽略那一半的詭異的漂浮的教授。
點擊展開全文
※25年、博士、C/C 程序員的告白:多年來代碼依然存在bug
※GitHub里的MySQL基礎架構自動化測試
※開發者應該知道的代碼審查工具,杜絕代碼bug
※九張圖帶你了解全宇宙最神秘的團體——程序員
TAG:CSDN |
※Pick一下?Python機器學習實用技巧
※Pick 一下?Python 機器學習實用技巧
※Python與機器學習
※用Python 實現的基礎機器學習演算法
※五位專家跟你講講為啥Python更適合做AI/機器學習
※AI機器學習-決策樹-python實現CART演算法
※機器學習與Scikit Learn學習庫
※ARM公布機器學習新平台Trillium的更多細節
※用Python進行機器學習
※為什麼Python更適合做AI/機器學習?五位專家給你答案
※ClickHouse如何結合自家的GNDT演算法庫CatBoost來做機器學習
※sklearn機器學習導論
※Machine Learning:十大機器學習演算法
※AI視野:Facebook監控機器、Uber自駕車撞死行人、貴公司是否為AI做好準備、具有設備端機器學習能力的智能手機會更聰明
※開源機器學習伺服器——PredictionIO
※有關機器學習Malware分類器的那些事
※Python編程與機器學習研討會
※圖靈獎得主 Judea Pearl:機器學習是有局限的,AI 已經分化了
※Python 機器學習:多元線性回歸
※DeepMind推出新演算法,利用機器學習診斷三種常見眼疾