高人對libsvm的經典總結(全面至極)
阿新 • • 發佈:2019-02-16
轉自:http://www.ilovematlab.cn/thread-35262-1-1.html
SVM相關資源彙總[matlab-libsvm-class-regress](by faruto)----關於SVM的那點破事
by faruto
可以了,終於可以完結了!這帖子我編輯過n次,不斷的往裡面新增東西,我想今晚可能是我最後一次編輯這個帖子.在這個帖子裡面您可以找到如下和SVM相關的東西.
1.關於SVM的工具箱-libsvm-mat
(1)本帖子中的所有資源所使用的SVM的工具箱是libsvm-mat,沒有使用其他的SVM工具箱,我堅信把這一個SVM的工具箱研究的透徹就夠了,反正我是夠用了!
(2)關於
(4)關於libsvm-mat版本更新的問題,林智仁官方的最新版本是:libsvm-mat-2.89-3,在下面你可以找到下載的連結,官方網頁上的連結有問題,我是向林直接要的.還有一個faruto版本的libsvm,最新的是[farutoFinalVersion],我在裡面加進了各種SVM引數優化的子函式,方便使用.在下面亦有下載連結.
2.關於SVM的理論相關的.
在下面提供了一些資源和paper, ppt,pdf,雖然這幾個資源是有限的,但我敢說足夠了.原因有兩個:a.下面的幾個文獻本身質量就很高.b.這些文獻主要的SVM的參考文獻已經幾乎全部列出了,你可以尋徑查詢.
3.關於......
幾乎 (almost everyone)關於你想問的有關libsvm的所有問題在這個帖子中都有答案.
so請詳細閱讀此帖子後.若你的問題找不到答案,再發帖~
libsvm-mat-2.89-3-[farutoUltimateVersion2.0]
farutoUltimateVersion2.0就是最後的版本號了。我不會再更新啦~大家就下載這個版本的就可以啦。雖說近期也有一些更新和優化,但整體都是在這個的基礎上啦。
====================另 libsvm-mat-farutoversion 版本更新歷史[版本號有點亂大家別介意.O(∩_∩)O]:
farutoUltimateVersion1.0:2009.10.28
http://www.ilovematlab.cn/viewthread.php?tid=54665&highlight=%2Bfaruto
libsvm-mat-2.89-3-[farutoFinalVersion+pca]:2009.10.28
http://www.ilovematlab.cn/viewthread.php?tid=54658&highlight=%2Bfaruto
libsvm-mat-2.89-3-[farutoFinalVersion]:2009.10.08
http://www.ilovematlab.cn/viewthread.php?tid=52388&highlight=%2Bfaruto
libsvm-mat-2.89-3-farutoVer2:2009.09.23
http://www.ilovematlab.cn/viewthread.php?tid=51166&highlight=%2Bfaruto
libsvm-mat-2.89-3-farutoVer1:2009.08.27
http://www.ilovematlab.cn/viewthread.php?tid=48175&highlight=%2Bfaruto
============
歡迎您購買 《MATLAB 神經網路30個案例分析》(我是作者之一)
SVM是該書的內容之一
購買方式:http://www.ilovematlab.cn/thread-47939-1-1.html
MATLAB 神經網路30個案例分析——目錄
http://www.ilovematlab.cn/thread-59023-1-1.html
與該書配套的有該加強工具箱的詳細的使用視訊:
SVM講解視訊彙總[by faruto]http://www.ilovematlab.cn/thread-62252-1-1.html
================
關於SVM[libsvm]的常見問題整理[Q&A]
強烈建議您再發有關libsvm的問題前,看一下Q&A大多數的問題您在那裡就會找到答案~~O(∩_∩)O
==============
==========SVM入門精品講解系列 十連彈=============
SVM入門精品講解系列之一
SVM入門精品講解系列之二&之三
SVM入門精品講解系列之四
SVM入門精品講解系列之五&六
SVM入門精品講解系列之七
SVM入門精品講解系列之八
SVM入門精品講解系列之九&十
==========SVM視頻===============================
【視訊】神經網路libsvm-mat-加強工具箱介紹, 最好的SVM教程
http://www.ilovematlab.cn/thread-59483-1-1.html
Matlab 神經網路(八.1):SVM神經網路理論實際應用
Matlab 神經網路(八.2):SVM神經網路理論理論分析
=========SVM其他相關連結=========================
關於libsvm分類結果的視覺化及分類曲線的視覺化
Binary-class Cross Validation with Different Criteria
利用GA優化SVM引數的一點小探索
libsvm-mat-2.89-3-[farutoFinalVersion+pca]
Matlab的libsvm-mat faruto版本 Ver2
Matlab利用libsvm做迴歸分析的一個小例子-by faruto
關於SVM引數c&g選取的總結帖[matlab-libsvm]
Matlab的FIG(資訊粒化)+SVM對於上證指數的預測
libsvm的最新版本----libsvm-mat-2.89-3
libsvm更新版本----faruto version
有關Matlab中的SVM的一些問題的討論[一次郵件往來]
有關SVM和libsvm的非常好的資料,想要詳細研究SVM看這個
SVM的多類問題
交叉驗證(Cross Validation)方法思想簡介
關於libsvm分類結果的視覺化及分類曲線的視覺化
[framework] libsvmfarutoUltimateVersion3.0]
再論Matlab的libsvm的安裝
如何利用LIBSVM-MAT畫ROC曲線?
Matlab利用LIBSVM-MAT畫ROC曲線
再議歸一化問題
再次討論libsvm的C-SVC問題-關於-wi引數的討論
==============libsvm在影象處理中的應用小例子=============
基於libsvm的手寫字型識別
基於libsvm的影象分割
=================================================
SVM工具箱快速入手簡易教程(by faruto)
最近發現好多朋友有關SVM的工具箱的使用方法相關的東西,其實幫助檔案裡都有的[無論是matlab自帶的還是libsvm都是有幫助檔案的而且寫的也明確,但還是有朋友問問],無奈我就寫一個小簡易的上手的教程,事先宣告只給菜鳥寫的,高手就不要看了,其實幫助檔案裡都有,你也可以看幫助檔案,不用看我的.O(∩_∩)O..
一. matlab 自帶的函式(matlab幫助檔案裡的例子)[只有較新版本的matlab中有這兩個SVM的函式]
=====
svmtrain svmclassify
=====簡要語法規則====
svmtrain
Train support vector machine classifier
Syntax
SVMStruct = svmtrain(Training, Group)
SVMStruct = svmtrain(..., 'Kernel_Function', Kernel_FunctionValue, ...)
SVMStruct = svmtrain(..., 'RBF_Sigma', RBFSigmaValue, ...)
SVMStruct = svmtrain(..., 'Polyorder', PolyorderValue, ...)
SVMStruct = svmtrain(..., 'Mlp_Params', Mlp_ParamsValue, ...)
SVMStruct = svmtrain(..., 'Method', MethodValue, ...)
SVMStruct = svmtrain(..., 'QuadProg_Opts', QuadProg_OptsValue, ...)
SVMStruct = svmtrain(..., 'SMO_Opts', SMO_OptsValue, ...)
SVMStruct = svmtrain(..., 'BoxConstraint', BoxConstraintValue, ...)
SVMStruct = svmtrain(..., 'Autoscale', AutoscaleValue, ...)
SVMStruct = svmtrain(..., 'Showplot', ShowplotValue, ...)
---------------------
svmclassify
Classify data using support vector machine
Syntax
Group = svmclassify(SVMStruct, Sample)
Group = svmclassify(SVMStruct, Sample, 'Showplot', ShowplotValue)
============================例項研究====================
load fisheriris
%載入matlab自帶的資料[有關資料的資訊可以自己到UCI查詢,這是UCI的經典資料之一],得到的資料如下圖:
tu1
其中meas是150*4的矩陣代表著有150個樣本每個樣本有4個屬性描述,species代表著這150個樣本的分類.
data = [meas(:,1), meas(:,2)];
%在這裡只取meas的第一列和第二列,即只選取前兩個屬性.
groups = ismember(species,'setosa');
%由於species分類中是有三個分類:setosa,versicolor,virginica,為了使問題簡單,我們將其變為二分類問題:Setosa and non-Setosa.
[train, test] = crossvalind('holdOut',groups);
cp = classperf(groups);
%隨機選擇訓練集合測試集[有關crossvalind的使用請自己help一下]
其中cp作用是後來用來評價分類器的.
svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);
%使用svmtrain進行訓練,得到訓練後的結構svmStruct,在預測時使用.
訓練結果如圖:
tu2
classes = svmclassify(svmStruct,data(test,:),'showplot',true);
%對於未知的測試集進行分類預測,結果如圖:
tu3
classperf(cp,classes,test);
cp.CorrectRate
ans =
0.9867
%分類器效果測評,就是看測試集分類的準確率的高低.
二.臺灣林智仁的libsvm工具箱
該工具箱下載[libsvm-mat-2.86-1]:
安裝方法也很簡單,解壓檔案,把當前工作目錄調整到libsvm所在的資料夾下,再在set path裡將libsvm所在的資料夾加到裡面.然後
在命令列裡輸入
mex -setup %選擇一下編譯器
make
這樣就可以了.
建議大家使用libsvm工具箱,這個更好用一些.可以進行分類[多類別],預測....
=========
svmtrain
svmpredict
================
簡要語法:
Usage
=====
matlab> model = svmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);
-training_label_vector:
An m by 1 vector of training labels (type must be double).
-training_instance_matrix:
An m by n matrix of m training instances with n features.
It can be dense or sparse (type must be double).
-libsvm_options:
A string of training options in the same format as that of LIBSVM.
matlab> [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);
-testing_label_vector:
An m by 1 vector of prediction labels. If labels of test
data are unknown, simply use any random values. (type must be double)
-testing_instance_matrix:
An m by n matrix of m testing instances with n features.
It can be dense or sparse. (type must be double)
-model:
The output of svmtrain.
-libsvm_options:
A string of testing options in the same format as that of LIBSVM.
Returned Model Structure
========================
例項研究:
load heart_scale.mat
%工具箱裡自帶的資料
如圖:
tu4
其中 heart_scale_inst是樣本,heart_scale_label是樣本標籤
model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
%訓練樣本,具體引數的調整請看幫助檔案
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);
%分類預測,這裡把訓練集當作測試集,驗證效果如下:
>> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model); % test the training data
Accuracy = 86.6667% (234/270) (classification)
==============
這回把SVM這點入門的東西都說完了,大家可以參照著上手了,有關SVM的原理我下面有個簡易的PPT,是以前做專案時我做的[當時我負責有關SVM這一塊程式碼實現講解什麼的],感興趣的你可以看看,都是上手較快的東西,想要深入學習SVM,你的學習統計學習理論什麼的....挺多的呢..
SVM.ppt
-----------有關SVM和libsvm的非常好的資料,想要詳細研究SVM看這個------
原文地址:http://blog.csdn.net/chinaliping/article/details/14523537