大數據算法第三講:算法選擇

大數據算法第三講:算法選擇

版權所有©德塔精要,轉載請註明出處

通常說道算法,可能大家更多的是聯想到各種貪心算法,退火算法,蟻群算法,以及近些年來特別熱的機器學習和深度學習中的各種算法。但是面對這些浩如繁星的算法以及各種基礎算法的變種,在面對具體問題時,如何選擇有效的算法解決具體問題,是否有一些基本的處理問題的方法或者套路,本篇就大家梳理一下通常在面對具體問題時如何選擇算法的問題。

算法基礎知識

大數據算法第三講:算法選擇

如上圖所示,算法問題目前分為三大類,分別是監督學習、非監督學習和強化學習。

1監督學習

顧名思義,就是有監督信息的學習,這裡的監督信息指的是標籤信息。根據標籤信息學習的算法就是監督學習,例如預測一張人臉圖片是否為男女的分類算法,在訓練數據集中的男女標籤信息就是監督信息。

2非監督學習

非監督學習指的是不需要監督信息的學習算法,典型的對社交軟件中人群愛好的劃分問題,根據社交軟件中統計的多維度用戶的愛好信息,將用戶分為不同的用戶群體。可以使用聚類方法解決這一問題,解決這過程不需要標籤信息。

3強化學習

就是通過算法運行的結果在實際中的表現來衡量算法輸出的優劣進而優化算法。例如在指導用戶打flappy bird的遊戲中,如果算法輸出的下一步遊戲未終止(還能玩,沒死掉)則判定當前的算法輸出得到了一個獎賞得分,同理,如果遊戲終止,這算法的輸出是一個懲罰得分。強化學習的算法就是通過增大獎賞得分的概率,減少懲罰得分的概率的方向優化函數,使算法達到自學習的目的。使每一步的輸出都是獎賞的輸出。

根據解決問題進行劃分

大數據算法第三講:算法選擇

針對算法實現的方式的分類對解決問題的幫助是有限的,因此這部分我們討論一些針對具體問題該使用那種類型的算法。如上圖所示,預測一個類別就是分類問題,預測具體數值就是迴歸問題,發現數據的結構信息就是聚類問題,發現數據的異常點,就是異常值檢測問題。如下詳細描述各個問題。

1預測類別

通過利用收集到的數據信息,來預測位置事件屬於那一類別的問題就是分類問題。例如通過分析歷史數據來預測明天是否會下雨的問題,就是典型的分類問題。

2迴歸算法

與分類問題很相似,只不過迴歸問題用來預測具體的數值,例如根據歷史的數據信息來預測明天的氣溫就是典型的迴歸問題。

3聚類算法

發現數據的潛在規律,例如根據社交軟件中用戶的興趣愛好對社交人群進行劃分就是聚類問題,可以找出具有相似行為特徵的群體。

4異常檢測

對數據中存在明顯的異常信息進行檢測,例如信用卡交易數據中是否包含了異常交易數據,這部分就是找出數據中明顯與其他數據所表現的規律不同的信息。

具體算法選擇

大數據算法第三講:算法選擇

如上圖所示,在具體算法選擇上,基於Python的scikit-learn機器學習算法庫提供一套算法選擇方法,參考這一部分(不侷限於圖中的算法和方法,由於這張圖大多考慮了scikit中算法的實現情況)具體介紹一下算法的選擇如下:

1首先統計數據的容量當數據過小(小於50條)時,建議收集更多的數據,因為過小的數據訓練的算法容易受噪聲的影響比較大,算法效果一般。


2判斷是否為預測一個類別的問題,如果是並且訓練數據中包含標籤信息則為分類問題。


3如果是預測一個類別的問題但是訓練數據中不包含標籤信息則是一個聚類問題


4如果不是一個分類問題,是預測一個具體的數值問題一般為迴歸問題,如果不是預測具體數值對數據進行分析,挖掘數據中的異常值等問題,這時可以考慮一下是否為降維問題。


5對於分類問題,如果數據量小於100k,建議用線性SVM的方法,如果效果不好根據是否為文本信息考慮用貝葉斯方法或者K臨近分類法。如果數據量過大可以考慮加入正則化的方法來防止過擬合的問題來保證模型的穩定性。


6對於聚類問題,如果我們知道需要劃分的數據集個數一般使用Kmeans等聚類方法即可。如果無法獲知聚類的個數一般使用mean-shift的基於密度的算法可以對模型進行聚類評估。


7對於迴歸問題,如果數據量不大,直接使用SVM之類的迴歸即可,當然如果數據量過大可以考慮使用L1,L2的正則化方法來對權值進行正則化來防止過擬合問題的出現。這部分算法的選擇與分類問題很相似。


8對於降維問題,如果是考慮為分類問題的輸入維度進行削減,一般考慮LDA方法可以很好的對每個類別上的數據進行降維處理。如果單純對輸入維度進行降維,將原有維度信息轉移到新的維度(根據維度的正交化來達到降維的目的)一般使用PCA方法是比較主流的方法。


小結

對於算法的選擇,有時不能找到確定的方法,也就是說很難根據數據是使用場景就完全鎖定了那一個具體的算法,但是根據卻可以縮小到指定的幾個常用算法。然後通過測試集和訓練集在這幾個算法上做一些Demo。根據Demo反應的質量決定最終使用的算法那個。看似比較費力,其實是比較穩妥和精準的方法。

相關推薦

推薦中...