機器學習算法分類:監督學習、無監督學習、強化學習
基本的機器學習算法:
????????線性回歸、支持向量機(SVM)、最近鄰居(KNN)、邏輯回歸、決策樹、k平均、隨機森林、樸素貝葉斯、降維、梯度增強。
機器學習算法大致可以分為三類:
- 監督學習算法 (Supervised Algorithms):? ?在監督學習訓練過程中,可以由訓練數據集學到或建立一個模式(函數 / learning model),并依此模式推測新的實例。該算法要求特定的輸入/輸出,首先需要決定使用哪種數據作為范例。例如,文字識別應用中一個手寫的字符,或一行手寫文字。主要算法包括神經網絡、支持向量機、最近鄰居法、樸素貝葉斯法、決策樹等。
- 無監督學習算法 (Unsupervised Algorithms):? ? 這類算法沒有特定的目標輸出,算法將數據集分為不同的組。
- 強化學習算法 (Reinforcement Algorithms):? ?強化學習普適性強,主要基于決策進行訓練,算法根據輸出結果(決策)的成功或錯誤來訓練自己,通過大量經驗訓練優化后的算法將能夠給出較好的預測。類似有機體在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。
【一句話總結】
?????????監督學習:跟著老師學(有標準答案)
????????無監督學習:自己找規律(無標準答案)
????????強化學習:邊玩邊學(用獎懲調參數)
1. 線性回歸算法 Linear Regression
? ? ? ? 回歸分析(Regression Analysis)是統計學的數據分析方法,目的在于了解兩個或多個變量間是否相關、相關方向與強度,并建立數學模型以便觀察特定變量來預測其它變量的變化情況。
? ? ? 線性回歸算法(Linear Regression)的建模過程就是使用數據點來尋找最佳擬合線。
2. 支持向量機算法(Support Vector Machine,SVM)
????????支持向量機/網絡算法(SVM)屬于分類型算法。SVM模型將實例表示為空間中的點,將使用一條直線分隔數據點。需要注意的是,支持向量機需要對輸入數據進行完全標記,僅直接適用于兩類任務,應用將多類任務需要減少到幾個二元問題。? ?尤其在二分類任務中效果顯著。
原理:尋找最優超平面,最大化不同類別數據間的間隔。通過核函數(如高斯核)將數據映射到高維空間解決非線性問題。
3. 最近鄰居/k-近鄰算法 (K-Nearest Neighbors,KNN)
???????KNN算法基于一個非常直觀的思想:對于一個未知類別的數據點,可以通過查看它在特征空間中距離最近的K個鄰居的類別或數值信息,來決定該數據點的類別或預測其值。
曼哈頓距離(街區距離):絕對值和,L1范數
歐氏距離(直線距離):平方和開方, L2范數
算法的主要步驟如下:
1. 計算距離:常用的距離度量方法有歐氏距離、曼哈頓距離等。對于一個待預測的數據點,計算它與訓練集中所有數據點的距離。
2. 選擇最近鄰:根據計算得到的距離,選取距離最小的K個數據點
? ? ?優點:無需訓練,簡單直觀,適合多分類問題
?最常用的「K 折交叉驗證」步驟(以 5 折為例)
- 分塊:把數據隨機分成 5 份(每份叫「折」Fold)。
(例:奶茶用戶數據 1000 條 → 分 5 組,每組 200 條) - 循環訓練:
- 第 1 輪:用第 2-5 組(800 條)訓練模型,測第 1 組(200 條)→ 得準確率 85%
- 第 2 輪:用第 1,3-5 組訓練,測第 2 組 → 得準確率 88%
- ……(重復 5 次,每輪換不同的組當測試集)
- 匯總結果:5 次準確率的平均分(如 86.6%),作為模型真實水平。
1.?k 越小:聽「最鐵鄰居」的,可能踩坑
- 例子:你選餐廳時,只問最近的 1 個鄰居(k=1)。
→ 若鄰居是素食者,ta推薦的素菜館,可能不適合愛吃肉的你(過擬合,被局部噪聲帶偏)。 - 優點:捕捉細節(比如小眾寶藏店)。
- 缺點:怕異常值(比如鄰居那天心情不好亂推薦)。
- 適合:數據干凈、想保留細節的場景(如手寫數字識別)。
2.?k 越大:聽「全班意見」,可能平庸
- 例子:你問全班 50 個人(k=50),最終選了評分最高的連鎖餐廳。
→ 雖然不踩雷,但可能錯過你喜歡的特色小店(欠擬合,模糊了個體差異)。 - 優點:抗噪聲(少數差評被稀釋)。
- 缺點:忽略局部特征(比如你家樓下的隱藏好店)。
- 適合:數據噪聲大、想平滑結果的場景(如用戶偏好預測)。
4. ?邏輯回歸(Logistic Regression)?
原理:通過Sigmoid函數將線性組合映射到[0,1],輸出概率值進行二分類,損失函數為交叉熵。參數估計使用最大似然法。
最大似然法:
最大似然法 =「數據偵探」??核心:根據結果反推最合理的「劇本」(參數)。
最大似然法是一種基于概率模型的參數估計方法,其核心思想是通過觀測數據反推最可能生成這些數據的模型參數。
5. 決策樹算法 Decision Tree
????????決策樹是通過一系列規則對數據進行分類的過程。它提供一種在什么條件下會得到什么值的類似規則的方法。決策樹分為分類樹和回歸樹兩種,分類樹對離散變量做決策樹,回歸樹對連續變量做決策樹。
? ? ? ?不同的算法(ID3、C4.5、CART)在特征選擇上使用不同的指標,但遞歸分割數據構建決策樹的基本思想是一致的。
- 信息增益(ID3 算法):
? ? ? ? 信息熵:信息熵是用來衡量數據純度的指標,它表示數據的不確定性程度。
????????信息增益:信息增益是指在劃分數據集前后信息熵的減少量,它表示使用某個特征進行劃分后,數據集的純度提高了多少。
ID3 算法在構建決策樹時,會選擇信息增益最大的特征作為當前節點的分割特征。
增益率(C4.5 算法):
? ?信息增益存在的問題:信息增益傾向于選擇取值較多的特征,因為取值較多的特征會將數據集劃分成更多的子集,從而使信息熵降低得更多。為了解決這個問題,C4.5 算法引入了增益率。
C4.5 算法在構建決策樹時,會選擇增益率最大的特征作為當前節點的分割特征。
- 基尼指數(CART 算法):
基尼指數:基尼指數也是用來衡量數據純度的指標,它表示從數據集中隨機抽取兩個樣本,其類別不一致的概率。
CART 算法在構建決策樹時,會選擇基尼指數最小的特征作為當前節點的分割特征。
????????原理:遞歸分割數據,選擇信息增益(ID3)、增益率(C4.5)或基尼指數(CART)最大的特征作為節點,生成樹形結構。
一棵決策樹的生成過程主要分為以下3個部分:
- ??特征選擇: 是指從訓練數據中眾多的特征中選擇一個特征作為當前節點的分裂標準,如何選擇特征有著很多不同量化評估標準標準,從而衍生出不同的決策樹算法。
- 決策樹生成: 根據選擇的特征評估標準,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。 樹結構來說,遞歸結構是最容易理解的方式。
- 決策樹剪枝: 決策樹容易過擬合,一般來需要剪枝,縮小樹結構規模、緩解過擬合。剪枝技術有預剪枝和后剪枝兩種。
注意:對于那些各類別樣本數量不一致的數據,在決策樹當中信息增益的結果偏向于那些具有更多數值的特征。
6. k-平均算法 K-Means
??????k-平均算法(K-Means)是一種無監督學習算法,為聚類問題提供了一種解決方案。
K-Means 算法把 n 個點(可以是樣本的一次觀察或一個實例)劃分到 k 個集群(cluster),使得每個點都屬于離他最近的均值(即聚類中心,centroid)對應的集群。重復上述過程一直持續到重心不改變。
原理:通過迭代優化,將數據劃分為K個簇,使簇內樣本距離質心最近。目標是最小化簇內平方誤差。
7. 隨機森林算法 Random Forest
????????隨機森林算法(Random Forest)的名稱由 1995 年由貝爾實驗室提出的random decision forests 而來,正如它的名字所說的那樣,隨機森林可以看作一個決策樹的集合。
隨機森林中每棵決策樹估計一個分類,這個過程稱為“投票(vote)”。理想情況下,我們根據每棵決策樹的每個投票,選擇最多投票的分類。
原理:集成多棵決策樹,通過Bagging(有放回抽樣)和隨機特征選擇降低方差,最終投票或平均結果。
8. 樸素貝葉斯算法 Naive Bayes????????
????????樸素貝葉斯的核心思想基于貝葉斯定理,通過計算后驗概率來進行分類。其“樸素”之處在于假設特征之間是條件獨立的,這一假設雖然在實際應用中并不總是成立,但在許多情況下,樸素貝葉斯依然能夠取得令人滿意的分類效果。這使得樸素貝葉斯成為許多實際應用中的首選模型,尤其是在處理高維數據和大規模數據集時,展現出其獨特的優勢。
????????貝葉斯學派(Bayesian)在概率模型的參數估計中,認為參數是未觀察到的隨機變量,并且可以為其假設一個先驗分布(prior distribution)。然后,基于觀測到的數據,通過貝葉斯定理計算參數的后驗分布(posterior distribution)。這一過程體現了貝葉斯統計的核心思想:將先驗知識與觀測數據結合,更新對參數的信念。
????????樸素貝葉斯是一種超級 “單純” 的分類算法,核心思想就像 “看菜下飯”—— 通過統計 “特征組合” 出現的概率來判斷類別。
?為什么叫 “樸素”?
????????因為它做了一個 “天真” 的假設:所有特征之間完全獨立(比如西瓜的 “表皮” 和 “重量” 互不影響)。雖然現實中特征可能相關(比如重的西瓜可能更成熟,表皮更光滑),但這個假設讓計算變得超級簡單,而且在文本分類(如垃圾郵件過濾)等場景中效果驚人。
????????樸素貝葉斯就像一個 “統計小能手”,先數清楚每個類別里各個特征出現的次數,再假設特征之間互不干擾,最后用 “概率投票” 決定新樣本的類別 —— 簡單粗暴,但好用!
9. 降維算法 Dimensional Reduction
????????在機器學習和統計學領域,降維是指在限定條件下,降低隨機變量個數,得到一組“不相關”主變量的過程,并可進一步細分為特征選擇和特征提取兩大方法。
????????一些數據集可能包含許多難以處理的變量。特別是資源豐富的情況下,系統中的數據將非常詳細。在這種情況下,數據集可能包含數千個變量,其中大多數變量也可能是不必要的。在這種情況下,幾乎不可能確定對我們的預測影響最大的變量。此時,我們需要使用降維算法,降維的過程中也可能需要用到其他算法,例如借用隨機森林,決策樹來識別最重要的變量。
原理:減少特征數量,保留主要信息。線性方法如PCA(主成分分析)通過方差最大化投影。
特點:
- ?優點:降低計算成本,去除噪聲,可視化高維數據
- ?缺點:可能丟失部分信息(如PCA對非線性關系失效)
- 應用:圖像壓縮、數據預處理,用于特征工程階段
10. 梯度增強算法 Gradient Boosting
????????梯度增強算法(Gradient Boosting)使用多個弱算法來創建更強大的精確算法。它與使用單個估計量不同,而是使用多個估計量創建一個更穩定和更健壯的算法。
原理:迭代訓練弱學習器(通常為決策樹),每輪擬合殘差的負梯度,逐步減少損失函數(如MSE、交叉熵)。XGBoost、LightGBM為其優化版本。
?面試常問:?
- 「隨機森林和 GBDT 的區別???」—— 前者是并行投票的「佛系樹群」,后者是串行糾錯的「卷王樹群」
- ? 每個算法配一個簡筆畫小場景,比如 KNN 畫 5 個小人圍著新用戶,SVM 畫一條寬線隔開貓貓狗狗