【機器學習】深入探索SVM:支持向量機的原理與應用

?

?

目錄

🍔 SVM引入

1.1什么是SVM?

1.2支持向量機分類

1.3 線性可分、線性和非線性的區分

🍔 小結

學習目標

  1. 知道SVM的概念

🍔 SVM引入

1.1什么是SVM?

看一個故事,故事是這樣子的:

在很久以前的情人節,一位大俠要去救他的愛人,但魔鬼需要大俠先攻克他設置的防線,于是和他玩了一個游戲game。

魔鬼在桌子上似乎有規律放了兩種顏色的球,說:“你用一根棍分開它們?要求:盡量在放更多球之后,仍然適用。”

于是大俠這樣放,干的不錯?

然后魔鬼,又在桌上放了更多的球,似乎有一個球站錯了陣營。

大俠苦思冥想似乎記得學過SVM技術,于是就采用SVM試試。

這里的 SVM就試圖把棍放在最佳位置,好讓在棍的兩邊有盡可能大的間隙。

現在即使魔鬼放了更多的球,棍仍然是一個好的分界線。

在SVM 工具箱中有另一個更加重要的 trick(招式) 。 魔鬼看到大俠已經學會了前面一個trick,于是魔鬼給了大俠一個新的挑戰。

現在,大俠沒有棍可以很好幫他分開兩種球了,現在怎么辦呢?當然又想起了放大招---SVM。像所有武俠片中一樣大俠桌子一拍,球飛到空中。然后,憑借大俠練就的輕功,大俠抓起一張紙,插到了兩種球的中間。

現在,從魔鬼的角度看這些球,這些球看起來像是被一條曲線分開了。

最后,魔鬼被折服了

再之后,無聊的大人們,把這些球叫做 「data」 ,把棍子叫做 「classifier」 , 最大間隙trick 叫做 「optimization」 , 拍桌子叫做 「kernelling」 , 那張紙叫做 「hyperplane」。

1.2支持向量機分類

支持向量機的基本模型是定義在特征空間上的間隔最大的線性分類器。它是一種二分類的模型,當采用了核技巧之后,支持向量機可以用于非線性分類。不同類型的支持向量機解決不同問題:

(1)線性可分支持向量機(硬間隔支持向量機):

當訓練數據線性可分的時候,通過硬間隔最大化,學習得到一個線性可分支持向量機。

(2)線性支持向量機(軟間隔支持向量機):

當訓練數據近似線性可分時,通過軟間隔最大化,學習一個線性支持向量機。

(3)非線性支持向量機:

當訓練數據不可分的時候,通過使用核技巧以及軟間隔最大化,學得一個非線性支持向量機。

1.3 線性可分、線性和非線性的區分

第一個圖是線性可分,我們借助線性可分支持向量機完成分類。第二個圖是不能完全線性可分,我們通過線性支持向量機解決。第三個圖是完全線性不可分的,需要借助非線性支持向量機分類。

通過上述描述,我們抽象其中的藍球和紅球,并將兩種顏色的球轉化為二維平面上的點坐標,籃球映射為黑球,紅球映射為白球。使用直線H1,H2和H3分類這兩類顏色的球,圖中的H1不能很好的區分黑球和白球,可以看到H2和H3都能很好的區分這兩種顏色的球。

區分數據集。 我們能夠想到和H2和H3這樣的直線一樣可以區分兩種顏色的球體有很多種條直線,雖然他們都能夠很好的分類已經存在的黑球和白球,也就是我們之前講到的訓練集分類效果很好,訓練誤差為0。但是不能保證這些超平面在未知的實例上運行效果會很好,和上面魔鬼和大俠的例子一樣,當魔鬼放置更多的黑球或白球的時候,我們提到的這些平面還能很好的讓這些未知的球得到很好的分類嗎?

我們這里考慮泛化誤差的影響。 根據在檢驗樣本上的運行效果,分類器必須從這些分類超平面中選擇一個來表示它的決策邊界。滿足這個條件的很多,但是使得泛化誤差最小的條件就是邊際margin最大的情況。如左圖的邊際不及右邊的邊際margin大,我們選擇右邊的圖作為邊界最好的劃分。因為 在有新的點出現的時候左邊圖的邊際會錯誤分類一些點,而右側就能很好的分類。

🍔 小結

1.SVM學習的目的在于找到具有最大邊緣的超平面。

為啥:因為最大邊緣超平面可以使得我們的訓練誤差很小的情況下,當有新數據的到來時也能使得測試誤差達到最小。

2.支持向量概念:

所有坐落在邊際兩邊的超平面上的點被稱作” 支持向量 (support vectors)"。

如下圖,這兩個特殊點是支撐我們構建最大邊緣超平面的。這些點所在的邊緣超平面上的點,稱為支持向量。下圖中紅色的點對右圖中的紅色的直線或平面有支撐作用,這些點是關鍵點。而其他點對最優超平面都沒有影響。

?

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

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

相關文章

pycharm 運行遠程環境問題 Error:Failed to prepare environment.

問題排查 拿到更詳細的報錯信息: Help > Diagnostic Tools > Debug Log Settings section: 添加下面的配置 com.intellij.execution.configurations.GeneralCommandLine 重顯報錯,我這里是再次運行代碼打開 Help | Collect Logs and Diagnosti…

一組開源、免費、Metro風格的 WPF UI 控件庫

前言 今天大姚給大家分享一個開源、免費、Metro風格的 WPF UI 控件庫:MahApps.Metro。 項目介紹 MahApps.Metro 是一個開源、免費、Metro風格的 WPF UI 控件庫,提供了現代化、平滑和美觀的控件和樣式,幫助開發人員輕松創建具有現代感的 Win…

讀寫和解析簡單的 nc 文件

NetCDF 文件格式在氣象數據工程領域占據著舉足輕重的地位,其結構靈活、強兼容性等優勢使其成為該領域的一個標準。無論是從事學術研究還是工程實踐,掌握這種數據格式變得越發重要。其次,我注意到目前社區中氣象編程大多數課程都聚焦于某個特定…

Mac m1,m2,m3芯片使用nvm安裝node14報錯

使用nvm安裝了node 12/16/18都沒有問題,到14就報錯了。第一次看到這個報錯有點懵,查詢資料發現是Mac芯片的問題。 Issue上提供了兩個方案: 1、為了在arm64的Mac上安裝node 14,需要使用Rosseta,可以通過以下命令安裝 …

【計算機網絡】host文件

host文件的主要功能: 域名解析 本地映射:host文件的主要功能是將**域名映射到相應的 IP 地址**。當計算機需要訪問一個網站或服務時,它會首先在 host文件中查找該域名對應的 IP 地址。如果在 host文件中找到了匹配的域名和 IP 地址映射&…

vue3中customRef的用法以及使用場景

1. 基本概念 customRef 是 Vue3 提供的用于創建自定義響應式引用的 API,允許顯式地控制依賴追蹤和觸發響應。它返回一個帶有 get 和 set 函數的工廠函數來自定義 ref 的行為。 1.1 基本語法 import { customRef } from vuefunction createCustomRef(value) {retu…

周末總結(2024/01/25)

工作 人際關系核心實踐: 要學會隨時回應別人的善意,執行時間控制在5分鐘以內 堅持每天早會打招呼 遇到接不住的話題時拉低自己,抬高別人(無陰陽氣息) 朋友圈點贊控制在5min以內,職場社交不要放在5min以外 職場的人際關系在面對利…

C++和Python實現SQL Server數據庫導出數據到S3并導入Redshift數據倉庫

用C實現高性能數據處理,Python實現操作Redshift導入數據文件。 在Visual Studio 2022中用C和ODBC API導出SQL Server數據庫中張表中的所有表的數據為CSV文件格式的數據流,用逗號作為分隔符,用雙引號包裹每個數據,字符串類型的數據…

基于OpenCV實現的答題卡自動判卷系統

一、圖像預處理 ?? 二、查找答題卡輪廓 ?? 三、透視變換 ?? 四、判卷與評分 ?? 五、主函數 六、完整代碼+測試圖像集 總結 ?? 在這篇博客中,我將分享如何使用Python結合OpenCV庫開發一個答題卡自動判卷系統。這個系統能夠自動從掃描的答題卡中提取信…

Android AOP:aspectjx

加入引用 在整個項目的 build.gradle 中,添加 classpath "com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10" 可以看到測試demo的 gradle 版本是很低的。 基于 github 上的文檔,可以看到原版只支持到 gradle 4.4 。后續需要使…

第84期 | GPTSecurity周報

GPTSecurity是一個涵蓋了前沿學術研究和實踐經驗分享的社區,集成了生成預訓練Transformer(GPT)、人工智能生成內容(AIGC)以及大語言模型(LLM)等安全領域應用的知識。在這里,您可以找…

TCP/IP 協議:互聯網通信的基石

TCP/IP 協議:互聯網通信的基石 引言 TCP/IP協議,全稱為傳輸控制協議/互聯網協議,是互聯網上應用最為廣泛的通信協議。它定義了數據如何在網絡上傳輸,是構建現代互聯網的基礎。本文將深入探討TCP/IP協議的原理、結構、應用以及其在互聯網通信中的重要性。 TCP/IP 協議概述…

蛇年特別版貪吃蛇H5小游戲

該作者的原創文章目錄: 生產制造執行MES系統的需求設計和實現 企業后勤管理系統的需求設計和實現 行政辦公管理系統的需求設計和實現 人力資源管理HR系統的需求設計和實現 企業財務管理系統的需求設計和實現 董事會辦公管理系統的需求設計和實現 公司組織架構圖設計工具 庫存管…

MapReduce,Yarn,Spark理解與執行流程

MapReduce的API理解 Mapper 如果是單詞計數:hello:1, hello:1, world:1 public void map(Object key, // 首字符偏移量Text value, // 文件的一行內容Context context) // Mapper端的上下文,…

如何將xps文件轉換為txt文件?xps轉為pdf,pdf轉為txt,提取pdf表格并轉為txt

文章目錄 xps轉txt方法一方法二 pdf轉txt整頁轉txt提取pdf表格,并轉為txt 總結另外參考XPS文件轉換為TXT文件XPS文件轉換為PDF文件PDF文件轉換為TXT文件提取PDF表格并轉為TXT示例代碼(部分) 本文測試代碼已上傳,路徑如下&#xff…

Day26-【13003】短文,什么是順序表?順序表和數組、內存地址的關系?順序表的插入、刪除操作如何實現?操作的時間復雜度是多少?

文章目錄 第二節,線性表的順序存儲及實現概覽什么是順序表和鏈表?順序存儲的叫順序表順序表和數組還有內存地址的關系?順序表的基本操作如何實現?1、插入操作如何實現?2、刪除操作如何實現?3、賦值和查找操…

【含開題報告+文檔+PPT+源碼】基于SpringBoot的校園跑腿管理系統

開題報告 本文旨在探討校園跑腿系統的設計與實現,通過深入研究與分析,實現了一套包含用戶管理、發布跑腿單、跑腿搶單、跑腿單評論、在線留言以及用戶在線充值等功能的綜合性系統。該系統以提高校園內物品跑腿與配送效率為核心目標,為廣大學…

zookeeper的介紹和簡單使用

1 zookerper介紹 zookeeper是一個開源的分布式協調服務,由Apache軟件基金會提供,主要用于解決分布式應用中的數據管理、狀態同步和集群協調等問題。通過提供一個高性能、高可用的協調服務,幫助構建可靠的分布式系統。 Zookeeper的特點和功能…

二級 二維數組3

對角線之和 題目描述 輸入一個矩陣&#xff0c;輸出右上-左下對角線上的數字和 輸入 輸入1個整數N。(N<10)表示矩陣有n行n列 輸出 對角線的和 樣例 輸入復制 4 1 2 3 4 2 3 4 5 4 5 6 7 1 2 3 4 輸出復制 14 #include<iostream> using namespace std; int main() {i…

Spring Boot MyBatis Plus 版本兼容問題(記錄)

Spring Boot & MyBatis Plus 版本兼容問題&#xff08;Invalid value type for attribute factoryBeanObjectType: java.lang.String&#xff09; 問題描述問題排查1. 檢查 MapperScan 的路徑2. 項目中沒有配置 FactoryBean3. 檢查 Spring 和 MyBatis Plus 版本兼容性 解決…