這9種經典分類器該怎麼選擇?以股票市場分析為例
在解決大數據分類問題時,一般都離不開各種經典的分類器。這些分類器主要有:SVM、樸素Bayes、BayesNet、線性回歸、Logistic回歸、多層感知機、KNN、 決策樹(J48 )、隨機樹等。然而面對這麼多種分類器,我們如何根據具體的應用場景選擇合適的分類器?
要選擇一個分類器,可以從四個方面考慮。
1、數據變數類型
我們可以把各種類型的數據劃分為數值型變數(含連續型和離散型變數)、分類型變數。身高、體重屬於數值型變數(連續),月份、年份屬於數值型變數(離散),(男女、對錯、血型等)則屬於分類型變數。
如圖是一個取自社交媒體股票市場研究資料庫的一小部分樣本,其中ss是社交媒體對股票的觀點值(p1表示看漲、p2表示看跌),r2是股票的關注度數值,sb是該股票的實際漲跌情況(u表示漲、d表示跌),一條記錄是一天的數據。
在選擇分類器時,最主要的依據之一是類別標籤的數據類型。
在上述經典分類器中,SVM、樸素Bayes、BayesNet、J48、Logistics都只能用於類別標籤為分類型變數的情況。而線性回歸,則只能用於數值型變數作為類別的情況。其他三種,則對於數值型變數、分類型變數沒有限制。這些分類器對樣本特徵數據也沒有什麼限制,可以是屬於數值型,也可以是分類型的變數。
根據這些原則,針對這個例子的數據,我們可以選擇的分類器有:SVM、樸素Bayes、BayesNet、Logistic回歸、多層感知機、KNN、 決策樹(J48 )、隨機樹。
2、數據分布情況
在大數據分類挖掘中,各個類別的訓練樣本個數之間差異程度,也決定了分類器的選擇。
在一些場合下,某些類別的數據可能特別少,比如在信息安全的入侵檢測中,搜集入侵行為的樣本並不是太容易,從而導致正常行為的樣本數量遠遠大於入侵行為的樣本數量。工科院校里要區分男生和女生的消費習慣、金融領域的風險控制都是屬於這種情況。
當少數類的樣本數只佔總體的的10%-20%時,一般稱為非平衡分類。針對這種分類問題,以上經典的分類器都不合適,會出現明顯的類別偏斜。這種情況,就需要用集成或重採樣了,以後再寫一篇介紹非平衡分類方法。
基於這個考慮,檢測了從社交媒體股票市場研究資料庫中選擇出來的2088個樣本,它們在漲/u、跌/d上的分布如下:
d932
u1156
可以看出不屬於非平衡分類問題,可以使用經典分類器。
3、分類器的可調參數及其敏感性
在上述經典分類器中,除了樸素Bayes分類器外,其他分類器都存在一些可調參數,但是以下兩個分類器的參數敏感性較大,對分類演算法有較大影響:
(1)KNN中鄰居個數K
(2)SVM中的核函數
4、分類的準確性
這個問題就很難定論了,一般來說需要針對具體應用的數據進行測試分析,再做決定。測試的方法就是進行交叉驗證,根據分類性能指標F、R、F1等來決定。
在上述數據中,使用這些經典分類器進行交叉驗證後,得到的F1值如下。(KNN、SVM已按最佳參數)
樸素Bayes: 0.428
BayesNet:0.433
SVM: 0.526
Logistic:0.440
多層感知機:0.441
KNN:0.511
J48:0.395
隨機樹:0.531
可見,SVM和隨機樹對於本文的分類是比較合適的選擇。
當然,面對分類型變數,經典分類器的處理實際上過於簡單,只是把它們當作字元串來計算距離,因此對於"shanghai","beijing"是完全不同的,為了提高分類的準確性,就需要引入必要的語義對經典分類器進行改造。
作者編著的《互聯網大數據處理技術與應用》專著(清華大學出版社,2017)、同名公眾號,專註於大數據技術的相關科學和工程知識傳播,同時也為讀者提供一些拓展閱讀材料。本書中也談到了大數據可視化,本文也算是對書中這部分的一個拓展和補充。
關注後可閱讀以前推送的原創文章,部分如下。