機器學習十大演算法的核心思想、工作原理、適用 情況及優缺點
機器學習十大演算法的每個演算法的核心思想、工作原理、適用 情況及優缺點
一、C4.5 演算法:
ID3 演算法是以資訊理論為基礎,以資訊熵和資訊增益度為衡量標準,從而實現對資料的歸納分類。ID3 演算法計算每個屬性的資訊增益,並選取具有最高增益的屬性作為給定的測試屬性。
C4.5 演算法核心思想是ID3 演算法,是ID3 演算法的改進,改進方面有:
1)用資訊增益率來選擇屬性,克服了用資訊增益選擇屬性時偏向選擇取值多的屬性的不足;
2)在樹構造過程中進行剪枝
3)能處理非離散的資料
4)能處理不完整的資料
優點:產生的分類規則易於理解,準確率較高。
缺點:
1)在構造樹的過程中,需要對資料集進行多次的順序掃描
2)C4.5 只適合於能夠駐留於記憶體的資料集,當訓練集大得無法在記憶體容納時程式無法執行。
二、K means 演算法:
是一個簡單的聚類演算法,把n 的物件根據他們的屬性分為k 個分割,k < n。演算法的核心就是要優化失真函式J,使其收斂到區域性最小值但不是全域性最小值。
,其中N 為樣本數,K 是簇數,rnk b 表示n 屬於第k 個簇,uk 是第k 箇中心點的值。然後求出最優的uk
優點:演算法速度很快。
缺點是,分組的數目k 是一個輸入引數,不合適的k 可能返回較差的結果。
三、樸素貝葉斯演算法:
樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法。演算法的基礎是概率問題,分類原理是通過某物件的先驗概率,利用貝葉斯公式計算出其後驗概率,即該物件屬於某一類的概率,選擇具有最大後驗概率的類作為該物件所屬的類。樸素貝葉斯假設是約束性很強的假設,假設特徵條件獨立,但樸素貝葉斯演算法簡單,快速,具有較小的出錯率。
在樸素貝葉斯的應用中,主要研究了電子郵件過濾以及文字分類研究。
四、K 最近鄰分類演算法(KNN)
分類思想比較簡單,從訓練樣本中找出K 個與其最相近的樣本,然後看這k 個樣本中哪個類別的樣本多,則待判定的值(或說抽樣)就屬於這個類別。
缺點:
1)K 值需要預先設定,而不能自適應
2)當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K 個鄰居中大容量類的樣本佔多數。
該演算法適用於對樣本容量比較大的類域進行自動分類。
五、EM 最大期望演算法
EM 演算法是基於模型的聚類方法,是在概率模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數。E 步估計隱含變數,M 步估計其他引數,交替將極值推向最大。
EM 演算法比K-means 演算法計算複雜,收斂也較慢,不適於大規模資料集和高維資料,但比K-means 演算法計算結果穩定、準確。EM 經常用在機器學習和計算機視覺的資料集聚(Data Clustering)領域。
六、PageRank 演算法
是google 的頁面排序演算法,是基於從許多優質的網頁連結過來的網頁,必定還是優質網頁的迴歸關係,來判定所有網頁的重要性。(也就是說,一個人有著越多牛X 朋友的人,他是牛X 的概率就越大。)
優點:
完全獨立於查詢,只依賴於網頁連結結構,可以離線計算。
缺點:
1)PageRank 演算法忽略了網頁搜尋的時效性。
2)舊網頁排序很高,存在時間長,積累了大量的in-links,擁有最新資訊的新網頁排名卻很低,因為它們幾乎沒有in-links。
七、AdaBoost
Adaboost 是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。其演算法本身是通過改變資料分佈來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新資料集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。
整個過程如下所示:
1. 先通過對N 個訓練樣本的學習得到第一個弱分類器;
2. 將分錯的樣本和其他的新資料一起構成一個新的N 個的訓練樣本,通過對這個樣本的學習得到第二個弱分類器;
3. 將和都分錯了的樣本加上其他的新樣本構成另一個新的N個的訓練樣本,通過對這個樣本的學習得到第三個弱分類器;
4. 如此反覆,最終得到經過提升的強分類器。
目前AdaBoost 演算法廣泛的應用於人臉檢測、目標識別等領域。
八、Apriori 演算法
Apriori 演算法是一種挖掘關聯規則的演算法,用於挖掘其內含的、未知的卻又實際存在的資料關係,其核心是基於兩階段頻集思想的遞推演算法。
Apriori 演算法分為兩個階段:
1)尋找頻繁項集
2)由頻繁項集找關聯規則
演算法缺點:
1) 在每一步產生侯選專案集時迴圈產生的組合過多,沒有排除不應該參與組合的元素;
2) 每次計算項集的支援度時,都對資料庫中的全部記錄進行了一遍掃描比較,需要很大的I/O 負載。
九、SVM 支援向量機
支援向量機是一種基於分類邊界的方法。其基本原理是(以二維資料為例):如果訓練資料分佈在二維平面上的點,它們按照其分類聚集在不同的區域。基於分類邊界的分類演算法的目標是,通過訓練,找到這些分類之間的邊界(直線的――稱為線性劃分,曲線的――稱為非線性劃分)。對於多維資料(如N 維),可以將它們視為N 維空間中的點,而分類邊界就是N 維空間中的面,稱為超面(超面比N維空間少一維)。
線性分類器使用超平面型別的邊界,非線性分類器使用超曲面。
支援向量機的原理是將低維空間的點對映到高維空間,使它們成為線性可分,再使用線性劃分的原理來判斷分類邊界。在高維空間中是一種線性劃分,而在原有的資料空間中,是一種非線性劃分。
SVM 在解決小樣本、非線性及高維模式識別問題中表現出許多特有的優勢,並能夠推廣應用到函式擬合等其他機器學習問題中。
十、CART 分類與迴歸樹
是一種決策樹分類方法,採用基於最小距離的基尼指數估計函式,用來決定由該子資料集生成的決策樹的拓展形。如果目標變數是標稱的,稱為分類樹;
如果目標變數是連續的,稱為迴歸樹。分類樹是使用樹結構演算法將資料分成離散類的方法。
優點:
1)非常靈活,可以允許有部分錯分成本,還可指定先驗概率分佈,可使用自動的成本複雜性剪枝來得到歸納性更強的樹。
2)在面對諸如存在缺失值、變數數多等問題時CART 顯得非常穩健