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

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

python核函數(shù)怎么選 python代碼svm核函數(shù)分類

python svm參數(shù)怎么選擇核函數(shù)

這個和用不用python沒啥關(guān)系,是數(shù)據(jù)來源的問題。 調(diào)用淘寶API,使用 api相關(guān)接口獲得你想要的內(nèi)容,我 記得api中有相關(guān)的接口,你可以看一下接口的說明。 用python做爬蟲來進行頁面數(shù)據(jù)的獲齲。

十余年品牌的成都網(wǎng)站建設(shè)公司,超過千家企業(yè)網(wǎng)站設(shè)計經(jīng)驗.價格合理,可準確把握網(wǎng)頁設(shè)計訴求.提供定制網(wǎng)站建設(shè)、購物商城網(wǎng)站建設(shè)、微信小程序響應(yīng)式網(wǎng)站開發(fā)等服務(wù),我們設(shè)計的作品屢獲殊榮,是您值得信賴的專業(yè)網(wǎng)站設(shè)計公司。

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

SVM 是 Support Vector Machine 的簡稱,它的中文名為支持向量機,屬于一種有監(jiān)督的機器學(xué)習(xí)算法,可用于離散因變量的分類和連續(xù)因變量的預(yù)測。通常情況下,該算法相對于其他單一的分類算法(如 Logistic 回歸、決策樹、樸素貝葉斯、 KNN 等)會有更好的預(yù)測準確率,主要是因為它可以將低維線性不可分的空間轉(zhuǎn)換為高維的線性可分空間。

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

線性可分的 所對應(yīng)的函數(shù)間隔滿足 的條件,故 就等于 。所以,可以將目標函數(shù) 等價為如下的表達式:

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

分割面的求解

分割面的表達式

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

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

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

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

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

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

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

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

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

output_13_0.png

Python函數(shù)的參數(shù)類型

Python函數(shù)的參數(shù)類型主要包括必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)和關(guān)鍵字參數(shù),本文介紹一下他們的定義以及可變數(shù)據(jù)類型參數(shù)傳遞需要注意的地方。

必選參數(shù)(Required arguments)是必須輸入的參數(shù),比如下面的代碼,必須輸入2個參數(shù),否則就會報錯:

其實上面例子中的參數(shù) num1和num2也屬于關(guān)鍵字參數(shù),比如可以通過如下方式調(diào)用:

執(zhí)行結(jié)果:

可選參數(shù)(Optional arguments)可以不用傳入函數(shù),有一個默認值,如果沒有傳入會使用默認值,不會報錯。

位置參數(shù)(positional arguments)根據(jù)其在函數(shù)定義中的位置調(diào)用,下面是pow()函數(shù)的幫助信息:

x,y,z三個參數(shù)的的順序是固定的,并且不能使用關(guān)鍵字:

輸出:

在上面的pow()函數(shù)幫助信息中可以看到位置參數(shù)后面加了一個反斜杠 / ,這是python內(nèi)置函數(shù)的語法定義,Python開發(fā)人員不能在python3.8版本之前的代碼中使用此語法。但python3.0到3.7版本可以使用如下方式定義位置參數(shù):

星號前面的參數(shù)為位置參數(shù)或者關(guān)鍵字參數(shù),星號后面是強制關(guān)鍵字參數(shù),具體介紹見強制關(guān)鍵字參數(shù)。

python3.8版本引入了強制位置參數(shù)(Positional-Only Parameters),也就是我們可以使用反斜杠 / 語法來定義位置參數(shù)了,可以寫成如下形式:

來看下面的例子:

python3.8運行:

不能使用關(guān)鍵字參數(shù)形式賦值了。

可變參數(shù) (varargs argument) 就是傳入的參數(shù)個數(shù)是可變的,可以是0-n個,使用星號( * )將輸入?yún)?shù)自動組裝為一個元組(tuple):

執(zhí)行結(jié)果:

關(guān)鍵字參數(shù)(keyword argument)允許將任意個含參數(shù)名的參數(shù)導(dǎo)入到python函數(shù)中,使用雙星號( ** ),在函數(shù)內(nèi)部自動組裝為一個字典。

執(zhí)行結(jié)果:

上面介紹的參數(shù)可以混合使用:

結(jié)果:

注意:由于傳入的參數(shù)個數(shù)不定,所以當(dāng)與普通參數(shù)一同使用時,必須把帶星號的參數(shù)放在最后。

強制關(guān)鍵字參數(shù)(Keyword-Only Arguments)是python3引入的特性,可參考:。 使用一個星號隔開:

在位置參數(shù)一節(jié)介紹過星號前面的參數(shù)可以是位置參數(shù)和關(guān)鍵字參數(shù)。星號后面的參數(shù)都是強制關(guān)鍵字參數(shù),必須以指定參數(shù)名的方式傳參,如果強制關(guān)鍵字參數(shù)沒有設(shè)置默認參數(shù),調(diào)用函數(shù)時必須傳參。

執(zhí)行結(jié)果:

也可以在可變參數(shù)后面命名關(guān)鍵字參數(shù),這樣就不需要星號分隔符了:

執(zhí)行結(jié)果:

在Python對象及內(nèi)存管理機制中介紹了python中的參數(shù)傳遞屬于對象的 引用傳遞 (pass by object reference),在編寫函數(shù)的時候需要特別注意。

先來看個例子:

執(zhí)行結(jié)果:

l1 和 l2指向相同的地址,由于列表可變,l1改變時,l2也跟著變了。

接著看下面的例子:

結(jié)果:

l1沒有變化!為什么不是[1, 2, 3, 4]呢?

l = l + [4]表示創(chuàng)建一個“末尾加入元素 4“的新列表,并讓 l 指向這個新的對象,l1沒有進行任何操作,因此 l1 的值不變。如果要改變l1的值,需要加一個返回值:

結(jié)果:

下面的代碼執(zhí)行結(jié)果又是什么呢?

執(zhí)行結(jié)果:

和第一個例子一樣,l1 和 l2指向相同的地址,所以會一起改變。這個問題怎么解決呢?

可以使用下面的方式:

也可以使用淺拷貝或者深度拷貝,具體使用方法可參考Python對象及內(nèi)存管理機制。這個問題在Python編程時需要特別注意。

本文主要介紹了python函數(shù)的幾種參數(shù)類型:必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)、強制位置參數(shù)、關(guān)鍵字參數(shù)、強制關(guān)鍵字參數(shù),注意他們不是完全獨立的,比如必選參數(shù)、可選參數(shù)也可以是關(guān)鍵字參數(shù),位置參數(shù)可以是必選參數(shù)或者可選參數(shù)。

另外,python中的參數(shù)傳遞屬于對象的 引用傳遞 ,在對可變數(shù)據(jù)類型進行參數(shù)傳遞時需要特別注意,如有必要,使用python的拷貝方法。

參考文檔:

--THE END--


當(dāng)前題目:python核函數(shù)怎么選 python代碼svm核函數(shù)分類
本文鏈接:http://weahome.cn/article/dopoosh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部