HOME 首頁
SERVICE 服務產品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    精細高斯SVM(高斯部件)

    發(fā)布時間:2023-04-13 15:11:48     稿源: 創(chuàng)意嶺    閱讀: 127        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于精細高斯SVM的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端

    官網:https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    精細高斯SVM(高斯部件)

    一、SVM中的核函數與概率密度估計中的非參數估計里的核函數有什么內在聯(lián)系?

    我覺得一樣,都是對距離的度量。

    二、12、核支持向量機SVM

    核支持向量機kernelized support vector machine,支持就是重要的意思,向量就是點,機就是機器,即重要的點。

    位于類別之間邊界上的那些點,這些點叫作支持向量。想要對新樣本點進行預測,需要測量它與每個支持向量之間的距離。

    核支持向量機可用于回歸SVR和分類SVC。

    下面利用乳腺癌數據集對模型進行訓練:

    輸出

    訓練集的精度為1,但測試集精度只有63%,存在過擬合。SVM要求所有特征有相似的變化范圍,乳腺癌數據集的特征具有不同的量級,對核SVM有很大的影響,我們對每個特征進行縮放,使其大致都位于同一范圍,如將所有特征縮放到0和1之間(每一個數-最小值/范圍,注意測試集也是采用訓練集的最小值和范圍的標準)。

    輸出

    因為訓練集和測試集的性能非常接近,但還沒有接近100%的精度,所以模型還是處于欠擬合的狀態(tài)。我們可以嘗試增大C或gamma來擬合更為復雜的模型。

    gamma是控制高斯核寬度的參數,它決定了點與點之間靠近是指多大的距離,gamma越小,更多的點被看作比較靠近。C是正則化參數,它限制每個特征的重要性(確切的說每個點的dual_coef_)。兩個參數的設定通常是強烈相關的,應該同時調節(jié)。默認情況下,C=1,gamma=1。

    輸出

    增大C顯著改進了模型,得到了97%的精度。

    SVM允許決策邊界很復雜,即使數據只有幾個特征,它在低維數據和高維數據(即很少特征和很多特征)上的表現都很好。

    缺點:1 需要進行數據預處理,對數據的縮放和參數的設定非常敏感,所以數據預處理和調參都需要非常小心。這也是為什么如今很多應用中用的都是基于樹的模型,比如隨機森林或梯度提升(需要很少的預處理,甚至不需要預處理)。 2 SVM模型很難檢查,也很難解釋為什么會這么預測,難以將模型向非專家進行解釋。

    三、如何利用 Python 實現 SVM 模型

    我先直觀地闡述我對SVM的理解,這其中不會涉及數學公式,然后給出Python代碼。

    SVM是一種二分類模型,處理的數據可以分為三類:

    • 線性可分,通過硬間隔最大化,學習線性分類器

    • 近似線性可分,通過軟間隔最大化,學習線性分類器

    • 線性不可分,通過核函數以及軟間隔最大化,學習非線性分類器

    • 線性分類器,在平面上對應直線;非線性分類器,在平面上對應曲線。

      硬間隔對應于線性可分數據集,可以將所有樣本正確分類,也正因為如此,受噪聲樣本影響很大,不推薦。

      軟間隔對應于通常情況下的數據集(近似線性可分或線性不可分),允許一些超平面附近的樣本被錯誤分類,從而提升了泛化性能。

      如下圖:

      精細高斯SVM(高斯部件)

      實線是由硬間隔最大化得到的,預測能力顯然不及由軟間隔最大化得到的虛線。

      對于線性不可分的數據集,如下圖:

      精細高斯SVM(高斯部件)

      我們直觀上覺得這時線性分類器,也就是直線,不能很好的分開紅點和藍點。

      但是可以用一個介于紅點與藍點之間的類似圓的曲線將二者分開,如下圖:

      精細高斯SVM(高斯部件)我們假設這個黃色的曲線就是圓,不妨設其方程為x^2+y^2=1,那么核函數是干什么的呢?

      我們將x^2映射為X,y^2映射為Y,那么超平面變成了X+Y=1。

      那么原空間的線性不可分問題,就變成了新空間的(近似)線性可分問題。

      此時就可以運用處理(近似)線性可分問題的方法去解決線性不可分數據集的分類問題。

      ---------------------------------------------------------------------------------------------------------------------------

      以上我用最簡單的語言粗略地解釋了SVM,沒有用到任何數學知識。但是沒有數學,就體會不到SVM的精髓。因此接下來我會用盡量簡潔的語言敘述SVM的數學思想,如果沒有看過SVM推導過程的朋友完全可以跳過下面這段。

      對于求解(近似)線性可分問題:

    • 由最大間隔法,得到凸二次規(guī)劃問題,這類問題是有最優(yōu)解的(理論上可以直接調用二次規(guī)劃計算包,得出最優(yōu)解)

    • 我們得到以上凸優(yōu)化問題的對偶問題,一是因為對偶問題更容易求解,二是引入核函數,推廣到非線性問題。

    • 求解對偶問題得到原始問題的解,進而確定分離超平面和分類決策函數。由于對偶問題里目標函數和分類決策函數只涉及實例與實例之間的內積,即<xi,xj>。我們引入核函數的概念。

    • 拓展到求解線性不可分問題:
    • 如之前的例子,對于線性不可分的數據集的任意兩個實例:xi,xj。當我們取某個特定映射f之后,f(xi)與f(xj)在高維空間中線性可分,運用上述的求解(近似)線性可分問題的方法,我們看到目標函數和分類決策函數只涉及內積<f(xi),f(xj)>。由于高維空間中的內積計算非常復雜,我們可以引入核函數K(xi,xj)=<f(xi),f(xj)>,因此內積問題變成了求函數值問題。最有趣的是,我們根本不需要知道映射f。精彩!

    • 我不準備在這里放推導過程,因為已經有很多非常好的學習資料,如果有興趣,可以看:CS229 Lecture notes

      最后就是SMO算法求解SVM問題,有興趣的話直接看作者論文:Sequential Minimal Optimization:A Fast Algorithm for Training Support Vector Machines

      我直接給出代碼:SMO+SVM

      在線性可分數據集上運行結果:

      圖中標出了支持向量精細高斯SVM(高斯部件)這個非常完美,支持向量都在超平面附近。

      在線性不可分數據集上運行結果(200個樣本):

      核函數用了高斯核,取了不同的sigma

      sigma=1,有189個支持向量,相當于用整個數據集進行分類。

      精細高斯SVM(高斯部件)

      sigma=10,有20個支持向量,邊界曲線能較好的擬合數據集特點。

      精細高斯SVM(高斯部件)我們可以看到,當支持向量太少,可能會得到很差的決策邊界。如果支持向量太多,就相當于每次都利用整個數據集進行分類,類似KNN。

    四、「數據分類」15支持向量機(SVM)及混淆矩陣

    1.支持向量機(SVM)概述

    (1)支持向量機(Support Vector Machines,SVM)是一種二元分類模型,它是一類模型的統(tǒng)稱,其中包括:

    ①線性可分支持向量機;

    ②線性支持向量機;

    ③非線性支持向量機。

    (2)核心思想:

        訓練階段在特征空間中尋找一個超平面,它能(或盡量能)將訓練樣本中的正例和負例分離在它的兩側,預測時以該超平面作為決策邊界判斷輸入實例的類別。尋找超平面的原則是,在可分離的情況下使超平面與數據集間隔最大化。

    (3)支持向量機的分類示意圖為:

    簡單來說,SVM的原理就是在平面內找到一條直線,使得這兩類不同的樣本點分開,并且保證能夠盡可能遠的遠離這條直線。用向量表示兩類樣本點之間的分類間隔(Margin)為:

    支持向量機的目的是使r最大,等價于使||w||/2最小。而幾何向量使分類間隔最大問題可以轉化為運籌學上的約束優(yōu)化問題。因為涉及太多復雜公式,此處省略。

    只要理解了SVM的原理,并且學會利用sklearn庫調用SVM模塊,就達到了數據分析的目的。

    2.SVM算法實現

    (1)重要參數說明:

    ①kernel :核函數,默認是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ 。

    ·kernel='linear'時為線性核,C越大分類效果越好,但有可能會過擬合(defaul C=1);

    ·kernel='poly'時為多項式核函數;

    ·kernel='rbf'時(default)為高斯核,gamma值越小,分類界面越連續(xù);gamma值越大,分類界面越“散”,分類效果越好,但有可能會過擬合。

    ②decision_function_shape:

    ·decision_function_shape='ovr'時,為one v rest,即一個類別與其他類別進行劃分;

    ·decision_function_shape='ovo'時,為one v one,即將類別兩兩之間進行劃分,用二分類的方法模擬多分類的結果。

    (2)程序實現過程:

    【注】

    在分類型模型評判的指標中,常見的方法有如下三種:

    ①混淆矩陣(也稱誤差矩陣,Confusion Matrix)

        混淆矩陣是評判模型結果的指標,屬于模型評估的一部分。此外,混淆矩陣多用于判斷分類器(Classifier)的優(yōu)劣,適用于分類型的數據模型,如分類樹(Classification Tree)、邏輯回歸(Logistic Regression)、線性判別分析(Linear Discriminant Analysis)等方法。

    混淆矩陣的一級指標:

    通過混淆矩陣可以計算出評估模型的幾個指標(二級指標):

    三級指標:F1-score

    其中,P代表Precision,R代表Recall。

    F1-Score指標綜合了Precision與Recall的產出的結果。F1-Score的取值范圍從0到1的,1代表模型的輸出最好,0代表模型的輸出結果最差。

    Ps:當分類結果多于兩種時,需要將結果轉化為上面的類型。

    詳細內容參考博文https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839

    ②ROC曲線

    ③AUC面積

    以上就是關于精細高斯SVM相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    杭州欣陽精細化工有限公司(杭州欣陽精細化工有限公司招聘)

    辦公室管理的根本特征(辦公室精細化管理)

    精細到極致的日本人(精細到極致的日本人是誰)

    小茅臺100ml不建議收藏(小茅臺100ml 53度)

    小紅書發(fā)布的評論別人看不到(小紅書發(fā)布的評論別人看不到怎么辦)