從原理上來說,GBDT 和 SVM 哪個更強?為什麼?


Please google "No Free Lunch Theorems".

--------------------------------------------------------------------------

對於有監督學習,NFL證明在不對問題做任何假設和限定的情況下,不存在一個效果最優的分類器。所以,對於GBRT和SVM,總會在一個問題上GBRT比SVM更強。反之亦然。

換句話說,脫離了問題(數據)的性質,分布、大小、loss function,討論分類器的好壞是沒有意義的。


為了簡單,只討論一下分類的情況。

演算法很難比較說誰更強,而是誰更適應業務場景。

主要是特徵數量、訓練過程、可解釋性上面有很大的差異。

SVM 能夠訓練大量(上萬的詞)特徵,不用考慮特徵離散化或者分段,非線性映射可以很好的分類。

GBDT在特徵較少的時候(200以內),能夠高效bootstrap 抽取樣本和特徵,訓練多顆樹。能夠自動做特徵重要性排序,通過gini係數等指標判斷分割點。能夠表達非常複雜的規則。


1. 脫離實際場景談模型是沒有意義的

2. 一般來說,GBDT比較容易出效果

3. 把數據做好、把特徵做好,可能會有更好的效果


實際AVIRIS數據測試,200dimension,1w組數據,50%train,SVC已挑選(可能的)最優參數,GBDT也已挑選(可能的)最優參數,精度相差5%+,SVM對遙感圖像(已量化)的效果在單一演算法中(gbdt,xgboost,rf,mlp)無人能及,希望有些參考

最後補充一點,沒有最優的演算法,只有最適合某個數據集的演算法

也就是no free lunch原則


還是要看具體數據場景的,理論上不好分析吧。gbrt在高維稀疏特徵上表現一般,文本分類svm線性核效果比較好,數值特徵、特徵維度不高gbrt效果比較好。


no free lunch 是真的,從原理上,不好說,我覺得也很難有人能具體說明白,有文章可以證明boosting並沒有真正maximize margin。

從實際情況看,如果把gbdt看成一個單獨模型,在大部分數據上很難找到一個單模型beat它。


脫離了場景和假設談論哪種方法的好壞是沒有意義的。

分類樹方面我用的不多,但回歸樹方面個人使用感覺GBDT是非常強大的,可以作為非常優秀的單個回歸模型,提供很robust的預測、比較優秀和穩定的模型區分能力(Gini and KS)。


推薦閱讀:

南京大學LAMDA(周志華)組的實力如何?
目前大數據交易平台的主要目標用戶是誰?
如何去分析和獲取iTunes中每個應用的下載量以及不同分類的下載總量、收費和不收費的分別的下載量等等?從哪獲取這些數據呢?
大數據、數據挖掘在交通領域有哪些應用?

TAG:數據挖掘 | 機器學習 | 個性化推薦 | SVM | 深度學習DeepLearning |