10種演算法圖解,告訴你為何首選Python!(上)

你知道為何Python是機器學習的首選嗎?看完這篇你就瞭!
你知道為何Python是機器學習的首選嗎?看完這篇你就瞭!

隨著人工智慧的深入發展,沒有學習能力的 人工智慧限制性越來越明顯,為了突破這個瓶頸,「機器學習」漸漸成為人工智慧領域的研究核心之一,也發展出各種機器學習的演算法。
現在有哪些熱門的算法?各有什麼特點?本次就要來盤點幾大常用的機器學習演算法,並告訴你為何機器學習語言要首選 Python
機器學習演算法大致上可以分為三類:監督式學習(Supervised learning)、非監督式學習(Unsupervised learning)與強化式學習(Reinforcement learning)。
本次將著重介紹「監督式學習」與「非監督式學習」的演算法。

一、監督式學習

監督學習算法可以分成兩個大方向:分類和迴歸。

1. 線性迴歸(Linear Regression)

▲ 線性回歸的視覺化,平面內有一系列點,尋找出一條最能擬合資料趨勢分布的線用來預測新的資料出現的位置
線性回歸源自於統計學的方法,通過一個或多個自變量與因變量進行建模的回歸分析。視覺化後如上圖,平面內有一系列點,尋找出一條最能擬合資料趨勢分布的線,也能用來預測新的資料出現的位置,就叫線性回歸。
在線性回歸中,數據使用線性預測函數來建模,並且未知的模型參數也是通過數據來估計,簡單的線性回歸公式為:
▲ 簡單的線性回歸公式
y 是因變量(y)對自變量(x)任何給定值的預測值;B0 是截距,即 x 為 0 時 y 的預測值;B1 是回歸係數–表示期望 y 隨著 x 的增加而改變多少;x 是自變量(期望的變量影響 y);e 是估計值的誤差,或表示回歸係數估計值有多少變化。

2. 邏輯回歸(Logistic Regression)

邏輯回歸延伸自線性回歸,是一個二元分類算法,透過選取不同的特徵與權重來對樣本進行機率分類。
邏輯回歸會使用某種函數將機率值壓縮到某一特定範圍,如 Sigmoid 函數。S 函數是一種具有 S 形曲線、用於二分類的函數。
▲ 邏輯分布函數圖像(圖片來源:Wikipedia)
邏輯回歸的輸出變量是離散型(Discrete),而「回歸」輸出變量為連續值。所以實際上雖然叫「邏輯回歸」,但它屬於「分類型」算法,而非「回歸型」算法。

3. 支援向量機(Support Vector Machine,SVM)

支援向量機 SVM 同樣是一個二元分類算法,它可以在 N 維空間找到一個 (N-1) 維的超平面,以使兩類數據之間的餘量最大化。這個超平面可以使兩個類別之間的邊距或距離最大化,平面內如果存在線性可分的兩類點,SVM 可以找到一條最適直線將這些點分開。
除了進行線性分類之外,SVM 還可以使用核技巧(kernal trick)進行非線性分類,將其輸入隱式對映到高維特徵空間中。
▲ 散點圖展示了線性支援向量機核函式的決策邊界(虛線)(圖片來源:Wikipedia)
SVM 的應用範圍很廣,如文字和超文字的分類、大規模圖像識別與分類、手寫字型的辨識等等。

4. 樸素貝葉斯分類器(Naive Bayes classifier)

「貝葉斯推斷」延伸自貝葉斯理論,是描述在擁有部分已知條件下,某事件的發生機率。
而在 Python 機器學習中,樸素貝葉斯分類器是以假設「特徵之間是獨立的、不相互影響的」的簡單機率分類器,可以直接利用條件機率相乘的方法,計算出聯合機率分布。
貝葉斯公式為:
▲ 貝葉斯公式
也可以表示為:
▲ 貝葉斯公式
posterior:通過樣本 X 得到參數 θ 的機率,稱為後驗機率。
likehood:通過參數 θ 得到樣本 X 的機率,即似然函數。通常為數據集的表現。
prior:該樣本 θ 機率,稱為先驗機率。
evidence:樣本 X 發生的機率,即為要預測的值。
即使一般現實世界的資料通常無法滿足貝葉斯理論的假設,但樸素貝葉斯分類器卻是相當實用,因其簡單高效,而辨識效能也不輸許多算法繁複的分類器。貝葉斯模型的應用範圍非常廣泛,大數據、機器學習、資料採擷、資料分析等領域都會見到。

5. 決策樹(Decision Tree)

決策樹原先作為決策分析中的方法,指的是每個決策都可能引出複數的事件,最後通向不同結果,視覺化後的圖形很像樹的枝幹,故稱決策樹。
而在機器學習中,決策樹是一種用來處理分類問題的樹狀結構,每個內部節點表示一個評估欄位,而每個分枝代表一個可能的欄位輸出結果,每個則葉節點代表不同分類的類別標記。
▲ 決策樹演算法示意圖
ID3、C4.5 、C5.0、CHAID 及 CART 都是決策樹演算法的代表。
決策樹的主要功能,是藉由分類已知的實例來建立一個樹狀結構,並從中歸納出實例裡、類別欄位與其它欄位間的隱藏規則,也能利用來做樣本的預測,同時決策樹產生的模型也具有易於解釋的優點。
本篇為上篇,下篇請點此連結
相關文章:
何使用人工智慧工具,活用 Python 簡化繁瑣的行銷工作?
六個月從工地工人轉職 Java 軟體工程師,全因半年做了「對的決定」
Python vs R語言:哪個比較適合人工智慧/機器學習?
台灣本土開發AI 發行首張音樂專輯<<武漢肺炎>>
人工智慧機器狗AIBO人類新寵兒(上)
零基礎學習Python語言強化篇
Python和人工智慧到底有什麼關係呀!?