1. 程式人生 > >機器學習的演算法——用最通俗的例子去理解

機器學習的演算法——用最通俗的例子去理解

1、 DT:決策樹(Decision Tree)

決策樹,是樹形結構,通過樹形結構將各種情況組合都表示出來,每次分割的時候,都將當前的空間一分為二,簡單來說就是每個分支進行一次Yes 或 No 的選擇,直到所有選擇都進行完畢,最終給出正確答案。

示例:

比如希望根據一個人的性別、年齡、身高和收入來判斷,是否要考慮跟他相親。用決策樹可以這樣去設計演算法:


優點:

¬ 計算複雜度不高, 能同時處理資料和分類,在相對短的時間內能夠對大資料集合做出可行且效果良好的分類結果

¬ 是一個白盒模型,根據決策樹很容易推斷出相應的邏輯表示式;

缺點:

¬ 忽略了資料集中屬性之間的相關性

¬ 對噪聲資料較為敏感

¬ 容易出現過擬合問題(為了得到一致假設而使假設變得過度嚴格稱為過擬合,簡單來理解就是模型設定的條件過於嚴格苛刻)

2、 RF:隨機森林(Random Forest)

隨機機的方式建立一個森林,森林裡面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類演算法),然後看看哪一類被選擇最多,就預測這個樣本為那一類。

示例:

a、 假設決策樹有三個,出現的結果依次是下方的 S1、S2、S3區域那麼決策樹出來的結果即為 M 區域。


b、 如下圖,假設決策樹三個,出現的結果是兩個 A 類,1個 B 類,那麼決策樹的結果則為 A 類。比如依次是這樣:


決策樹演算法出來的結果就是考慮。

優點:

¬ 能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇

¬ 訓練時樹與樹之間是相互獨立的,訓練速度快,並且可並行

¬ 實現比較簡單

¬ 如果有很大一部分的特徵遺失,仍可以維持準確度。

缺點:

¬ 和決策樹方法一樣,在某些問題上可能出現過擬合

¬ 屬性的資料有不同取值時,取值劃分較多的屬性會對隨機森林產生更大的影響

3、 LR:邏輯迴歸(Logistic Regression)

邏輯迴歸,是分類和預測演算法中的一種。通過歷史資料的表現對未來結果發生的概率進行預測。

常用的一個公式


示例:

一門考試之前學生的複習時間與這個學生最後是否Pass這門考試的資料:


通過這些資料,利用邏輯迴歸演算法進行模型訓練,可以得到最終的模型結果是這個樣子:


這樣,給出任何複習時間,就可以預測出是否通過的概率


優點:

¬ 速度快,適合二分類問題

¬ 簡單易於理解,直接看到各個特徵的權重

¬ 能容易地更新模型吸收新的資料

缺點:

¬ 對資料和場景的適應能力有侷限性,不如決策樹演算法適應性那麼強

4、 NBM:樸素貝葉斯分類器(Naive Bayesian Model)

樸素貝葉斯分類器基於一個簡單的假定:給定目標值時屬性之間相互條件獨立。

應用場景很多,典型如郵件處理,標記一個電子郵件是否為垃圾郵件, Gmail就是使用的這個演算法,判斷一篇新聞文章是技術類、政治類或體育類,檢查一段文字表達積極的情緒,或消極的情緒。

示例:

給一段文字,返回情感分類,這段文字的態度是positive,還是negative。


這段文字,將轉化為一些典型的單詞來代表,每個單詞分別定義了他的分數或者概率。


假設單詞great在positive 的情況下出現的分數是2,在negative的情況下出現的分數是0.1。love在positive 的情況下出現的分數是2,在negative的情況下出現的分數是0.1。


again在positive 的情況下出現的分數是1,在negative的情況下出現的概率是1。

整體計算這句話裡典型單詞的分數和概率是多少,從而判斷這句話是屬於正面積極向上的,還是負面消極懈怠的。

優點:

¬ 基於概率公式,數學基礎堅實,分類效率穩定

¬ 沒有複雜的計算規則,適用於規模巨大的資料集

缺點:

¬ 屬性之間的獨立性假設往往不完全存在

¬ 需要知道先驗概率,分類決策存在錯誤率

5、 KNN:K最近鄰(K-NearestNeighbor)

K最近鄰法,是一種惰性分類方法,從訓練集中找出K個最接近測試物件的訓練物件,再從這K個訓練物件中找出居於主導的類別,將其賦給測試物件。通俗上來說就以物以類聚的思路,給一個新的資料時,離它最近的 K個點中,哪個類別多,這個資料就屬於哪一類。

示例:

如圖所示,假設需要判斷問號的這個是什麼顏色。


假設設定 K=3,那麼機器識別出來他為紅色,因為距問號圖形距離為3的範圍內,紅色數目為2,藍色數目為1。

假設設定K=5,那麼機器會識別出來他為藍色,因為距問號圖形距離為5的範圍內,紅色蘇滬為2,藍色數目為3。

而實際上這個顏色屬於綠色。

優點:

¬ 簡單,容易理解和實現

¬ 重新訓練的代價較低(類別體系的變化和訓練集的變化)

¬ 適合處理多模分類和多標籤分類問題

¬ 對於類域的交叉或重疊較多的待分類樣本集較為適合

缺點:

¬ 比積極學習的演算法要慢

¬ 對於樣本不平衡的資料集效果不佳

¬ k值的選擇對分類效果有很大影響,k 值較小的話對噪聲敏感,需要找最佳 K 值

¬ 可解釋性不強,計算量大。