真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python核函數(shù)求窗寬 python函數(shù)

2020-05-22 第十三章 支持向量機(jī)模型(python)

SVM 是 Support Vector Machine 的簡(jiǎn)稱(chēng),它的中文名為支持向量機(jī),屬于一種有監(jiān)督的機(jī)器學(xué)習(xí)算法,可用于離散因變量的分類(lèi)和連續(xù)因變量的預(yù)測(cè)。通常情況下,該算法相對(duì)于其他單一的分類(lèi)算法(如 Logistic 回歸、決策樹(shù)、樸素貝葉斯、 KNN 等)會(huì)有更好的預(yù)測(cè)準(zhǔn)確率,主要是因?yàn)樗梢詫⒌途S線性不可分的空間轉(zhuǎn)換為高維的線性可分空間。

創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供大祥網(wǎng)站建設(shè)、大祥做網(wǎng)站、大祥網(wǎng)站設(shè)計(jì)、大祥網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、大祥企業(yè)網(wǎng)站模板建站服務(wù),十多年大祥做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

“分割帶”代表了模型劃分樣本點(diǎn)的能力或可信度,“分割帶”越寬,說(shuō)明模型能夠?qū)颖军c(diǎn)劃分得越清晰,進(jìn)而保證模型泛化能力越強(qiáng),分類(lèi)的可信度越高;反之,“分割帶”越窄,說(shuō)明模型的準(zhǔn)確率越容易受到異常點(diǎn)的影響,進(jìn)而理解為模型的預(yù)測(cè)能力越弱,分類(lèi)的可信度越低。

線性可分的 所對(duì)應(yīng)的函數(shù)間隔滿(mǎn)足 的條件,故 就等于 。所以,可以將目標(biāo)函數(shù) 等價(jià)為如下的表達(dá)式:

假設(shè)存在一個(gè)需要最小化的目標(biāo)函數(shù) ,并且該目標(biāo)函數(shù)同時(shí)受到 的約束。如需得到最優(yōu)化的解,則需要利用拉格朗日對(duì)偶性將原始的最優(yōu)化問(wèn)題轉(zhuǎn)換為對(duì)偶問(wèn)題,即:

分割面的求解

分割面的表達(dá)式

對(duì)于非線性SVM模型而言,需要經(jīng)過(guò)兩個(gè)步驟,一個(gè)是將原始空間中的樣本點(diǎn)映射到高維的新空間中,另一個(gè)是在新空間中尋找一個(gè)用于識(shí)別各類(lèi)別樣本點(diǎn)線性“超平面”。

假設(shè)原始空間中的樣本點(diǎn)為 ,將樣本通過(guò)某種轉(zhuǎn)換 映射到高維空間中,則非線性SVM模型的目標(biāo)函數(shù)可以表示為:

其中,內(nèi)積 可以利用核函數(shù)替換,即 。對(duì)于上式而言,同樣需要計(jì)算最優(yōu)的拉格朗日乘積 ,進(jìn)而可以得到線性“超平面” 與 的值:

假設(shè)原始空間中的兩個(gè)樣本點(diǎn)為 ,在其擴(kuò)展到高維空間后,它們的內(nèi)積 如果等于樣本點(diǎn) 在原始空間中某個(gè)函數(shù)的輸出,那么該函數(shù)就稱(chēng)為核函數(shù)。

線性核函數(shù)的表達(dá)式為 ,故對(duì)應(yīng)的分割“超平面”為:

多項(xiàng)式核函數(shù)的表達(dá)式為 ,故對(duì)應(yīng)的分割“超平面”為:

高斯核函數(shù)的表達(dá)式為 ,故對(duì)應(yīng)的分割“超平面”為:

Sigmoid 核函數(shù)的表達(dá)式為 ,故對(duì)應(yīng)的分割“超平面”為:

在實(shí)際應(yīng)用中, SVM 模型對(duì)核函數(shù)的選擇是非常敏感的,所以需要通過(guò)先驗(yàn)的領(lǐng)域知識(shí)或者交叉驗(yàn)證的方法選出合理的核函數(shù)。大多數(shù)情況下,選擇高斯核函數(shù)是一種相對(duì)偷懶而有效的方法,因?yàn)楦咚购耸且环N指數(shù)函數(shù),它的泰勒展開(kāi)式可以是無(wú)窮維的,即相當(dāng)于把原始樣本點(diǎn)映射到高維空間中。

output_13_0.png

支持向量機(jī)—從推導(dǎo)到python手寫(xiě)

筆者比較懶能截圖的地方都截圖了。

支持向量機(jī)分為三類(lèi):

(1)線性可分支持向量機(jī),樣本線性可分,可通過(guò)硬間隔最大化訓(xùn)練一個(gè)分類(lèi)器。

(2)線性支持向量機(jī),樣本基本線性可分,可通過(guò)軟間隔最大化訓(xùn)練一個(gè)分類(lèi)器。

(3)非線性支持向量機(jī),樣本線性不可分,可通過(guò)核函數(shù)和軟間隔最大化訓(xùn)練一個(gè)分類(lèi)器。

上面最不好理解的恐怕就是硬間隔和軟間隔了,

說(shuō)白了硬間隔就是說(shuō)存在這么一個(gè)平面,可以把樣本完全正確無(wú)誤的分開(kāi),當(dāng)然這是一種極理想的情況,現(xiàn)實(shí)中不存在,所以就有了軟間隔。

軟間隔說(shuō)的是,不存在一個(gè)平面可以把樣本完全正確無(wú)誤的分開(kāi),因此呢允許一些樣本被分錯(cuò),怎么做呢就是加入松弛變量,因?yàn)橄M皱e(cuò)的樣本越小越好,因此松弛變量也有約束條件。加入松弛變量后,問(wèn)題就變?yōu)榫€性可分了,因?yàn)槭敲恳粋€(gè)樣本都線性可分,因此松弛變量是針對(duì)樣本的,每一個(gè)樣本都對(duì)應(yīng)一個(gè)不同的松弛變量。

其實(shí)感知機(jī)說(shuō)白了就是找到一條直線把樣本點(diǎn)分開(kāi),就是上方都是一類(lèi),下方是另一類(lèi)。當(dāng)然完全分開(kāi)是好事,往往是不能完全分開(kāi)的,因此就存在一個(gè)損失函數(shù),就是誤分類(lèi)點(diǎn)到這個(gè)平面的距離最短:

這里啰嗦一句,誤分類(lèi)點(diǎn)y*(wx+b)0,所以加個(gè)負(fù)號(hào)在前邊。

一般情況下||w||都是可以縮放,那么我們把它縮放到1,最后的目標(biāo)函數(shù)就變成了

間隔就是距離,我們假設(shè)分離超平面為 ,那么樣本點(diǎn)到這個(gè)平面的距離可以記為 。我們都知道通過(guò)感知機(jī)劃分的點(diǎn),超平面上方的點(diǎn) ,下方的點(diǎn) ,然后通過(guò)判斷 的值與y的符號(hào)是否一致來(lái)判斷分類(lèi)是否正確。根據(jù)這個(gè)思路函數(shù)間隔定義為:

支持向量的定義來(lái)源于幾何間隔,幾何間隔最直接的解釋是離分隔超平面最近點(diǎn)的距離,其他任何點(diǎn)到平面的距離都大于這個(gè)值,所以幾何間隔就是支持向量。然后呢同樣道理,w和b是可以縮放的,所以定義支持向量滿(mǎn)足如下條件:

再通俗一點(diǎn)說(shuō),支持向量是一些點(diǎn),這些點(diǎn)到分隔平面的距離最近,為了便于表示,把他們進(jìn)行一下縮放計(jì)算,讓他們滿(mǎn)足了wx+b=+-1.

核函數(shù)是支持向量機(jī)的核心概念之一,它存在的目的就是將維度轉(zhuǎn)換之后的計(jì)算簡(jiǎn)化,達(dá)到減少計(jì)算量的目的。我們都知道支持向量機(jī)求的是間距最大化,通常情況下我們求得的alpha都等于0,因此支持向量決定了間距最大化程度。

核函數(shù)的形式是這樣的

其中x(i)和x(j)都是向量,他們兩個(gè)相乘就是向量?jī)?nèi)積,相乘得到一個(gè)數(shù)。剛才說(shuō)了目標(biāo)函數(shù)一般只和支持向量有關(guān),因此在做核函數(shù)計(jì)算之前,實(shí)際就是選擇的支持向量進(jìn)行計(jì)算。

這個(gè)寫(xiě)完下面得再補(bǔ)充

我們知道了支持向量的概念,那么支持向量機(jī)的目標(biāo)函數(shù)是要使這兩個(gè)支持向量之間的距離盡可能的遠(yuǎn),因?yàn)檫@樣才能更好地把樣本點(diǎn)分開(kāi),當(dāng)然支持向量也要滿(mǎn)足最基本的約束條件,那就是分類(lèi)正確,還有就是其他點(diǎn)到分隔平面的距離要大于等于支持向量到分隔平面的距離。

這種凸優(yōu)化問(wèn)題都可以通過(guò)拉格朗日算子進(jìn)行優(yōu)化,就是把約束條件通過(guò)拉格朗日系數(shù)放到目標(biāo)函數(shù)上。這部分基礎(chǔ)知識(shí),就是拉格朗日算法可以將等式約束和不等式約束都加到目標(biāo)函數(shù)上,完成求解問(wèn)題的轉(zhuǎn)換,但是要滿(mǎn)足一些約束條件,也就是我們后邊要說(shuō)的kkt條件。

這里有個(gè)細(xì)節(jié)就是轉(zhuǎn)換時(shí)候的加減號(hào)問(wèn)題,這個(gè)和目標(biāo)函數(shù)還有約束的正負(fù)號(hào)有關(guān)。一般這么理解,就是求最小化問(wèn)題時(shí)候,如果約束是大于0的,那么拉個(gè)朗日算子可以減到這一部分,這樣一來(lái)目標(biāo)函數(shù)只能越來(lái)越小,最優(yōu)解就是約束為0的時(shí)候,這個(gè)時(shí)候和沒(méi)有約束的等價(jià),再求最小就是原問(wèn)題了。

這里是最小化問(wèn)題,直接減掉這部分約束,然后后半部分永遠(yuǎn)大于等于0所以這個(gè)式子的值是要小于原來(lái)目標(biāo)函數(shù)值的。我們知道當(dāng)x滿(mǎn)足原問(wèn)題的約束條件的時(shí)候,最大化L就等于那個(gè)原目標(biāo)函數(shù)。所以我們可以把這個(gè)問(wèn)題轉(zhuǎn)化為:

把它帶回去原來(lái)的目標(biāo)函數(shù)中,整理一下。

這個(gè)時(shí)候只要求最優(yōu)的α,就可以求出w和b了。我們上邊做了那么一堆轉(zhuǎn)換,這個(gè)過(guò)程要滿(mǎn)足一個(gè)叫做kkt條件的東西,其實(shí)這個(gè)東西就是把一堆約束條件整理到一起。

(1)原有問(wèn)題的可行性,即h(x )=0,g(x )0

放到這里就是:

SMO算法的核心思想是求出最優(yōu)化的α,然后根據(jù)之前推導(dǎo)得到的w,b,α之間的關(guān)系計(jì)算得到w和b,最后的計(jì)算公式是:

現(xiàn)在的問(wèn)題就是怎么求α了。

SMO算法總共分兩部分,一部分是求解兩個(gè)α的二次規(guī)劃算法,另一部分是選擇兩個(gè)α的啟發(fā)式算法。

先說(shuō)這個(gè)選擇α的啟發(fā)式算法部分:大神可以證明優(yōu)先優(yōu)化違反kkt條件的α可以最快獲得最優(yōu)解,至于咋證明的,就先不看了。

在講支持向量機(jī)的求解算法時(shí)候,直接給出了核函數(shù)K,那么怎么去理解核函數(shù)呢。核函數(shù)的作用是解決樣本點(diǎn)在高維空間的內(nèi)積運(yùn)算問(wèn)題,怎么理解呢,通常的分類(lèi)問(wèn)題都是有很多個(gè)特征的,然后為了達(dá)到現(xiàn)線性可分,又會(huì)從低維映射到高維,樣本量再一多計(jì)算量非常大,因此先通過(guò)函數(shù)進(jìn)行一個(gè)轉(zhuǎn)換,減少乘法的計(jì)算量。

要理解核函數(shù),先理解內(nèi)積運(yùn)算,內(nèi)積運(yùn)算實(shí)際是兩個(gè)向量,對(duì)應(yīng)位置相乘加和,比如我有x1 = [v1,v2], x2=[w1,w2],那么x1和x2的內(nèi)積計(jì)算方法就是:v1w1+v2w2。

如果上面那種情況線性不可分,需要到高維進(jìn)行映射,讓數(shù)據(jù)變得線性可分,然后數(shù)據(jù)變?yōu)槲寰S的,即v1 2+v2 2+v1+v2+v1v2,然后再進(jìn)行一次內(nèi)積計(jì)算,數(shù)據(jù)變?yōu)? 。

稍作變換,可以變?yōu)? ,形式展開(kāi)和上邊那個(gè)長(zhǎng)式子差不多,然后其實(shí)可以映射內(nèi)積相乘的情況,所以可以進(jìn)行核函數(shù)的變化。

問(wèn)題在于,當(dāng)你需要顯式的寫(xiě)出來(lái)映射形式的時(shí)候,在維度很高的時(shí)候,需要計(jì)算的量太大,比如x1有三個(gè)維度,再進(jìn)行映射就有19維度了,計(jì)算很復(fù)雜。如果用核函數(shù),還是在原來(lái)低維度進(jìn)行運(yùn)算,既有相似的效果(映射到高維),又低運(yùn)算量,這就是核函數(shù)的作用了。

核函數(shù)的種類(lèi):

這部分的核心在于SMO算法的編寫(xiě)。有待補(bǔ)充。

python實(shí)現(xiàn)CT窗寬窗位的調(diào)整(即指定HU值保存圖像)

最近一直在做實(shí)驗(yàn),所以好久沒(méi)有更新了,先把上周做的一些小的實(shí)驗(yàn)貼出來(lái)供大家分享。

在醫(yī)生診斷時(shí),是會(huì)將CT圖像調(diào)整成不同的窗來(lái)處理的。比如說(shuō)肺部CT吧,肺窗(窗寬為2000,窗位為-400)用于看小的肺結(jié)節(jié);腹部窗(窗寬400,窗位40)用于看大的肺結(jié)節(jié)和縱隔淋巴結(jié),還有骨窗。所以在處理CT圖像的時(shí)候會(huì)需要選擇不同的窗,那么怎么來(lái)使得你的.dcm文件.IMA文件.mhd文件以不同的窗寬窗位顯示:

還不太會(huì)編輯,所以可能空格會(huì)有問(wèn)題,我是在數(shù)據(jù)集里每10張?zhí)幚硪粡埓鎯?chǔ)到新的數(shù)據(jù)集里,希望對(duì)大家有幫助!


本文標(biāo)題:python核函數(shù)求窗寬 python函數(shù)
轉(zhuǎn)載注明:http://weahome.cn/article/dodgogc.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部