關於SVM,LR,和GBDT的介紹理解

關於SVM,LR,和GBDT的介紹理解

LR基本可以被劃分為線性模型,模型本身並不能完全解決非線性問題。但是我們在使用LR的過程中,往往要對數據進行稀疏化,例如one-hot操作。這樣操作會將特徵的向量空間進行升維,使得問題變得線性可分。我們在工業級的數據中,往往輸入模型的特徵維度過百萬,千萬甚至上億,很多都是這種特徵稀疏化造成的。

SVM

SVM本身是一個線性模型,其非線性擬合能力與核函數有關。在SVM的核函數為線性核的時候,其性能與LR很類似,在少量數據集上比LR多了些泛化能力,這一點是支持向量造成的。當SVM採用一些非線性核,比如徑向基或者高斯核的時候,其非線性擬合能力比較好。在中小規模的數據集上,SVM分類效果很強的,相比於GBDT,其能夠更好的控制過擬合,這一點是其原理造成的。其也可以使用在高維稀疏數據集上,這一點是GBDT的硬傷。但是其缺點也很明顯,SVM對缺失值很敏感,需要標準化(歸一化)操作,在數據規模大的時候速度效率低等缺點(速度效率與核函數和支持向量數量有關)

GBDT

GBDT是一個非線性模型,它是決策樹出身,天生就可以擬合各種非線性問題。GBDT受數據量大小的影響相對來說較小,因為GBDT複雜度隨著數據發生變化。數據複雜它可以生成複雜的樹,數據簡單可以生成簡單的樹,這裡的數據簡單和複雜是對其分類難度來說的。但其缺點也是比較明顯,很容易過擬合,而且由於其對列進行操作,GBDT對高維稀疏向量效果就很不好。百萬維的數據,GBDT會不知道從哪裡下手。當然也正是由於其對列操作,所以其對缺失值不敏感,最壞情況就是那一列捨棄不要,不會造成局部噪聲過大影響全局的情況。因為其切分樹枝操作,只要找到合理的損失函數,GBDT對離散數據和連續數據都很好使用,這裡的離散數據指的是稀疏化之前,比如班級序號這種數據,不像LR這種線性模型只對高維稀疏線性可分數據效果明顯。


分享到:


相關文章: