一文讀懂機器學習算法的基本概念和適用場景

【導讀】大家好,我是泳魚。一個樂於探索和分享 AI 知識的碼農!

首先,引用一句英國統計學家 George E. P. Box 的名言:All models are wrong, but some are useful. 沒有哪一種算法能夠適用所有情況,只有針對某一種問題更有用的算法。

也就是說,機器學習算法不會要求一個問題被 100% 求解,取而代之的是把問題轉化爲最優化的問題,用不同的算法優化問題,從而比較得到儘量好的結果。因此對於數據科學家來說,理解算法顯得格外重要,理解不同算法的思想可以幫助數據科學家更從容地面對不同的應用場景。

本文列出了常用的機器學習算法的基本概念、主要特點和適用場景,希望可以在大家選擇合適的機器學習算法解決實際問題時起到一點參考作用。

本文主要提及的機器學習算法包括:

·K 近鄰(KNN)算法

· 樸素貝葉斯算法

· 決策樹算法

·SVM 算法

·adaboost 算法

·EM 算法 (期望最大化算法)

下面我們將具體展開介紹:

NO.1 KNN 算法

KNN 算法的基本介紹:假若一個特徵空間中大多數的樣本屬於某一個類別, 則在這個特徵空間中,k 個最相似的樣本也屬於這個類別。

該算法由兩個步驟組成:(1) 對於一個給定的搜索訓練集按一定距離度量, 來找到一個 的值。(2) 在這個 KNN 當中, 根據大多數分爲一致的類來進行分類。

用以下這幅圖可以很好的解釋 kNN 算法:

不同形狀的點,爲不同標籤的點。其中綠色點爲未知標籤的數據點。現在要對綠色點進行預測。由圖不難得出:

如果 k=3,那麼離綠色點最近的有 2 個紅色三角形和 1 個藍色的正方形,這 3 個點投票,於是綠色的這個待分類點屬於紅色的三角形。

如果 k=5,那麼離綠色點最近的有 2 個紅色三角形和 3 個藍色的正方形,這 5 個點投票,於是綠色的這個待分類點屬於藍色的正方形。

K 近鄰(KNN)算法優點:

K 近鄰(KNN)算法缺點:

適用場景及主要應用領域:

由於 KNN 方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN 方法較其他方法更爲適合。在實際應用當中,KNN 算法在人臉識別、文字識別、醫學圖像處理等領域可以取得良好的分類效果。

K 近鄰(KNN)算法需要注意的問題:

NO.2 樸素貝葉斯算法

樸素貝葉斯分類是一種十分簡單的分類算法,即對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認爲此待分類項屬於哪個類別。

以判定外國友人爲例做一個形象的比喻。

若我們走在街上看到一個黑皮膚的外國友人,讓你來猜這位外國友人來自哪裏。十有八九你會猜是從非洲來的,因爲黑皮膚人種中非洲人的佔比最多,雖然黑皮膚的外國人也有可能是美洲人或者是亞洲人。但是在沒有其它可用信息幫助我們判斷的情況下,我們會選擇可能出現的概率最高的類別,這就是樸素貝葉斯的基本思想。

下圖爲樸素貝葉斯算法的流程

樸素貝葉斯算法注意點:

適用場景及主要應用領域:

  1. 樸素貝葉斯算法對待預測樣本進行預測,過程簡單速度快;

  2. 對於多分類問題也同樣很有效,複雜度也不會有大程度上升;

  3. 在分佈獨立這個假設成立的情況下,貝葉斯分類器效果奇好,會略勝於邏輯迴歸,同時需要的樣本量也更少一點。

  4. 對於類別類的輸入特徵變量,效果非常好。對於數值型變量特徵,我們是默認它符合正態分佈的。

主要應用領域

NO.3 決策樹算法

決策樹是一個樹結構(可以是二叉樹或非二叉樹),其每個非葉節點表示一個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放一個輸出類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作爲決策結果。

決策樹學習通常包含這幾個方面:特徵選擇、決策樹生成、決策樹剪枝、缺失值 / 異常值處理、決策樹集成學習。

決策樹算法注意點:

適用場景及主要應用領域:

相比其他算法,決策樹有一個非常明顯的優勢,就是可以很直觀地進行可視化,分類規則好理解,讓非專業的人也容易看明白,既可以解決分類問題(對應的目標值是類別型的數據),也能解決迴歸問題(輸出結果也可以是連續的數值),目前廣泛應用於語音識別、人臉識別、醫療診斷、模式識別等領域。

NO.4 SVM 算法

支持向量機,support vector machine,簡稱 SVM,是經典機器學習的一個重要分類算法,用於完成數據分類。svm 算法通過找出一個決策超平面(二維空間指直線,三維空間指平面,超過三維的就是超平面了),將已有訓練數據集劃分開,然後對於新數據,根據數據是位於超平面的哪一側完成判斷,得到新數據的分類。

因此基礎的 svm 算法是一個二分類算法,至於多分類任務,多次使用 svm 即可解決。

下圖是一組支持向量機實現分類的示例。

SVM 算法注意點:

適用場景及主要應用領域:

支持向量機 (Support Vector Machine) 是 Cortes 和 Vapnik 於 1995 年首先提出的,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,但它具有以下缺點:

支持向量機的常見適用範圍如下:

1. 網絡完全

傳統的網絡入侵檢測方法大多采用密碼簽名的方法。在進行入侵檢測方面,機器學習技術可以幫助我們進行網絡流量的分析,在這裏支持向量機具有檢測速度快,分類精度高等特點,可以幫助安全人員識別不同類別的網絡攻擊,例如掃描和欺詐網絡。

2. 人臉識別

SVM 可以將圖像部分分爲人臉和非人臉。它包含 nxn 像素的訓練數據,具有兩類人臉(+1)和非人臉(-1),然後從每個像素中提取特徵作爲人臉和非人臉。根據像素亮度在人臉周圍創建邊界,並使用相同的過程對每個圖像進行分類。

3. 文本和超文本分類

SVM 可以實現對兩種類型的模型進行文本和超文本分類,它主要通過使用訓練數據將文檔分類爲不同的類別,如新聞文章、電子郵件和網頁。

對於每個文檔,計算一個分數並將其與預定義的閾值進行比較。當文檔的分數超過閾值時,則將文檔分類爲確定的類別。如果它不超過閾值,則將其視爲一般文檔。

通過計算每個文檔的分數並將其與學習的閾值進行比較來對新實例進行分類。

4. 蛋白質摺疊和遠程同源檢測

蛋白質遠程同源性檢測是計算生物學中的一個關鍵問題。SVM 算法是遠程同源檢測最有效的方法之一。這些方法的性能取決於蛋白質序列的建模方式。

NO.5 adaboost 算法

在瞭解 adaboost 算法之前,我們先來重溫一下三個臭皮匠頂個諸葛亮的故事:諸葛亮帶兵過江,江水湍急,而且裏面多是突出水面的礁石。普通竹筏和船隻很難過去, 打頭陣的船隻都被水沖走觸礁沉沒,諸葛亮一籌莫展,也想不出好辦法,入夜來了 3 個做牛皮活的皮匠獻策。告訴諸葛亮買牛,然後把牛從肚皮下整張剝下來,封好切口後讓士兵往裏吹氣,做成牛皮筏子,這樣的筏子不怕撞,諸葛亮按此方法嘗試並順利過江。

Adaboost 就是這樣一種 “三個臭皮匠頂個諸葛亮” 的迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。

adaboost 算法注意點:

適用場景及主要應用領域:

在機器學習的算法中,Adaboost 算法是一種比較重要且通用的用於特徵分類的算法,在圖像檢索和人臉表情識別等問題中都有普遍應用。從現狀看,人們對 Adaboost 算法的研究及應用主要集中用於分類問題上,另外在某些迴歸問題上也有所涉及,比如兩類問題、多類單標籤問題、多類多標籤問題和迴歸問題。

Adaboost 在機器學習領域中十分重要,它是一種提高任意給定學習算法準確度的方法。也就是說,Adaboost 算法爲其他算法提供了一種框架結構,而其他算法只在其中作爲子分類器,因此 Adaboost 算法可以運用在許多方面的實踐上。

通過 Adaboost 算法:

  1. 可以實現手寫體字符識別,運用到了許多輸入設備上,如流行的觸屏手機上的手寫輸入、筆記本電腦的手寫輸入、掃描儀掃面文字轉化爲電子文檔。

  2. 圖像識別,如人臉識別、google 上的圖片檢索功能 (很方便地找到想要的清晰度更高的圖片)。我們實現了語音識別,現在的 WIN7 上都有了一個語音識別的功能,我們能夠讓計算機知道我們說了什麼話, 並通過機器自動學習提高語音識別的精度,聲音輸入和聲控很可能在未來普及。

  3. Adaboost 算法還能做文本分類和醫療診斷等等。

NO.6 EM 算法

最大期望算法(Expectation-maximization algorithm,又譯爲期望最大化算法),是在概率模型中尋找參數最大似然估計或者最大後驗估計的算法,其中概率模型依賴於無法觀測的隱性變量。

以打獵爲例做一個形象的比喻:

比如你一位同學和一位獵人一起外出打獵,一隻野兔從前方竄過。只聽一聲槍響,野兔應聲到下,如果要你推測,這一發命中的子彈是誰打的?你就會想,只發一槍便打中,由於獵人命中的概率一般大於你那位同學命中的概率,從而推斷出這一槍應該是獵人射中的。

這個例子所作的推斷就體現了最大似然法的基本思想。

多數情況下我們是根據已知條件來推算結果,而最大似然估計是已經知道了結果,然後尋求使該結果出現的可能性最大的條件,以此作爲估計值。

EM 算法注意點:

適用場景及主要應用領域:

1. K-Means 聚類

K-Means 是 EM 算法的一個特列。在 K-Means 聚類時,每個聚類簇的質心是隱含數據。我們會假設 K 個初始化質心,即 EM 算法的 E 步;然後計算得到每個樣本最近的質心,並把樣本聚類到最近的這個質心,即 EM 算法的 M 步。重複這個 E 步和 M 步,直到質心不再變化爲止,這樣就完成了 K-Means 聚類。

2. 高斯混合模型

高斯混合模型(Gaussian Misture Model)的參數估計是 EM 算法的一個重要應用。高斯混合模型應用廣泛,在許多情況下, EM 算法是學習高斯混合模型的有效方法。

3. 隱馬爾科夫模型

EM 算法的另一個重要應用是隱馬爾科夫模型。

算法的選擇取決於許多因素,比如問題陳述、預期的輸出類型、數據的類型和大小、可用的計算時間、特徵數量以及數據中的觀測點等,以上內容僅供大家在選擇算法時作爲參考,實踐和運行纔是評估算法的最佳標準。

版權聲明

轉自九章雲極 DataCanvas,版權屬於原作者,僅用於學術分享

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/8XXrOH1NEJFl2gfC-XvoLw