哪個網(wǎng)站做首飾批發(fā)好百度網(wǎng)頁版登錄入口官網(wǎng)
【機(jī)器學(xué)習(xí)】12.十大算法之一支持向量機(jī)(SVM - Support Vector Machine)算法原理講解
- 一·摘要
- 二·個人簡介
- 三·基本概念
- 四·支持向量與超平面
- 4.1 超平面(Hyperplane)
- 4.2 支持向量(Support Vectors)
- 4.3 核技巧(Kernel Trick)
- 4.4 軟間隔與正則化
- 五·SVM算法原理
- 5.1 點到超平面的距離公式
- 5.2 最大間隔的優(yōu)化模型
- 六·松弛變量
- 6.1 松弛變量的定義
- 6.2 優(yōu)化模型的修改
- 6.3 軟間隔與硬間隔
- 6.4 核技巧與松弛變量
- 七·核函數(shù)
- 7.1 核函數(shù)的基本概念
- 7.2 常用的核函數(shù)
- 7.3 核函數(shù)的作用
一·摘要
支持向量機(jī)(SVM)是一種高效的監(jiān)督學(xué)習(xí)算法,廣泛應(yīng)用于分類和回歸問題。它通過在特征空間中尋找一個最優(yōu)的超平面來區(qū)分不同類別的數(shù)據(jù)點,目標(biāo)是最大化兩類數(shù)據(jù)點之間的間隔,從而提高模型的泛化能力。SVM的關(guān)鍵概念包括超平面、間隔、支持向量以及核函數(shù),其中核函數(shù)允許SVM處理非線性問題,通過將數(shù)據(jù)映射到更高維的空間來尋找線性可分的超平面。此外,軟間隔和正則化技術(shù)用于處理數(shù)據(jù)的非完全線性可分性,同時控制模型復(fù)雜度,防止過擬合。SVM的實現(xiàn)涉及選擇合適的核函數(shù),構(gòu)建并求解一個凸二次規(guī)劃問題,以及評估和應(yīng)用訓(xùn)練好的模型。它的優(yōu)點在于模型簡單、易于實現(xiàn),且具有良好的泛化能力,但計算復(fù)雜度高,對核函數(shù)和參數(shù)選擇敏感,且在處理大規(guī)模數(shù)據(jù)集時可能會遇到性能瓶頸。
二·個人簡介
🏘?🏘?個人主頁:以山河作禮。
🎖?🎖?:Python領(lǐng)域新星創(chuàng)作者,CSDN實力新星認(rèn)證,CSDN內(nèi)容合伙人,阿里云社區(qū)專家博主,新星計劃導(dǎo)師,在職數(shù)據(jù)分析師。
💕💕悲索之人烈焰加身,墮落者不可饒恕。永恒燃燒的羽翼,帶我脫離凡間的沉淪。

類型 | 專欄 |
---|---|
Python基礎(chǔ) | Python基礎(chǔ)入門—詳解版 |
Python進(jìn)階 | Python基礎(chǔ)入門—模塊版 |
Python高級 | Python網(wǎng)絡(luò)爬蟲從入門到精通🔥🔥🔥 |
Web全棧開發(fā) | Django基礎(chǔ)入門 |
Web全棧開發(fā) | HTML與CSS基礎(chǔ)入門 |
Web全棧開發(fā) | JavaScript基礎(chǔ)入門 |
Python數(shù)據(jù)分析 | Python數(shù)據(jù)分析項目🔥🔥 |
機(jī)器學(xué)習(xí) | 機(jī)器學(xué)習(xí)算法🔥🔥 |
人工智能 | 人工智能 |
三·基本概念
支持向量機(jī)(Support Vector Machine, SVM)是一種強(qiáng)大的機(jī)器學(xué)習(xí)算法,主要用于解決分類和回歸問題。它基于統(tǒng)計學(xué)習(xí)理論中的結(jié)構(gòu)風(fēng)險最小化原則,通過在特征空間中尋找一個最優(yōu)的決策邊界,即超平面,來區(qū)分不同的數(shù)據(jù)類別。這個超平面的選擇旨在最大化數(shù)據(jù)點到超平面的最短距離,這個距離被稱為間隔(margin)。間隔越大,模型的泛化能力通常越好。
SVM的核心是支持向量,這是一組對確定超平面位置和方向至關(guān)重要的數(shù)據(jù)點,它們是距離超平面最近的點。如果數(shù)據(jù)不是線性可分的,SVM通過引入核函數(shù)將原始數(shù)據(jù)映射到一個更高維的空間,在這個新空間中尋找線性可分的超平面。常用的核函數(shù)包括線性核、多項式核、徑向基函數(shù)(RBF)核等。
為了處理數(shù)據(jù)中的噪聲和異常點,SVM引入了軟間隔的概念,允許一些數(shù)據(jù)點被錯誤分類,以換取更好的泛化性能。同時,通過正則化項控制模型的復(fù)雜度,避免過擬合。SVM的訓(xùn)練過程通常涉及到求解一個凸二次規(guī)劃問題,以找到最優(yōu)的超平面參數(shù)。
見下圖,在一個二維環(huán)境中,其中點R,S,G點和其它靠近中間黑線的點可以看作為支持向量,它們可以決定分類器,也就是黑線的具體參數(shù)。
四·支持向量與超平面
支持向量和超平面是支持向量機(jī)(SVM)算法中的核心概念。下面我將詳細(xì)解釋這兩個概念:
4.1 超平面(Hyperplane)
在數(shù)學(xué)中,超平面是一個線性子空間,其維度比它所在的空間低一維。例如,在二維空間中,超平面是一條直線;在三維空間中,它是平面;在更高維空間中,它仍然是一個線性邊界,但可能難以直觀理解。
在SVM中,超平面用于將數(shù)據(jù)分為不同的類別。對于二維空間,你可以想象超平面是一條直線,將空間分為兩部分,每部分包含一個類別的數(shù)據(jù)點。對于更高維度的空間,超平面是一個更高維的線性邊界,同樣用于分隔數(shù)據(jù)點。
4.2 支持向量(Support Vectors)
支持向量是那些位于距離超平面最近的數(shù)據(jù)點。它們是SVM在訓(xùn)練過程中用來確定超平面位置的關(guān)鍵數(shù)據(jù)點。如果從這些點中移除任何一個,都會改變超平面的位置和方向。
支持向量之所以重要,是因為它們定義了數(shù)據(jù)點之間的邊界(即間隔)。SVM的目標(biāo)是找到這樣一個超平面,使得最近的這些支持向量(即距離超平面最近的數(shù)據(jù)點)與超平面之間的距離(間隔)最大化。這個間隔的大小是衡量模型泛化能力的一個重要指標(biāo)。
4.3 核技巧(Kernel Trick)
在實際應(yīng)用中,數(shù)據(jù)可能不是線性可分的。這時,SVM可以使用核技巧來處理非線性問題。核函數(shù)可以將原始數(shù)據(jù)映射到一個更高維的空間,在新的空間中尋找一個線性可分的超平面。常用的核函數(shù)包括線性核、多項式核、徑向基函數(shù)(RBF)核等。
4.4 軟間隔與正則化
在處理實際數(shù)據(jù)時,可能無法找到一個完美的超平面來完全分開所有數(shù)據(jù)點。這時,SVM引入了軟間隔的概念,允許一些數(shù)據(jù)點被錯誤分類,以換取更好的泛化能力。同時,通過正則化項(通常是法向量的范數(shù))來控制模型的復(fù)雜度,避免過擬合。
五·SVM算法原理
5.1 點到超平面的距離公式
點到超平面的距離公式用于計算一個點到給定超平面的最短距離。超平面在n維空間中可以用以下方程式表示:
其中:
w 是一個n維的法向量,垂直于超平面。
x 是一個n維的點,位于空間中。
b 是超平面的偏置項。
點 x 到這個超平面的垂直距離 d 可以通過以下公式計算:
這個公式的幾何意義是:從點 𝑥 向超平面作垂線,垂足到點 𝑥的距離就是𝑑這個距離也代表了點 𝑥到超平面的“間隔”。在支持向量機(jī)中,間隔的大小是非常重要的,因為它與模型的泛化能力有關(guān)。SVM的目標(biāo)是找到這樣一個超平面,使得間隔最大化,即所有數(shù)據(jù)點到這個超平面的距離之和最大。
5.2 最大間隔的優(yōu)化模型
線性可分情況下的優(yōu)化模型
當(dāng)數(shù)據(jù)是線性可分的,即存在一個超平面能夠完美地將不同類別的數(shù)據(jù)點分開,SVM的目標(biāo)是找到一個超平面,使得距離最近的兩個數(shù)據(jù)點(即支持向量)到超平面的距離最大化。這個距離被稱為間隔(margin)。
超平面可以表示為:
最大間隔優(yōu)化問題
SVM的目標(biāo)函數(shù)是最大化間隔,可以表示為:
引入拉格朗日乘子
對偶問題
六·松弛變量
在支持向量機(jī)(SVM)中,松弛變量(Slack Variables)是引入的一種機(jī)制,用于處理數(shù)據(jù)集中的非線性可分情況。在理想情況下,如果數(shù)據(jù)是線性可分的,SVM可以找到一個超平面將不同類別的數(shù)據(jù)點完全分開,同時最大化間隔。然而,在現(xiàn)實世界中,很多數(shù)據(jù)集并不是完全線性可分的,這就需要使用松弛變量來允許一些數(shù)據(jù)點被錯誤分類,從而提高模型的泛化能力。
6.1 松弛變量的定義
6.2 優(yōu)化模型的修改
這里的 𝐶是一個正的調(diào)節(jié)參數(shù),用于控制模型對誤分類的懲罰程度。𝐶的值越大,模型對誤分類的懲罰越重,越傾向于找到?jīng)]有誤分類的解;𝐶的值越小,模型對誤分類的容忍度越高,越容易找到間隔更大的解,即使這意味著更多的誤分類。
6.3 軟間隔與硬間隔
- 硬間隔(Hard Margin):沒有引入松弛變量的SVM,要求所有數(shù)據(jù)點都在間隔邊界的外側(cè)或邊界上,即不允許任何誤分類。
- 軟間隔(Soft Margin):引入了松弛變量的SVM,允許一些數(shù)據(jù)點在間隔邊界的內(nèi)側(cè),即允許一定程度的誤分類。 核技巧與松弛變量.
6.4 核技巧與松弛變量
即使在非線性可分的情況下,通過使用核技巧將數(shù)據(jù)映射到高維空間,結(jié)合松弛變量,SVM仍然可以找到具有最大間隔的超平面。
七·核函數(shù)
核函數(shù)(Kernel Function)是支持向量機(jī)(SVM)中的一種重要工具,它允許SVM在高維空間中有效地處理非線性問題。核函數(shù)的基本思想是通過映射將原始數(shù)據(jù)從低維空間映射到高維空間,在這個高維空間中尋找數(shù)據(jù)的線性可分性。
7.1 核函數(shù)的基本概念
7.2 常用的核函數(shù)
7.3 核函數(shù)的作用
- 處理非線性問題:通過映射到高維空間,核函數(shù)使得原本在低維空間中線性不可分的數(shù)據(jù)在高維空間中線性可分。
- 提高模型表達(dá)能力:不同的核函數(shù)可以捕捉數(shù)據(jù)的不同特征,提高模型的表達(dá)能力。
- 減少計算復(fù)雜度:使用核函數(shù)可以避免直接在高維空間中進(jìn)行計算,從而減少計算復(fù)雜度。