Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實踐課件-第9章_第1頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實踐課件-第9章_第2頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實踐課件-第9章_第3頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實踐課件-第9章_第4頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實踐課件-第9章_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章概論西華大學機器學習第九章支持向量機XXX學校XXX2022目錄Contents線性支持向量機非線性分類手寫數(shù)字識別

知識引入3人們把這些球叫做“data”,把棍子叫做“classifier”,最大間隙叫做“optimization”,拍桌子叫做“kernelling”,那張紙叫做“hyperplane”,這就是支持向量機的核心思想。

本章知識圖譜4線性支持向量機一1線性支持向量機6

一個最基本的支持向量機(SupportVectorMachine,SVM)是一條直線,它能夠用來完美劃分線性可分的兩種類別。但這又不是一條普通的直線,這是無數(shù)條可以分類的直線當中最完美的,因為它恰好在兩個類的中間,距離兩個類的點都一樣遠。在進一步了解支持向量機的原理之前,我們需要先了解其基本的數(shù)學原理。1.1間隔與支持向量7

圖的(b)和(c)分別給出了B、C兩種不同的分類方案,其中黑色實線為分界線,術(shù)語稱為“分割超平面”(separatinghyperplane)。每個分割超平面對應(yīng)了一個線性分類器。雖然從分類結(jié)果上看,分類器A和分類器B的效果是相同的。但是它們的性能是有差距的。1.1間隔與支持向量8

添加一個紅點(圖中箭頭所示)??梢钥吹?,分類器A依然能很好的分類結(jié)果,而分類器B則出現(xiàn)了分類錯誤。顯然分類器A的“分割超平面”放置的位置優(yōu)于分類器B放置的位置,SVM算法也是這么認為的,它的依據(jù)就是分類器A的分類間隔比分類器B的分類間隔大。這里涉及到第一個SVM獨有的概念——分類間隔。1.1間隔與支持向量9

在樣本空間中,劃分超平面可以通過如下線性方程表示:

1.1間隔與支持向量10

距離超平面最近的幾個訓練樣本點使式(9-3)的等號成立,稱為支持向量(supportvector)。兩個異類支持向量到超平面的距離之和為

被稱為“間隔”(margin)。1.1間隔與支持向量11

1.2對偶問題12通過上一節(jié)講解,我們希望通過求解式(6)來得到劃分超平面對應(yīng)的模型。令

1.2對偶問題13

1.2對偶問題14可將式(9)帶入式(7)得到:

在式(12)中,只需要再知道拉格朗日乘子α和偏移量b就能確定超平面方程了。其中有一種SMO(SequentialMinimalOptimization)算法可以用來求解α和b。將在下一小節(jié)中專門介紹其算法思想。1.3SMO算法15SMO表示序列最小優(yōu)化,其核心思想是將大優(yōu)化問題分解為多個小優(yōu)化問題來求解。這些小優(yōu)化問題一般很容易求解,并且對它們進行順序求解的結(jié)果與將它們作為整體來求解的結(jié)果是完全一致的。在結(jié)果完全相同時,SMO算法的求解時間會短很多。

1.3.1簡化版SMO16

首先需要一個加載函數(shù)loadDataSet()對文件進行逐行解析,得到每一行類標簽和整個數(shù)據(jù)矩陣。需要構(gòu)建一個輔助函數(shù)selectJrand(),用于在某一區(qū)間范圍內(nèi)隨機選擇一個整數(shù)。同時需要一個輔助函數(shù)clipAlpha(),在數(shù)值較大時對其進行調(diào)整。1.3.1簡化版SMO算法17

接下來實現(xiàn)簡化版SMO的功能。由于程序較為復雜,為了方便讀者理解,提供了該函數(shù)的偽代碼。1.3.1簡化版SMO算法18簡化版SMO代碼:smoSimple()一共有五個參數(shù),分別表示數(shù)據(jù)集、標簽類別、常數(shù)C、容錯率、退出當前循環(huán)最大修改次數(shù)。測試結(jié)果:1.3.2完整版SMO算法19完整版SMO代碼:

完整版SMO在alpha更改和代數(shù)運算優(yōu)化的環(huán)節(jié)都一樣,唯一區(qū)別在于選擇alpha的方式不同。完整版的SMO算法添加了一些能夠提速的啟發(fā)方法。PlattSMO算法通過第一個外循環(huán)來選擇第一個alpha并且選擇過程是兩種方式之間交替進行。一種方式是所有數(shù)據(jù)集上進行單遍掃描;另一種方式是在非邊界alpha中實現(xiàn)單遍掃描。測試結(jié)果:可以看出,相比簡化版SMO,完整版SMO算法選出的支持向量樣點更多,更接近理想的分隔超平面。非線性分類二2.1核函數(shù)概述21解決現(xiàn)實任務(wù)中,樣本空間中可能不存在一個能正確劃分兩類樣本的超平面的問題。原始空間更高維空間映射通過核函數(shù)實現(xiàn)將樣本從原始空間映射到一個更高維的空間。2.1核函數(shù)概述22注意:樣本特征空間的好壞對支持向量機的性能至關(guān)重要。在不知道特征映射的形式時,我們并不知道什么樣的核函數(shù)是適合的,于是核函數(shù)的選擇顯得至關(guān)重要。下面是幾種常見的核函數(shù):

表達式參數(shù)線性核

多項式核高斯徑向基核拉普拉斯核Sigmoid核2.2高斯徑向基核函數(shù)23

徑向基函數(shù)是SVM中常用的一個核函數(shù),它是一個采用向量作為自變量的函數(shù),能夠基于向量距離運算輸出一個標量。這個距離可以是從(0,0)向量或者其他向量開始計算的距離。接下來將會使用到徑向基函數(shù)的高斯版本,表達式如下:

2.2高斯徑向基核函數(shù)241.核轉(zhuǎn)換函數(shù)數(shù)據(jù)集X和數(shù)據(jù)集某一行之間進行運算輸出核向量Kfor循環(huán)對矩陣的每個元素計算高斯函數(shù)的值如果kTup無法識別,就會拋出異常。2.2高斯徑向基核函數(shù)252.輔助函數(shù)

為了順利使用核函數(shù),還需要修改先前兩個函數(shù)innerL()和calcE()中的個別語句,在函數(shù)innerL(i,oS)中做如下對應(yīng)修改:#最優(yōu)修改量,求兩個向量的內(nèi)積(核函數(shù))#eta=2.0*oS.X[i,:]*oS.X[j,:].T-oS.X[i,:]*oS.X[i,:].T-oS.X[j,:]*oS.X[j,:].Teta=2.0*oS.K[i,j]-oS.K[i,i]-oS.K[j,j]#更新常數(shù)項b1b2改為b1=oS.b-Ei-oS.labelMat[i]*(oS.alphas[i]-alphaIold)*\oS.K[i,i]-oS.labelMat[j]*(oS.alphas[j]-alpahJold)*oS.K[i,j]b2=oS.b-Ej-oS.labelMat[i]*(oS.alphas[i]-alphaIold)*\oS.K[i,j]-oS.labelMat[j]*(oS.alphas[j]-alpahJold)*oS.K[j,j]calcEk(oS,k)中做如下修改:#fXk=float(multiply(oS.alphas,oS.labelMat).T*(oS.X*oS.X[k,:].T))+oS.bfXk=float(multiply(oS.alphas,oS.labelMat).T*oS.K[:,k]+oS.b)2.2高斯徑向基核函數(shù)263.測試核函數(shù)測試一下核函數(shù)是否運行成功,這里使用參數(shù)kl值為1.3輸出測試結(jié)果:

選擇出了27個支持向量,在訓練集上的錯誤率為3%,在測試集上的錯誤率為4%。讀者還可嘗試使用不同的kl參數(shù)值,觀察支持向量個數(shù)、錯誤率、訓練錯誤的變化情況,嘗試找到最優(yōu)值。案例:手寫數(shù)字識別三3.2案例實現(xiàn)24

使用Python的機器學習庫sklearn,通過高斯徑向量核函數(shù)實現(xiàn)SVM,主要是通過sklearn.svm中的SVC類來實現(xiàn)的,實現(xiàn)的方法主要包括三個步驟:創(chuàng)建SVC對象并進行初始化。調(diào)用對象的fit方法進行訓練函數(shù)格式:fit(X,y)說明:以X為訓練集,以y為目標值對模型進行訓練。調(diào)用對象的predict方法進行預測(1)函數(shù)格式:clf.predict(T)(2)主要參數(shù):用于測試的數(shù)據(jù)集T。3.2案例實現(xiàn)

針對本案例,可以按照以下步驟來實現(xiàn):通過img2vector(filename)函數(shù)將32x32的二進制圖像轉(zhuǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論