libsvm-mat加強工具箱介紹


轉自http://bbs.sciencenet.cn/blog-348249-272606.html

libsvm-mat-加強工具箱介紹

由於libsvm的matlab版本的工具箱libsvm-mat並沒有給出尋參的函數模塊,而無論利用libsvm工具箱進行分類還是回歸,參數的選取是十分重要的,鑒於此libsvm-mat-加強工具箱在libsvm-mat-2.89-3的基礎上給出相應的輔助函數插件,方便用戶來選取最佳的參數,該加強工具箱可以在MATLAB中文論壇上下載,現對該加強工具箱里主要的輔助函數插件的接口進行介紹,所有的源代碼可以到MATLAB中文論壇下載並查看。

歸一化函數:scaleForSVM

[train_scale,test_scale,ps]= scaleForSVM(train_data,test_data,ymin,ymax)

輸入:

train_data:訓練集,格式要求與svmtrain相同。

test_data:測試集,格式要求與svmtrain相同。

ymin,ymax:歸一化的范圍,即將訓練集和測試都歸一化到[ymin,ymax],這兩個參數可不輸入,默認值為ymin=0,ymax=1,即默認將訓練集和測試都歸一化到[0,1]。

輸出:

train_scale:歸一化后的訓練集。

test_scale:歸一化后的測試集。

ps:歸一化過程中的映射(方便反歸一化使用)。

pca降維預處理函數:pcaForSVM

[train_pca,test_pca] = pcaForSVM(train_data,test_data,threshold)

輸入:

train_data:訓練集,格式要求與svmtrain相同。

test_data:測試集,格式要求與svmtrain相同。

threshold:對原始變量的解釋程度([0,100]之間的一個數),通過該閾值可以選取出主成分,該參數可以不輸入,默認為90,即選取的主成分默認可以達到對原始變量達到90%的解釋程度。

輸出:

train_pca:進行pca降維預處理后的訓練集。

test_pca:進行pca降維預處理后的測試集。

網格參數尋優函數(分類問題):SVMcgForClass

[bestCVaccuracy,bestc,bestg]=SVMcgForClass(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)

輸入:

train_label:訓練集的標簽,格式要求與svmtrain相同。

train:訓練集,格式要求與svmtrain相同。

cmin,cmax:懲罰參數c的變化范圍,即在[2^cmin,2^cmax]范圍內尋找最佳的參數c,默認值為cmin=-8,cmax=8,即默認懲罰參數c的范圍是[2^(-8),2^8]。

gmin,gmax:RBF核參數g的變化范圍,即在[2^gmin,2^gmax]范圍內尋找最佳的RBF核參數g,默認值為gmin=-8,gmax=8,即默認RBF核參數g的范圍是[2^(-8),2^8]。

v:進行Cross Validation過程中的參數,即對訓練集進行v-fold Cross Validation,默認為3,即默認進行3折CV過程。

cstep,gstep:進行參數尋優是c和g的步進大小,即c的取值為2^cmin,2^(cmin+cstep),…,2^cmax,,g的取值為2^gmin,2^(gmin+gstep),…,2^gmax,默認取值為cstep=1,gstep=1。

accstep:最后參數選擇結果圖中准確率離散化顯示的步進間隔大小([0,100]之間的一個數),默認為4.5。

輸出:

bestCVaccuracy:最終CV意義下的最佳分類准確率。

bestc:最佳的參數c。

bestg:最佳的參數g。

網格參數尋優函數(回歸問題):SVMcgForRegress

[bestCVmse,bestc,bestg]=SVMcgForRegress(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)

其輸入輸出與SVMcgForClass類似,這里不再贅述。

利用PSO參數尋優函數(分類問題):psoSVMcgForClass

[bestCVaccuracy,bestc,bestg,pso_option]=psoSVMcgForClass(train_label,train,pso_option)

輸入:

train_label:訓練集的標簽,格式要求與svmtrain相同。

train:訓練集,格式要求與svmtrain相同。

pso_option:PSO中的一些參數設置,可不輸入,有默認值,詳細請看代碼的幫助說明。

輸出:

bestCVaccuracy:最終CV意義下的最佳分類准確率。

bestc:最佳的參數c。

bestg:最佳的參數g。

pso_option:記錄PSO中的一些參數。

利用PSO參數尋優函數(回歸問題):psoSVMcgForRegress

[bestCVmse,bestc,bestg,pso_option]=psoSVMcgForRegress(train_label,train,pso_option)

其輸入輸出與psoSVMcgForClass類似,這里不再贅述。

利用GA參數尋優函數(分類問題):gaSVMcgForClass

[bestCVaccuracy,bestc,bestg,ga_option]=gaSVMcgForClass(train_label,train,ga_option)

輸入:

train_label:訓練集的標簽,格式要求與svmtrain相同。

train:訓練集,格式要求與svmtrain相同。

ga_option:GA中的一些參數設置,可不輸入,有默認值,詳細請看代碼的幫助說明。

輸出:

bestCVaccuracy:最終CV意義下的最佳分類准確率。

bestc:最佳的參數c。

bestg:最佳的參數g。

ga_option:記錄GA中的一些參數。

利用GA參數尋優函數(回歸問題):gaSVMcgForRegress

[bestCVmse,bestc,bestg,ga_option]=gaSVMcgForRegress(train_label,train,ga_option)

其輸入輸出與gaSVMcgForClass類似,這里不再贅述。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM