【機器學習】常用算法PK

KNN算法

一、KNN算法的優點

 

1、KNN是一種在線技術,新數據可以直接加入數據集而不必進行重新訓練

2、KNN理論簡單,容易實現

二、KNN算法的缺點

1、對於樣本容量大的數據集計算量比較大。

2、樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多。

3、KNN每一次分類都會重新進行一次全局運算。

4、k值大小的選擇。

三、KNN算法應用領域

文本分類、模式識別、聚類分析,多分類領域

支持向量機(SVM)

一、  SVM優點

1、解決小樣本下機器學習問題。

2、解決非線性問題。

3、無局部極小值問題。(相對於神經網絡等算法)

4、可以很好的處理高維數據集。

5、泛化能力比較強。

二、SVM缺點

1、對於核函數的高維映射解釋力不強,尤其是徑向基函數。

2、對缺失數據敏感。

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

SVM也叫支持向量機,其把數據映射到多維空間中以點的形式存在,然後找到能夠分類的最優超平面,最後根據這個平面來分類。SVM能對訓練集之外的數據做很好的預測、泛化錯誤率低、計算開銷小、結果易解釋,但其對參數調節和核函數的參數過於敏感。個人感覺SVM是二分類的最好的方法,但也僅限於二分類。如果要使用SVM進行多分類,也是在向量空間中實現多次二分類。

SVM有一個核心函數SMO,也就是序列最小最優化算法。SMO基本是最快的二次規劃優化算法,其核心就是找到最優參數α,計算超平面後進行分類。SMO方法可以將大優化問題分解爲多個小優化問題求解,大大簡化求解過程。某些條件下,把原始的約束問題通過拉格朗日函數轉化爲無約束問題,如果原始問題求解棘手,在滿足KKT的條件下用求解對偶問題來代替求解原始問題,使得問題求解更加容易。 SVM還有一個重要函數是核函數。核函數的主要作用是將數據從低位空間映射到高維空間。詳細的內容我就不說了,因爲內容實在太多了。總之,核函數可以很好的解決數據的非線性問題,而無需考慮映射過程。

AdaBoost算法

一、  AdaBoost算法優點

1、很好的利用了弱分類器進行級聯。

2、可以將不同的分類算法作爲弱分類器。

3、AdaBoost具有很高的精度。

4、相對於bagging算法和Random Forest算法,AdaBoost充分考慮的每個分類器的權重。

二、Adaboost算法缺點

1、AdaBoost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。

2、數據不平衡導致分類精度下降。

3、訓練比較耗時,每次重新選擇當前分類器最好切分點。

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

boosting基於元算法(集成算法)。即考慮其他方法的結果作爲參考意見,也就是對其他算法進行組合的一種方式。說白了,就是在一個數據集上的隨機數據使用一個分類訓練多次,每次對分類正確的數據賦權值較小,同時增大分類錯誤的數據的權重,如此反覆迭代,直到達到所需的要求。AdaBoost泛化錯誤率低、易編碼、可以應用在大部分分類器上、無參數調整,但對離羣點敏感。該方法其實並不是一個獨立的方法,而是必須基於元方法進行效率提升。個人認爲,所謂的“AdaBoost是最好的分類方法”這句話是錯誤的,應該是“AdaBoost是比較好的優化方法”纔對。

三、AdaBoost應用領域

模式識別、計算機視覺領域,用於二分類和多分類場景

樸素貝葉斯算法

一、  樸素貝葉斯算法優點

1、對大數量訓練和查詢時具有較高的速度。即使使用超大規模的訓練集,針對每個項目通常也只會有相對較少的特徵數,並且對項目的訓練和分類也僅僅是特徵概率的數學運算而已。

2、支持增量式運算。即可以實時的對新增的樣本進行訓練。

3、樸素貝葉斯對結果解釋容易理解。

二、樸素貝葉斯缺點

1、由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。

三、樸素貝葉斯應用領域

文本分類、欺詐檢測中使用較多

Logistic迴歸算法

一、logistic迴歸優點

1、計算代價不高,易於理解和實現

二、logistic迴歸缺點

1、容易產生欠擬合。

2、分類精度不高。

三、logistic迴歸應用領域

用於二分類領域,可以得出概率值,適用於根據分類概率排名的領域,如搜索排名等。

Logistic迴歸的擴展softmax可以應用於多分類領域,如手寫字識別等。

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

     Logistic迴歸主要是用來分類的,而非預測。迴歸就是將一些數據點用一條直線對這些點進行擬合。而Logistic迴歸是指根據現有數據對分類邊界線建立迴歸公式,以此進行分類。該方法計算代價不高,易於理解和實現,而且大部分時間用於訓練,訓練完成後分類很快;但它容易欠擬合,分類精度也不高。主要原因就是Logistic主要是線性擬合,但現實中很多事物都不滿足線性的。即便有二次擬合、三次擬合等曲線擬合,也只能滿足小部分數據,而無法適應絕大多數數據,所以迴歸方法本身就具有侷限性。但爲什麼還要在這裏提出來呢?因爲迴歸方法雖然大多數都不合適,但一旦合適,效果就非常好。
     Logistic迴歸其實是基於一種曲線的,“線”這種連續的表示方法有一個很大的問題,就是在表示跳變數據時會產生“階躍”的現象,說白了就是很難表示數據的突然轉折。所以用Logistic迴歸必須使用一個稱爲“海維塞德階躍函數”的Sigmoid函數來表示跳變。通過Sigmoid就可以得到分類的結果。
爲了優化Logistic迴歸參數,需要使用一種“梯度上升法”的優化方法。該方法的核心是,只要沿着函數的梯度方向搜尋,就可以找到函數的最佳參數。但該方法在每次更新迴歸係數時都需要遍歷整個數據集,對於大數據效果還不理想。所以還需要一個“隨機梯度上升算法”對其進行改進。該方法一次僅用一個樣本點來更新迴歸係數,所以效率要高得多。

人工神經網絡

一、  神經網絡優點

1、分類準確度高,學習能力極強。

2、對噪聲數據魯棒性和容錯性較強。

3、有聯想能力,能逼近任意非線性關係。

二、神經網絡缺點

1、神經網絡參數較多,權值和閾值。

2、黑盒過程,不能觀察中間結果。

3、學習過程比較長,有可能陷入局部極小值。

三、人工神經網絡應用領域

目前深度神經網絡已經應用與計算機視覺,自然語言處理,語音識別等領域並取得很好的效果。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章