天天看點

十種機器學習算法的預測分析

摘要

機器學習算法被描述為學習一個目标函數 (f),它最好地将輸入變量 (X) 映射到輸出變量 (Y):Y = f(X)

最常見的機器學習類型是學習映射 Y = f(X) 以針對新 X 預測 Y。這稱為預測模組化或預測分析,目标就是要做出最準确的預測。

十種機器學習算法的預測分析

十種機器學習算法

TOP MACHINE LEARNING ALGORITHMS YOU SHOULD KNOW

  • Linear Regression 線性回歸
  • Logistic Regression 邏輯回歸
  • Linear Discriminant Analysis 線性判别分析
  • Classification and Regression Trees 分類和回歸樹
  • Naive Bayes 樸素貝葉斯
  • K-Nearest Neighbors (KNN) K-最近鄰 (KNN)
  • Learning Vector Quantization (LVQ) 學習向量量化 (LVQ)
  • Support Vector Machines (SVM) 支援向量機 (SVM)
  • Random Forest Bagging 和随機森林
  • Boosting Boosting
  • AdaBoost AdaBoost

一、線性回歸

線性回歸是統計和機器算法中最容易了解的算法之一。

線性回歸的表示是一個方程,它通過找到稱為系數 (B) 的輸入變量的特定權重來描述最适合輸入變量 (x) 和輸出變量 (y) 之間關系的直線。

十種機器學習算法的預測分析

例如:y = B0 + B1 * x 我們将在給定輸入 x 的情況下預測 y,線性回歸學習算法的目标是找到系數 B0 和 B1 的值。

可以使用不同的技術從資料中學習線性回歸模型,例如普通最小二乘的線性代數解決方案和梯度下降優化。

二、邏輯回歸

邏輯回歸是機器學習從統計學領域借用的另一種技術。它是二進制分類問題(具有兩個類值的問題)的首選方法。

邏輯回歸類似于線性回歸,其目标是找到權重每個輸入變量的系數值。與線性回歸不同,輸出的預測是使用稱為邏輯函數的非線性函數轉換的。

邏輯函數看起來像一個大 S,會将任何值轉換為 0 到 1 的範圍。這很有用,因為我們可以将規則應用于邏輯函數的輸出以将值捕捉到 0 和 1(例如,如果小于 0.5 則輸出 1) 并預測一個類值。

十種機器學習算法的預測分析

由于模型的學習方式,邏輯回歸所做的預測也可以用作給定資料執行個體屬于 0 類或 1 類的機率。這對于需要給出更多理由的問題是很有用一個預測。

與線性回歸一樣,當您删除與輸出變量無關的屬性以及彼此非常相似(相關)的屬性時,邏輯回歸的效果會更好。這是一個快速學習的模型,并且對二進制分類問題有效。

三、線性判别分析

邏輯回歸是一種傳統上僅限于兩類分類問題的分類算法。如果您有兩個以上的類别,則線性判别分析算法是首選的線性分類技術。

LDA 的表示非常簡單。它由您的資料的統計屬性組成,為每個類計算。對于單個輸入變量,這包括:

  1. 每個類别的平均值。
  2. 跨所有類計算的方差。
十種機器學習算法的預測分析

通過計算每個類别的判别值并針對具有最大值的類别進行預測。假設資料具有高斯分布(鐘形曲線),是以最好事先從資料中删除異常值。它是分類預測模組化問題的一種簡單而強大的方法。

四、分類和回歸樹

決策樹是預測模組化機器學習的一種重要算法。

決策樹模型的表示是二叉樹。這是來自算法和資料結構的二叉樹,沒什麼花哨的。每個節點代表一個輸入變量 (x) 和該變量上的一個分割點(假設變量是數字)。

十種機器學習算法的預測分析

樹的葉節點包含一個輸出變量 (y),用于進行預測。通過周遊樹的分裂直到到達葉節點并在該葉節點處輸出類值來進行預測。

樹的預測速度也很快。它們通常對于廣泛的問題也很準确,并且不需要對資料進行任何特殊準備。

五、樸素貝葉斯

樸素貝葉斯是一種簡單但功能強大的預測模組化算法。

該模型由兩種類型的機率組成,可以直接從您的訓練資料中計算出來:

  1. 每個類别的機率;
  2. 給定每個 x 值得每個類的條件機率。 計算後,機率模型可用于使用貝葉斯定理對新資料進行預測。當資料是實值時,通常假設高斯分布(鐘形曲線),以便可以輕松估計這些機率。
十種機器學習算法的預測分析

樸素貝葉斯被稱為樸素,因為它假設每個輸入變量都是獨立的。這是一個強有力的假設,對于真實資料來說是不現實的,然而,該技術在處理大量複雜問題時非常有效。

六、K-最近鄰 (KNN)

KNN算法非常簡單,非常有效。KNN 的模型表示是整個訓練資料集。

通過在整個訓練集中搜尋 K 個最相似的執行個體(鄰居)并彙總這些 K 個執行個體的輸出變量,對新資料點進行預測。

對于回歸問題,這可能是平均輸出變量,對于分類問題,這可能是模式(或最常見的)類值。

訣竅在于如何确定資料執行個體之間的相似性。

十種機器學習算法的預測分析

KNN 可能需要大量記憶體或空間來存儲所有資料,但僅在需要預測時才及時執行計算(或學習)。這個期間你可以随着時間的推移更新和管理訓練執行個體,以保持預測的準确性。

七、學習向量量化 (LVQ)

K-Nearest Neighbors 的一個缺點是需要保留整個訓練資料集。

學習向量量化算法(或簡稱 LVQ)是一種人工神經網絡算法,它允許選擇要挂起的訓練執行個體數量并準确了解這些執行個體的外觀。

十種機器學習算法的預測分析

LVQ 的表示是碼本向量的集合。這些是在開始時随機選擇的,并适合在學習算法的多次疊代中最好地總結訓練資料集。學習後,碼本向量可以像 K-Nearest Neighbors 一樣用于進行預測。通過計算每個碼本向量與新資料執行個體之間的距離,找到最相似的鄰居(最佳比對碼本向量)。然後傳回最佳比對單元的類值或(回歸情況下的實際值)作為預測。 如果重新調整資料以具有相同的範圍,例如在 0 和 1 之間,則可以獲得最佳結果。

如果發現 KNN 在你的資料集上提供了良好的結果,可以嘗試使用 LVQ 來減少存儲整個訓練資料集的記憶體需求。

八、支援向量機 (SVM)

支援向量機可能是最受歡迎和談論最多的機器學習算法之一。

超平面是分割輸入變量空間的線。

在 SVM 中,選擇一個超平面來最好地将輸入變量空間中的點按它們的類(類 0 或類 1)分開。在二維中,你可以将其可視化為一條線,假設我們所有的輸入點都可以被這條線完全隔開。SVM 學習算法通過超平面找到導緻類的最佳分離的系數。

十種機器學習算法的預測分析

超平面和最近資料點之間的距離稱為邊距。 可以分離這兩個類的最佳或最優超平面是具有最大邊距的線。

隻有這些點與定義超平面和建構分類器有關。這些點稱為支援向量。它們支援或定義超平面。在實踐中,使用優化算法來找到最大化邊際的系數值。

九、Bagging 和随機森林

随機森林是最流行和最強大的機器學習算法之一。它是一種內建機器學習算法。稱為 Bootstrap Aggregation 或 bagging。

Bootstrap是一種強大的統計方法,用于從資料樣本中估計數量。

在 bagging 中,使用相同的方法,但用于估計整個統計模型,最常見的是決策樹。

擷取訓練資料的多個樣本,然後為每個資料樣本構模組化型。當你需要對新資料進行預測時,每個模型都會進行預測,并對預測進行平均以更好地估計真實輸出值。

十種機器學習算法的預測分析

随機森林是對這種方法的一種調整,其中建立了決策樹,是以不是選擇最佳分割點,而是通過引入随機性來進行次優分割。

是以,為每個資料樣本建立的模型與其他模型相比更加不同,但仍然以其獨特和不同的方式準确。結合他們的預測可以更好地估計真實的潛在輸出值。

十、Boosting 和 AdaBoost Boosting

十種機器學習算法的預測分析

Boosting是一種內建技術,它試圖從多個弱分類器中建立一個強分類器。

這是通過從訓練資料構模組化型,然後建立第二個模型來嘗試糾正第一個模型中的錯誤來完成的。添加模型直到訓練集被完美預測或添加最大數量的模型。

AdaBoost 是為二進制分類開發的第一個真正成功的提升算法。這是了解 boosting 的最佳起點。

AdaBoost 與短決策樹一起使用。 在建立第一棵樹後,樹在每個訓練執行個體上的性能用于衡量下一棵建立的樹應該對每個訓練執行個體的關注程度。難以預測的訓練資料被賦予更高的權重,而易于預測的執行個體被賦予更少的權重。

模型一個接一個地按順序建立,每個模型都會更新訓練執行個體上的權重,這些權重會影響序列中下一棵樹執行的學習。

在建構完所有樹之後,将對新資料進行預測,并且每棵樹的性能取決于它在訓練資料上的準确程度。

由于算法非常重視糾正錯誤,是以擁有幹淨的資料并删除異常值非常重要。

繼續閱讀