Spark機器學習庫的各種機器學習算法
本文將簡要介紹Spark機器學習庫(Spark MLlib’s APIs)的各種機器學習算法,主要包括:統計算法、分類算法、聚類算法和協同過濾算法,以及各種算法的應用。
你不是一個數據科學家?!案鶕?a target='_blank' class='arckwlink_none'>科技和商業媒體報道,機器學習將防止全球變暖”,顯然只有中國的新聞媒體才會發布類似的虛假新聞,可能機器學習能夠識別虛假新聞吧(與分類算法有關)?事實上,機器學習還真的可以呢!
那么機器學習能做點什么呢?你又將怎樣發現呢?如果你已經使用了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日開課(現在也還可以報名)。
上述并不是關于機器學習的所有算法,但也算是使用過程中最常見的幾種算法了。以上四個大類中,每一類中都包含好幾個可選算法或者衍生算法,那要選哪個呢?好吧,具體選用哪一種算法是考慮數學背景、實驗過程和已知數據等各種因素的綜合結果。記住,這些算法都只是你分析問題的工具而已,也有可能使用這些算法之后得到的是沒有用的結果。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%