今天和大家分享一下機器學習中常見的六種分類算法:K近鄰、決策樹、樸素貝葉斯、邏輯回歸、支持向量機、隨機森林、AdaBoost、GBDT、XGBoost。
下面,介紹了各個算法的概念及特點。
KNN
決策樹
樸素貝葉斯
邏輯回歸
支持向量機
隨機森林
AdaBoost
GBDT
XGBoost
一、K 近鄰(KNN)
k-近鄰算法(K-Nearest neighbors,KNN),它采用測量不同特征值之間的距離方法進行分類,即是給定一個訓練數(shù)據(jù)集,對新的輸入實例,在訓練數(shù)據(jù)集中找到與該實例最鄰近的K個實例(也就是上面所說的K個鄰居), 這K個實例的多數(shù)屬于某個類,就把該輸入實例分類到這個類中。
KNN 是一種基本分類與回歸方法,其基本做法是:給定測試實例,基于某種距離度量找出訓練集中與其最靠近的k個實例點,然后基于這k個最近鄰的信息來進行預測。
通常,在分類任務中可使用“投票法”,即選擇這k個實例中出現(xiàn)最多的標記類別作為預測結果;在回歸任務中可使用“平均法”,即將這k個實例的實值輸出標記的平均值作為預測結果;還可基于距離遠近進行加權平均或加權投票,距離越近的實例權重越大。
k近鄰法不具有顯式的學習過程,事實上,它是懶惰學習(lazy learning)的著名代表,此類學習技術在訓練階段僅僅是把樣本保存起來,訓練時間開銷為零,待收到測試樣本后再進行處理。
k近鄰法的三要素:距離度量、k值的選擇及分類決策規(guī)則是k近鄰法的三個基本要素。
kNN算法特點:
優(yōu)點:精度高、對異常值不敏感、無數(shù)據(jù)輸入假定
缺點:計算復雜度高、空間復雜度高
適用數(shù)據(jù)范圍:數(shù)值型和標稱型
二、決策樹
決策樹(Decision Trees)是一種非參監(jiān)督學習方法,即沒有固定的參數(shù),對數(shù)據(jù)進行分類或回歸學習。決策樹的目標是從已知數(shù)據(jù)中學習得到一套規(guī)則,能夠通過簡單的規(guī)則判斷,對未知數(shù)據(jù)進行預測。
決策樹是一種基本的分類與回歸方法。在分類問題中,表示基于特征對實例進行分類的過程,可以認為是 if-then 的集合,也可以認為是定義在特征空間與類空間上的條件概率分布。
決策樹通常有三個步驟:特征選擇、決策樹的生成、決策樹的修剪。
用決策樹分類:從根節(jié)點開始,對實例的某一特征進行測試,根據(jù)測試結果將實例分配到其子節(jié)點,此時每個子節(jié)點對應著該特征的一個取值,如此遞歸的對實例進行測試并分配,直到到達葉節(jié)點,最后將實例分到葉節(jié)點的類中。
決策樹模型
決策樹學習的目標:根據(jù)給定的訓練數(shù)據(jù)集構建一個決策樹模型,使它能夠對實例進行正確的分類。
決策樹學習的本質:從訓練集中歸納出一組分類規(guī)則,或者說是由訓練數(shù)據(jù)集估計條件概率模型。
決策樹學習的損失函數(shù):正則化的極大似然函數(shù)。
決策樹學習的測試:最小化損失函數(shù)。
決策樹原理和問答猜測結果游戲相似,根據(jù)一系列數(shù)據(jù),然后給出游戲的答案。
決策樹算法特點:
優(yōu)點:計算復雜度不高,輸出結果易于理解,對中間值的缺失不敏感,可以處理不相關特征數(shù)據(jù)。
缺點:可能會產生過度匹配問題。
適用數(shù)據(jù)類型:數(shù)值型和標稱型
三、樸素貝葉斯
樸素貝葉斯(Naive Bayesian)是基于貝葉斯定理和特征條件獨立假設的分類方法,它通過特征計算分類的概率,選取概率大的情況進行分類。
樸素貝葉斯是經典的機器學習算法之一,也是為數(shù)不多的基于概率論的分類算法。對于大多數(shù)的分類算法,在所有的機器學習分類算法中,樸素貝葉斯和其他絕大多數(shù)的分類算法都不同。比如決策樹,KNN,邏輯回歸,支持向量機等,他們都是判別方法,也就是直接學習出特征輸出Y和特征X之間的關系,要么是決策函數(shù),要么是條件分布。但是樸素貝葉斯卻是生成方法,該算法原理簡單,也易于實現(xiàn)。
樸素貝葉斯
在scikit-learn中,一共有3個樸素貝葉斯的分類算法類。分別是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先驗為高斯分布的樸素貝葉斯,MultinomialNB就是先驗為多項式分布的樸素貝葉斯,而BernoulliNB就是先驗為伯努利分布的樸素貝葉斯。
樸素貝葉斯算法特點:
優(yōu)點:在數(shù)據(jù)較少的情況下依然有效,可以處理多類別問題。
缺點:對于輸入數(shù)據(jù)的準備方式較為敏感。
適用數(shù)據(jù)類型:標稱型數(shù)據(jù)
四、邏輯回歸
邏輯(Logistic) 回歸是一種統(tǒng)計方法,用于根據(jù)先前的觀察結果預測因變量的結果。它是一種回歸分析,是解決二分類問題的常用算法。
邏輯回歸算法特點:
優(yōu)點:計算代價不高,易于理解和實現(xiàn)
缺點:容易欠擬合,分類精度可能不高(這里是使用構造數(shù)據(jù),效果較佳,并且運行多次,結果可能不一樣)
五、支持向量機(SVM)
支持向量機(簡稱SVM)英文為Support Vector Machine。它是一 種監(jiān)督式學習的方法,它廣泛的應用于統(tǒng)計分類以及回歸分析中。支持向量機(Support Vector Machine)是一種十分常見的分類器,核心思路是通過構造分割面將數(shù)據(jù)進行分離。
SVM 是一類按監(jiān)督學習方式對數(shù)據(jù)進行二元分類的廣義線性分類器,其決策邊界是對學習樣本求解的最大邊距超平面,可以將問題化為一個求解凸二次規(guī)劃的問題。與邏輯回歸和神經網(wǎng)絡相比,支持向量機,在學習復雜的非線性方程時提供了一種更為清晰,更加強大的方式。
具體來說就是在線性可分時,在原空間尋找兩類樣本的最優(yōu)分類超平面。在線性不可分時,加入松弛變量并通過使用非線性映射將低維度輸入空間的樣本映射到高維度空間使其變?yōu)榫€性可分,這樣就可以在該特征空間中尋找最優(yōu)分類超平面。
SVM使用準則:n 為特征數(shù), m 為訓練樣本數(shù)。
如果相較于m而言,n要大許多,即訓練集數(shù)據(jù)量不夠支持我們訓練一個復雜的非線性模型,我們選用邏輯回歸模型或者不帶核函數(shù)的支持向量機。
如果n較小,而且m大小中等,例如n在 1-1000 之間,而m在10-10000之間,使用高斯核函數(shù)的支持向量機。
如果n較小,而m較大,例如n在1-1000之間,而