機器學習常見算法及其優缺點

一、決策樹

決策樹優點

1、決策樹易於理解和解釋,可以可視化分析,容易提取出規則。
2、可以同時處理標稱型和數值型數據。
3、測試數據集時,運行速度比較快。
4、決策樹可以很好的擴展到大型數據庫中,同時它的大小獨立於數據庫大小。

決策樹缺點

1、對缺失數據處理比較困難。
2、容易出現過擬合問題。
3、忽略數據集中屬性的相互關聯。
4、ID3算法計算信息增益時結果偏向數值比較多的特徵。

改進措施

1、對決策樹進行剪枝。可以採用交叉驗證法和加入正則化的方法。
2、使用基於決策樹的combination算法,如bagging算法,randomforest算法,可以解決過擬合的問題。

常見算法

1) C4.5算法

ID3算法是以信息論爲基礎,以信息熵和信息增益度爲衡量標準,從而實現對數據的歸納分類。ID3算法計算每個屬性的信息增益,並選取具有最高增益的屬性作爲給定的測試屬性。C4.5算法核心思想是ID3算法,是ID3算法的改進,改進方面有:

  • 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
  • 在樹構造過程中進行剪枝;
  • 能處理非離散的數據;
  • 能處理不完整的數據。

優點
產生的分類規則易於理解,準確率較高。
缺點:
1)在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效;
2)C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。

增益率計算:
在這裏插入圖片描述
各個特徵的固有值IV(a):
在這裏插入圖片描述
特徵a的取值數量越多,則IV(a)越大
信息增益及信息熵增:
在這裏插入圖片描述
a:樣本集中的某一特徵
Dv:某特徵所有取值爲v 的樣本的集合
信息熵計算:
在這裏插入圖片描述

2) CART分類與迴歸樹

是一種決策樹分類方法,採用基於最小距離的基尼指數估計函數,用來決定由該子數據集生成的決策樹的拓展形。如果目標變量是標稱的,稱爲分類樹;如果目標變量是連續的,稱爲迴歸樹。分類樹是使用樹結構算法將數據分成離散類的方法。
優點:
1)非常靈活,可以允許有部分錯分成本,還可指定先驗概率分佈,可使用自動的成本複雜性剪枝來得到歸納性更強的樹。
2)在面對諸如存在缺失值、變量數多等問題時CART 顯得非常穩健。

基尼指數:
在這裏插入圖片描述
那給定一個訓練集,它的基尼指數又是什麼呢? 假設訓練集中有K類,C1,C2,C3…Ck 那麼其基尼指數爲:在這裏插入圖片描述
和上式的第二項對應,更進一步,如果訓練樣本被特徵A的是否取某一個值a而被分成D1和D2兩部分,那麼在特徵A的條件下的基尼指數爲:
在這裏插入圖片描述
相當於對根據特徵A劃分的兩個小集合分別求基尼指數然後根據經驗概率取期望得到特徵A下的D的基尼指數。基尼指數表示集合D的不確定性,而基尼指數Gini(D,A)表示經A=a分割後集合的不確定性,基尼指數越大,集合不確定性就越大,這跟熵的概念類似,心細的讀者也發現,本篇文章和上篇在公式上有諸多相似之處。

分類算法

1)KNN算法

優點
1)KNN是一種在線技術,新數據可以直接加入數據集而不必進行重新訓練
2)KNN理論簡單,容易實現

缺點
1)對於樣本容量大的數據集計算量比較大。
2)樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多。
3)KNN每一次分類都會重新進行一次全局運算。
4)k值大小的選擇。

應用領域:

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

2) 支持向量機(SVM)

支持向量機是一種基於分類邊界的方法。其基本原理是(以二維數據爲例):如果訓練數據分佈在二維平面上的點,它們按照其分類聚集在不同的區域。基於分類邊界的分類算法的目標是,通過訓練,找到這些分類之間的邊界(直線的――稱爲線性劃分,曲線的――稱爲非線性劃分)。對於多維數據(如N維),可以將它們視爲N維空間中的點,而分類邊界就是N維空間中的面,稱爲超面(超面比N維空間少一維)。線性分類器使用超平面類型的邊界,非線性分類器使用超曲面。
支持向量機的原理是將低維空間的點映射到高維空間,使它們成爲線性可分,再使用線性劃分的原理來判斷分類邊界。在高維空間中是一種線性劃分,而在原有的數據空間中,是一種非線性劃分。

優點:
1)解決小樣本下機器學習問題。
2)解決非線性問題。
3)無局部極小值問題。(相對於神經網絡等算法)
4)可以很好的處理高維數據集。
5)泛化能力比較強。

缺點:
1)對於核函數的高維映射解釋力不強,尤其是徑向基函數。
2)對缺失數據敏感。
應用領域:
文本分類、圖像識別、主要二分類領域

3) 樸素貝葉斯算法

優點:
1)對大數量訓練和查詢時具有較高的速度。即使使用超大規模的訓練集,針對每個項目通常也只會有相對較少的特徵數,並且對項目的訓練和分類也僅僅是特徵概率的數學運算而已。
2)支持增量式運算。即可以實時的對新增的樣本進行訓練。
3)樸素貝葉斯對結果解釋容易理解。

缺點:
由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。
應用領域:
文本分類、欺詐檢測中使用較多

4) Logistic迴歸算法

優點:
計算代價不高,易於理解和實現

缺點:
1)容易產生欠擬合。
2)分類精度不高。

應用領域:
用於二分類領域,可以得出概率值,適用於根據分類概率排名的領域,如搜索排名等。
Logistic迴歸的擴展softmax可以應用於多分類領域,如手寫字識別等。

聚類算法

1) K-means 算法

是一個簡單的聚類算法,把n的對象根據他們的屬性分爲k個分割,k< n。算法的核心就是要優化失真函數J,使其收斂到局部最小值但不是全局最小值。
其中N爲樣本數,K是簇數,rnk b表示n屬於第k個簇,uk 是第k箇中心點的值。然後求出最優的uk
優點:
算法速度很快
缺點:
分組的數目k是一個輸入參數,不合適的k可能返回較差的結果。

2) EM最大期望算法

EM算法是基於模型的聚類方法,是在概率模型中尋找參數最大似然估計的算法,其中概率模型依賴於無法觀測的隱藏變量。E步估計隱含變量,M步估計其他參數,交替將極值推向最大。
EM算法比K-means算法計算複雜,收斂也較慢,不適於大規模數據集和高維數據,但比K-means算法計算結果穩定、準確。EM經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。

集成算法(AdaBoost算法)

AdaBoost算法優點
1)很好的利用了弱分類器進行級聯。
2)可以將不同的分類算法作爲弱分類器。
3)AdaBoost具有很高的精度。
4)相對於bagging算法和Random Forest算法,AdaBoost充分考慮的每個分類器的權重。

Adaboost算法缺點
1)AdaBoost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。
2)數據不平衡導致分類精度下降。
3)訓練比較耗時,每次重新選擇當前分類器最好切分點。

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

人工神經網絡算法

神經網絡優點:
1)分類準確度高,學習能力極強。
2)對噪聲數據魯棒性和容錯性較強。
3)有聯想能力,能逼近任意非線性關係。

神經網絡缺點:
1)神經網絡參數較多,權值和閾值。
2)黑盒過程,不能觀察中間結果。
3)學習過程比較長,有可能陷入局部極小值。

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

排序算法(PageRank)

PageRank是google的頁面排序算法,是基於從許多優質的網頁鏈接過來的網頁,必定還是優質網頁的迴歸關係,來判定所有網頁的重要性。(也就是說,一個人有着越多牛X朋友的人,他是牛X的概率就越大。)

PageRank優點:
完全獨立於查詢,只依賴於網頁鏈接結構,可以離線計算。

PageRank缺點
1)PageRank算法忽略了網頁搜索的時效性。
2)舊網頁排序很高,存在時間長,積累了大量的in-links,擁有最新資訊的新網頁排名卻很低,因爲它們幾乎沒有in-links。

關聯規則算法(Apriori算法)

Apriori算法是一種挖掘關聯規則的算法,用於挖掘其內含的、未知的卻又實際存在的數據關係,其核心是基於兩階段頻集思想的遞推算法 。
Apriori算法分爲兩個階段:
1)尋找頻繁項集
2)由頻繁項集找關聯規則

算法缺點:
1) 在每一步產生侯選項目集時循環產生的組合過多,沒有排除不應該參與組合的元素;
2) 每次計算項集的支持度時,都對數據庫中 的全部記錄進行了一遍掃描比較,需要很大的I/O負載。

發佈了5 篇原創文章 · 獲贊 8 · 訪問量 629
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章