1. 程式人生 > >高人對於LIBSVM的經典總結(全面至極)

高人對於LIBSVM的經典總結(全面至極)

SVM相關資源彙總[matlab-libsvm-class-regress](by faruto)
SVM相關資源彙總[matlab-libsvm-class-regress](by faruto)
                                                          ----關於SVM的那點破事 
by faruto
   可以了,終於可以完結了!這帖子我編輯過n次,不斷的往裡面新增東西,我想今晚可能是我最後一次編輯這個帖子.在這個帖子裡面您可以找到如下和SVM相關的東西.
1.關於SVM的工具箱-libsvm-mat
    (1)本帖子中的所有資源所使用的SVM的工具箱是libsvm-mat,沒有使用其他的SVM工具箱,我堅信把這一個SVM的工具箱研究的透徹就夠了,反正我是夠用了!
 (2)關於libsvm-mat的安裝的問題,你可以看下面的Q&A,也可以下載相應的我製作的SVM的視訊
 (3)關於libsvm-mat工具箱本身的使用問題,幾乎所有的疑問你都可以找到答案~
 (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-[farutoFinalVersion]
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]
利用PSO優化SVM引數的一點小探索
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曲線?
再議歸一化問題
=================================================
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
[attach]24862[/attach]
其中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
[attach]24863[/attach]
classes = svmclassify(svmStruct,data(test,:),'showplot',true);
%對於未知的測試集進行分類預測,結果如圖:
tu3
[attach]24864[/attach]
classperf(cp,classes,test);
cp.CorrectRate
ans =
    0.9867
%分類器效果測評,就是看測試集分類的準確率的高低.
二.臺灣林智仁的libsvm工具箱
該工具箱下載[libsvm-mat-2.86-1]:[attach]24867[/attach]
安裝方法也很簡單,解壓檔案,把當前工作目錄調整到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
[attach]24873[/attach]
其中 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,你的學習統計學習理論什麼的....挺多的呢..
[attach]24876[/attach]
-----------有關SVM和libsvm的非常好的資料,想要詳細研究SVM看這個------
[attach]32035[/attach]
[attach]32036[/attach]
[attach]32037[/attach]
[attach]32038[/attach]
其中那個林智仁06年機器學習暑期學校講義pdf是 [email protected]提供的[http://www.ilovematlab.cn/thread-47506-1-1.html]
圖:
[attach]32039[/attach]
[attach]32040[/attach]
[attach]32041[/attach]
[attach]32042[/attach]