Machine Learning: 十大基本機器學習算法

機器學習算法分類:監督學習、無監督學習、強化學習

基本的機器學習算法:

????????線性回歸、支持向量機(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 折為例)

  1. 分塊:把數據隨機分成 5 份(每份叫「折」Fold)。
    (例:奶茶用戶數據 1000 條 → 分 5 組,每組 200 條)
  2. 循環訓練
    • 第 1 輪:用第 2-5 組(800 條)訓練模型,測第 1 組(200 條)→ 得準確率 85%
    • 第 2 輪:用第 1,3-5 組訓練,測第 2 組 → 得準確率 88%
    • ……(重復 5 次,每輪換不同的組當測試集)
  3. 匯總結果: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 畫一條寬線隔開貓貓狗狗

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897661.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux docker 容器】關于想要讓虛擬機在開機時候也docker自己啟動,容器也自己啟動,省去要自己開docker和容器

確認 Docker 服務狀態: 首先,你需要確保 Docker 服務已經在虛擬機上安裝并正確配置。你可以使用如下命令來檢查 Docker 服務的狀態: systemctl status docker.service 如果服務沒有運行,你可以使用以下命令啟動它: s…

前端系統測試(單元、集成、數據|性能|回歸)

有關前端測試的面試題 系統測試 首先,功能測試部分。根據資料,單元測試是驗證最小可測試單元的正確性,比如函數或組件。都提到了單元測試的重要性,強調其在開發早期發現問題,并通過自動化提高效率。需要整合我搜索到的資料中的觀點,比如單元測試的方法(接口測試、路徑覆…

linux 命令 ls

ls 是 Linux 系統中用于列出目錄內容的核心命令,幾乎所有日常操作都會用到。以下是其詳細用法和常見場景說明 1. 基礎語法 ls [選項] [目錄/文件] 不指定目錄時,默認列出當前目錄的內容。 可以指定文件或目錄路徑,支持通配符(如…

CI/CD—GitLab部署

GitLab簡介: GitLab 是一個用于代碼托管和軟件開發協作的平臺,在全球開發者社區及企業中應用廣泛,以下是對它的詳細介紹: 主要功能 代碼托管:提供了基于 Git 的代碼倉庫管理功能,支持創建、克隆、推送、…

ubuntu軟件

視頻軟件,大部分的編碼都能適應 sudo apt install vlc圖片軟件 sudo apt install gwenview截圖軟件 sudo apt install flameshot設置快捷鍵 flameshot flameshot gui -p /home/cyun/Pictures/flameshot也就是把它保存到一個自定義的路徑 菜單更換 sudo apt r…

Easysearch 使用 AWS S3 進行快照備份與還原:完整指南及常見錯誤排查

Easysearch 可以使用 AWS S3 作為遠程存儲庫,進行索引的快照(Snapshot)備份和恢復。同時,Easysearch 內置了 S3 插件,無需額外安裝。以下是完整的配置和操作步驟。 1. 在 AWS S3 上創建存儲桶 登錄 AWS 控制臺&#x…

【系統架構設計師】性能評估

目錄 1. 說明2. 基準測試程序3. Web服務器的性能評估4. 系統監視5. 例題5.1 例題1 1. 說明 1.性能評估是為了一個目的,按照一定的步驟,選用一定的度量項目,通過建模和實現,對一個系統的性能進行各項檢測,對測試結果做…

動態規劃-第2篇

前言:在上一篇文章中,我們了解了動態規劃的基本概念和解決問題的基本思路。通過分解問題、存儲子問題的解,動態規劃為我們提供了高效的解決方案。然而,動態規劃并不是一成不變的,它有很多不同的技巧和變種,…

基于Redis實現限流

限流盡可能在滿足需求的情況下越簡單越好! 1、基于Redsi的increment方法實現固定窗口限流 Redis的increment方法保證并發線程安全窗口盡可能越小越好(太大可能某一小段時間就打滿請求剩下的都拿不到令牌了)這個原理其實就是用當前時間戳然后除窗口大小 在這個窗口大…

【工具使用】IDEA 社區版如何創建 Spring Boot 項目(詳細教程)

IDEA 社區版如何創建 Spring Boot 項目(詳細教程) Spring Boot 以其簡潔、高效的特性,成為 Java 開發的主流框架之一。雖然 IntelliJ IDEA 專業版提供了Spring Boot 項目向導,但 社區版(Community Edition&#xff09…

探索高性能AI識別和邊緣計算 | NVIDIA Jetson Orin Nano 8GB 開發套件的全面測評

隨著邊緣計算和人工智能技術的迅速發展,性能強大的嵌入式AI開發板成為開發者和企業關注的焦點。NVIDIA近期推出的Jetson Orin Nano 8GB開發套件,憑借其40 TOPS算力、高效的Ampere架構GPU以及出色的邊緣AI能力,引起了廣泛關注。本文將從配置性…

緊急救援!MySQL數據庫誤刪后的3種恢復方案

一、誤刪場景分類與恢復策略 ?常見誤操作場景?: DROP TABLE 誤刪單表(高頻事故)DELETE 誤刪數據(可通過事務回滾搶救)DROP DATABASE 刪除整個庫(需全量備份)服務器rm -rf(物理文件刪除)?恢復方案選擇矩陣?: 場景推薦方案時間窗口表結構刪除(DROP)備份恢復 + B…

開源免費日志服務ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式 通常,ELK Stack 使用 Logstash 或者 Filebeat 來采集 syslog 日志。 Beats 通常更輕量級,適合作為代理部署在各個日志源服務器上,而 Logstash 則功能更強大,可以進行更復雜的日志處理和…

單片機設計暖腳器研究

標題:單片機設計暖腳器研究 內容:1.摘要 本文聚焦于基于單片機設計暖腳器的研究。背景方面,在寒冷季節,暖腳器能有效改善腳部寒冷狀況,提升人們的舒適度,但傳統暖腳器存在功能單一、溫控不準確等問題。目的是設計一款智能、高效且…

藍橋杯省賽真題C++B組2024-握手問題

一、題目 【問題描述】 小藍組織了一場算法交流會議,總共有 50 人參加了本次會議。在會議上,大家進行了握手交流。按照慣例他們每個人都要與除自己以外的其他所有人進行一次握手(且僅有一次)。但有 7 個人,這 7 人彼此之間沒有進行握手(但這…

C#+AForge 實現視頻錄制

C#AForge 實現視頻錄制 ? 在C#中,使用AForge 庫實現視頻錄制功能是一個比較直接的過程。AForge 是一個開源的.NET框架,提供了許多用于處理圖像和視頻的類庫。 開發步驟 安裝AForge庫 ? 首先,確保你的項目中已經安裝了 AForge.Video和AFo…

PHP框架加載不上.env文件中的變量

以lumen5.5框架為例,根目錄中bootstrap文件夾下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是讀取所有.env中的文件的,這個是正常的,但是在代碼中的任何位置或者在config目錄下的databases.php里,代碼如…

21.Linux 線程庫的使用與封裝

在linux內核中并沒有線程的概念,只有輕量級進程LWP的概念,linux下的線程都是是由LWP進行模擬實現的。因此linux操作系統中不會提供線程的相關接口,只會提供輕量級線程的接口(如vfork,clone等)。但是在我們的…

Aliyun CTF 2025 web 復現

文章目錄 ezoj打卡OKoffens1veFakejump server ezoj 進來一看是算法題,先做了試試看,gpt寫了一個高效代碼通過了 通過后沒看見啥,根據頁面底部提示去/source看到源代碼,沒啥思路,直接看wp吧,跟算法題沒啥關系,關鍵是去…

《鴻蒙系統下AI模型訓練加速:時間成本的深度剖析與優化策略》

在當今數字化浪潮中,鴻蒙系統憑借其獨特的分布式架構與強大的生態潛力,為人工智能的發展注入了新的活力。隨著AI應用在鴻蒙系統上的日益普及,如何有效降低模型訓練的時間成本,成為了開發者與研究者們亟待攻克的關鍵課題。這不僅關…