天天看點

關于libsvm的PCA和 網格尋優

寫在前面:這篇部落格寫的很亂,隻是先大緻記錄一下,後期行得通再慢慢補充。

之前稍微整理了libsvm的内容,但是還有很多沒搞懂,最近因為論文思路卡住了,是以又反過來弄libsvm

因為看人家的論文,偏應用的方面,流程都非常完整,特征提取以後,一般有降維,有參數尋優,是以就很想實作這些功能,因為對比實驗真的一點也寫不下去了,頭大…而且svm的工具箱非常的成熟了,除了常用的libsvm工具包,還有Libsvm-Faruto Ultimate的工具包,這是一個基于libsvm的工具箱,增加了許多實用的功能:降維、參數尋優、可視化等等,是以我想試一下能不能豐富我的實驗,不然就隻能好好補對比實驗了…

文章目錄

    • 1 Libsvm-Faruto Ultimate 下載下傳及安裝
    • 2 使用Libsvm-Faruto Ultimate進行降維和網格尋優

1 Libsvm-Faruto Ultimate 下載下傳及安裝

Libsvm-Faruto Ultimate工具箱下載下傳位址:請參考B站視訊

https://www.bilibili.com/video/BV1Tp4y1Q7oy?from=search&seid=3679677832720517463

(就是視訊中推薦的第二個工具箱,下載下傳方式見評論區花1元就可下載下傳)

若vs的版本是vs2019,編譯時會出錯,解決方法之前整理過:

https://blog.csdn.net/qigeyonghuming_1/article/details/108425270

下面連結是之前有整理過的網盤,裡面有林智仁原版的libsvm,還有李洋的Libsvm-Faruto Ultimate,這就是這個部落格裡面用到的工具包,還有解決vs2019編譯失敗的MATLAB VS2019 Support,裡面是msvc2019.xml和msvcpp2019.xml兩個檔案

百度網盤連結:https://pan.baidu.com/s/14b80Y_hLY7rKzsWS021yvA

提取碼:2k7c

2 使用Libsvm-Faruto Ultimate進行降維和網格尋優

重點參考 Libsvm-Faruto Ultimate工具箱學習筆記,參考部落格為:https://blog.csdn.net/dulingtingzi/article/details/51012476

這篇真的好!

尋優函數有3種

SVMcgForClass(網格尋優)

gaSVMcgForClass(遺傳算法)

psoSVMcgForClass(粒子群優化)

其中,我用到的就是

pca降維使用函數:pcaForSVM

網格尋優函數::SVMcgForClass

因為設定了預設的參數,是以最少的情況下隻需要2個參數就能讓函數運作起來

[featuresTrain,featuresTest] = pcaForSVM(featuresTrain_double,featuresTest_double);
[bestCVaccuracy,bestc,bestg]=SVMcgForClass(train_labels_double,featuresTrain);
           

ps:目測這篇部落格也非常有用,https://blog.csdn.net/u012196371/article/details/71308308

評論中說

樓主,你最後的’-c bestc1 -g bestg1’參數傳遞要寫成 ’ -c ’ num2str(bestc1) ’ -g ’ num2str(bestg1),這樣就行了

有機會試一下,截止到現在,我的網格尋優還沒跑完,實在太慢了,沒有報錯,就是慢。

繼續閱讀