1. libsvm提供的數據集下載
猜測。
既然是libsvm組件, 那數據格式應該默認就是Libsvm格式
label id:weighti id:weight...
label id:weighti id:weight...
這種
2. svm 分類器需要對數據集處理嗎
任何數據挖掘前 都需要對數據集進行預處理 從而使挖掘結果更准確
3. 哪位朋友能介紹一下支持向量機工具libsvm的用法
LIBSVM的簡單介紹 2006-09-20 15:59:48
大 中 小
1. LIBSVM 軟體包簡介
LIBSVM 是台灣大學林智仁(Chih-Jen Lin)博士等開發設計的一個操作簡單、易於使用、快速有效的通用SVM 軟體包,可以解決分類問題(包括C- SVC、n - SVC )、回歸問題(包括e - SVR、n - SVR )以及分布估計(one-class-SVM )等問題,提供了線性、多項式、徑向基和S形函數四種常用的核函數供選擇,可以有效地解決多類問題、交叉驗證選擇參數、對不平衡樣本加權、多類問題的概率估計等。LIBSVM 是一個開源的軟體包,需要者都可以免費的從作者的個人主頁http://www.csie.ntu.e.tw/~cjlin/
處獲得。他不僅提供了LIBSVM的C++語言的演算法源代碼,還提供了Python、Java、R、MATLAB、Perl、Ruby、LabVIEW以及C#.net 等各種語言的介面,可以方便的在Windows 或UNIX 平台下使用。另外還提供了WINDOWS 平台下的可視化操作工具SVM-toy,並且在進行模型參數選擇時可以繪制出交叉驗證精度的等高線圖。
2. LIBSVM 使用方法簡介
LibSVM是以源代碼和可執行文件兩種方式給出的。如果是Windows系列操作系統,可以直接使用軟體包提供的程序,也可以進行修改編譯;如果是Unix類系統,必須自己編譯。
LIBSVM 在給出源代碼的同時還提供了Windows操作系統下的可執行文件,包括:進行支持向量機訓練的svmtrain.exe;根據已獲得的支持向量機模型對數據集進行預測的svmpredict.exe;以及對訓練數據與測試數據進行簡單縮放操作的svmscale.exe。它們都可以直接在DOS 環境中使用。如果下載的包中只有C++的源代碼,則也可以自己在VC等軟體上編譯生成可執行文件。
3. LIBSVM 使用的一般步驟是:
1) 按照LIBSVM軟體包所要求的格式准備數據集;
2) 對數據進行簡單的縮放操作;
3) 考慮選用RBF 核函數;
4) 採用交叉驗證選擇最佳參數C與g ;
5) 採用最佳參數C與g 對整個訓練集進行訓練獲取支持向量機模型;
6) 利用獲取的模型進行測試與預測。
4. LIBSVM使用的數據格式
1)訓練數據和檢驗數據文件格式如下:
<label> <index1>:<value1> <index2>:<value2> ...
其中<label> 是訓練數據集的目標值,對於分類,它是標識某類的整數(支持多個類);對於回歸,是任意實數。<index> 是以1開始的整數,可以是不連續的;<value>為實數,也就是我們常說的自變數。檢驗數據文件中的label只用於計算準確度或誤差,如果它是未知的,只需用一個數填寫這一欄,也可以空著不填。
在程序包中,還包括有一個訓練數據實例:heart_scale,方便參考數據文件格式以及練習使用軟體。可以編寫小程序,將自己常用的數據格式轉換成這種格式
2)Svmtrain和Svmpredict的用法
LIBSVM軟體提供的各種功能都是DOS命令執行方式。我們主要用到兩個程序,svmtrain(訓練建模)和svmpredict(使用已有的模型進行預測),下面分別對這兩個程序的使用方法、各參數的意義以及設置方法做一個簡單介紹:
(1)Svmtrain的用法:
svmtrain [options] training_set_file [model_file]
Options:可用的選項即表示的涵義如下
-s svm類型:SVM設置類型(默認0)
0 -- C-SVC
1 --v-SVC
2 – 一類SVM
3 -- e -SVR
4 -- v-SVR
-t 核函數類型:核函數設置類型(默認2)
0 – 線性:u'v
1 – 多項式:(r*u'v + coef0)^degree
2 – RBF函數:exp(-r|u-v|^2)
3 –sigmoid:tanh(r*u'v + coef0)
-d degree:核函數中的degree設置(默認3)
-g 函數設置(默認1/ k)r(gama):核函數中的
-r coef0:核函數中的coef0設置(默認0)
-c cost:設置C-SVC, -SVR的參數(默認1)-SVR和
- SVR的參數(默認0.5)-SVC,一類SVM和-n nu:設置
-SVR-p e:設置的值(默認0.1)中損失函數
-m cachesize:設置cache內存大小,以MB為單位(默認40)
-e :設置允許的終止判據(默認0.001)
-h shrinking:是否使用啟發式,0或1(默認1)
-wi C(C-SVC中的C)(默認1)weight:設置第幾類的參數C為weight
-v n: n-fold交互檢驗模式
其中-g選項中的k是指輸入數據中的屬性數。option -v 隨機地將數據剖分為n部分並計算交互檢驗准確度和均方根誤差。以上這些參數設置可以按照SVM的類型和核函數所支持的參數進行任意組合,如果設置的參數在函數或SVM類型中沒有也不會產生影響,程序不會接受該參數;如果應有的參數設置不正確,參數將採用默認值。training_set_file是要進行訓練的數據集;model_file是訓練結束後產生的模型文件,文件中包括支持向量樣本數、支持向量樣本以及lagrange系數等必須的參數;該參數如果不設置將採用默認的文件名,也可以設置成自己慣用的文件名。
(2)Svmpredict的用法:
svmpredict test_file model_file output_file
model_file 是由svmtrain產生的模型文件;test_file是要進行預測的數據文件;Output_file是svmpredict的輸出文件。svm-predict沒有其它的選項。
下面是具體的使用例子
svmtrain -s 0 -c 1000 -t 1 -g 1 -r 1 -d 3 data_file
訓練一個由多項式核(u'v+1)^3和C=1000組成的分類器。
svmtrain -s 1 -n 0.1 -t 2 -g 0.5 -e 0.00001 data_file =-SVM (在RBF核函數exp(-0.5|u-v|^2)和終止允許限0.00001的條件下,訓練一個 0.1)分類器。 svmtrain -s 3 -p 0.1 -t 0 -c 10 data_file =以線性核函數u'v和C=10及損失函數 0.1求解SVM回歸。
4. 請問怎麼計算圖片大小呢 有500張圖片,是500*500/每張,RVB格式,24bits,圖片的總量是多少呢 謝謝!
如果按照用32位來表示一個像素點的RGB值的話,應該是4個位元組
640×480×4=1228800位元組
1228800÷1024÷1024=1.171875兆(M)
5. python svm 怎麼訓練模型
支持向量機SVM(Support Vector Machine)是有監督的分類預測模型,本篇文章使用機器學習庫scikit-learn中的手寫數字數據集介紹使用Python對SVM模型進行訓練並對手寫數字進行識別的過程。
准備工作
手寫數字識別的原理是將數字的圖片分割為8X8的灰度值矩陣,將這64個灰度值作為每個數字的訓練集對模型進行訓練。手寫數字所對應的真實數字作為分類結果。在機器學習sklearn庫中已經包含了不同數字的8X8灰度值矩陣,因此我們首先導入sklearn庫自帶的datasets數據集。然後是交叉驗證庫,SVM分類演算法庫,繪制圖表庫等。
12345678910#導入自帶數據集from sklearn import datasets#導入交叉驗證庫from sklearn import cross_validation#導入SVM分類演算法庫from sklearn import svm#導入圖表庫import matplotlib.pyplot as plt#生成預測結果准確率的混淆矩陣from sklearn import metrics讀取並查看數字矩陣
從sklearn庫自帶的datasets數據集中讀取數字的8X8矩陣信息並賦值給digits。
12#讀取自帶數據集並賦值給digitsdigits = datasets.load_digits()查看其中的數字9可以發現,手寫的數字9以64個灰度值保存。從下面的8×8矩陣中很難看出這是數字9。
12#查看數據集中數字9的矩陣digits.data[9]以灰度值的方式輸出手寫數字9的圖像,可以看出個大概輪廓。這就是經過切割並以灰度保存的手寫數字9。它所對應的64個灰度值就是模型的訓練集,而真實的數字9是目標分類。我們的模型所要做的就是在已知64個灰度值與每個數字對應關系的情況下,通過對模型進行訓練來對新的手寫數字對應的真實數字進行分類。
1234#繪制圖表查看數據集中數字9的圖像plt.imshow(digits.images[9], cmap=plt.cm.gray_r, interpolation='nearest')plt.title('digits.target[9]')plt.show()
從混淆矩陣中可以看到,大部分的數字SVM的分類和預測都是正確的,但也有個別的數字分類錯誤,例如真實的數字2,SVM模型有一次錯誤的分類為1,還有一次錯誤分類為7。
6. svm交叉驗證是把數據集分成10份還是訓練集分成10份
你說的應該是10折交叉驗證,是指把數據集分成10份。
機器學習中k折交叉驗證是指將數據集分成k份(可以隨機切分,也可以按時間切分,但需要確保訓練集和測試集同分布),然後,選擇一份作為測試集,剩下的k-1份作為訓練集,訓練完模型後計算一下損失值;接著換另一份作為測試集,剩下的k-1份作為訓練集,再訓練一個模型,計算一下損失值;類似這樣依次選擇每一份作為測試集;最後將不同測試集對應的損失值求平均,就得到了最終的模型評價指標。
7. MATLAB中支持向量機SVM預測問題,如何確定數據格式
測試數據要跟訓練數據格式一樣啊,一般是行代表樣本個數,列代表變數個數即n*m表示n個樣本m個向量
8. svm的輸入和輸出問題
你好,LIBSVM簡介 [.v5o#Vd
sH:Luo+]
支持向量機所涉及到的數學知識對一般的化學研究者來說是比較難的,自己編程實現該演算法難度就更大了。但是現在的網路資源非常發達,而且國際上的科學研究者把他們的研究成果已經放在網路上,免費提供給用於研究目的,這樣方便大多數的研究者,不必要花費大量的時間理解SVM演算法的深奧數學原理和計算機程序設計。目前有關SVM計算的相關軟體有很多,如LIBSVM、mySVM、SVMLight等,這些軟體大部分的免費下載地址和簡單介紹都可以在[url]
http://www.kernel-machines.org/[/url]上獲得。 pq2j j.XL7m4B
LIBSVM是台灣大學林智仁(Lin Chih-Jen)副教授等開發設計的一個簡單、易於使用和快速有效的SVM模式識別與回歸的軟體包,他不但提供了編譯好的可在Windows系列系統的執行文件,還提供了源代碼,方便改進、修改以及在其它操作系統上應用;該軟體還有一個特點,就是對SVM所涉及的參數調節相對比較少,提供了很多的默認參數,利用這些默認參數就可以解決很多問題;並且提供了交互檢驗(Cross Validation)的功能。該軟體包可以在[url]
http://www.csie.ntu.e.tw/~cjlin/[/url]免費獲得。該軟體可以解決C-SVM分類、-SVM分類、-SVM回歸和-SVM回歸等問題,包括基於一對一演算法的多類模式識別問題。在第2章中我們也介紹了該軟體的一些優點,因此通過綜合考慮,我們決定採用該軟體作為工作軟體。SVM用於模式識別或回歸時,SVM方法及其參數、核函數及其參數的選擇,目前國際上還沒有形成一個統一的模式,也就是說最優SVM演算法參數選擇還只能是憑借經驗、實驗對比、大范圍的搜尋或者利用軟體包提供的交互檢驗功能進行尋優。
4lE qC iC mt'j?)FN"b
LIBSVM使用方法 p-t8\q9P!e(jVL6e
1XP6S+YzWZ LibSVM是以源代碼和可執行文件兩種方式給出的。如果是Windows系列操作系統,可以直接使用軟體包提供的程序,也可以進行修改編譯;如果是Unix類系統,必須自己編譯,軟體包中提供了編譯格式文件,我們在SGI工作站(操作系統IRIX6.5)上,使用免費編譯器GNU C++3.3編譯通過。 |U4E P})T/u
8rur3[8U.zeQ9VX
LIBSVM使用的數據格式 W2}&p]lU
該軟體使用的訓練數據和檢驗數據文件格式如下: x4Vy\ G1y6g\3~
<label> <index1>:<value1> <index2>:<value2> ...
6a X)I&x9l@4cU {2q 其中<label> 是訓練數據集的目標值,對於分類,它是標識某類的整數(支持多個類);對於回歸,是任意實數。<index> 是以1開始的整數,可以是不連續的;<value>為實數,也就是我們常說的自變數。檢驗數據文件中的label只用於計算準確度或誤差,如果它是未知的,只需用一個數填寫這一欄,也可以空著不填。在程序包中,還包括有一個訓練數據實例:heart_scale,方便參考數據文件格式以及練習使用軟體。
H'?-]1a%HC Us 可以編寫小程序,將自己常用的數據格式轉換成這種格式
"pm2M;L7E{~5t
mLf \*?8n"x9A Svmtrain和Svmpredict的用法
g Ddk2C-Cd LIBSVM軟體提供的各種功能都是DOS命令執行方式。我們主要用到兩個程序,svmtrain(訓練建模)和svmpredict(使用已有的模型進行預測),下面分別對這兩個程序的使用方法、各參數的意義以及設置方法做一個簡單介紹:
8x*l/L/E0b Svmtrain的用法:svmtrain [options] training_set_file [model_file] U1NjN e f%W}0R
Options:可用的選項即表示的涵義如下
'fH*{2_5u -s svm類型:SVM設置類型(默認0)
_`"JB+i@9~ 0 -- C-SVC O)Z5y$E$c#Cy
1 --v-SVC
MQL(d;t 2 – 一類SVM
$E(@D ShN 3 -- e -SVR
] K ]V~b+t0}2Gl 4 -- v-SVR
J0j5|rJ[ -t 核函數類型:核函數設置類型(默認2)
,pvvLy O 0 – 線性:u'v Cj-AB;jn8Cbk
1 – 多項式:(r*u'v + coef0)^degree 7nq{|q*] @1{3T
2 – RBF函數:exp(-r|u-v|^2) o4S JB-zV2P%?,C
3 –sigmoid:tanh(r*u'v + coef0) \"m w._)u|,Bu4C
-d degree:核函數中的degree設置(默認3) K0?8R!fR;g+W2k
-g r(gama):核函數中的函數設置(默認1/ k) :u6r%p*o$QG
-r coef0:核函數中的coef0設置(默認0) &xO&LjbX(y
-c cost:設置C-SVC, -SVR和-SVR的參數(默認1) Y:N.Jv8v
-n nu:設置-SVC,一類SVM和- SVR的參數(默認0.5)
;r:h%XN2HH6Bf -p e:設置 -SVR 中損失函數的值(默認0.1) sW'o.m-R7]
-m cachesize:設置cache內存大小,以MB為單位(默認40)
:K ^*y[BE7]\7U -e :設置允許的終止判據(默認0.001) )rI#@C7F5Q Rw,J R']Vz{
-h shrinking:是否使用啟發式,0或1(默認1) "|g6wfu
-wi weight:設置第幾類的參數C為weightC(C-SVC中的C)(默認1)
4Rf W-~|oY] -v n: n-fold交互檢驗模式 Js}7ee&n\{c
其中-g選項中的k是指輸入數據中的屬性數。option -v 隨機地將數據剖分為n部分並計算交互檢驗准確度和均方根誤差。以上這些參數設置可以按照SVM的類型和核函數所支持的參數進行任意組合,如果設置的參數在函數或SVM類型中沒有也不會產生影響,程序不會接受該參數;如果應有的參數設置不正確,參數將採用默認值。training_set_file是要進行訓練的數據集;model_file是訓練結束後產生的模型文件,文件中包括支持向量樣本數、支持向量樣本以及lagrange系數等必須的參數;該參數如果不設置將採用默認的文件名,也可以設置成自己慣用的文件名。 E M%WTF
Svmpredict的用法:svmpredict test_file model_file output_file 1bv R [?d
model_file是由svmtrain產生的模型文件;test_file是要進行預測的數據文件;Output_file是svmpredict的輸出文件。svm-predict沒有其它的選項。 FOiJEO4vsVo#Q
Sx$^&O+K7I@-V;z(M svmtrain -s 0 -c 1000 -t 1 -g 1 -r 1 -d 3 data_file VAHQ!cm+b*Q)t U
訓練一個由多項式核(u'v+1)^3和C=1000組成的分類器。 u:p+jD5q"Pr
svmtrain -s 1 -n 0.1 -t 2 -g 0.5 -e 0.00001 data_file
JxJ&A.J8n t/D*[+Kd 在RBF核函數exp(-0.5|u-v|^2)和終止允許限0.00001的條件下,訓練一個-SVM ( = 0.1)分類器。
9P |4Q'xM}7mo[K!T svmtrain -s 3 -p 0.1 -t 0 -c 10 data_file
1| A {;}9R{+qI 以線性核函數u'v和C=10及損失函數= 0.1求解SVM回歸。;^ 27118希望對你有幫助!
9. svm訓練集中正反例的比例為多少合適
不應該人為地修改數據集中正反例的比例,這是因為,機器學習(統計學習)的一個根本要求就是訓練集和測試集要服從同一個分布,也就是要求訓練集和真實應用場景下是同分布的。所以不應該人為地采樣數據集,使得正反例均勻,因為這樣就改變了數據集的分布。
10. 如何將數據轉換svm格式的數據
Label 1:value 2:value ….
Label:是類別的標識,比如上節train.model中提到的1 -1,你可以自己隨意定,比如-10,0,15。當然,如果是回歸,這是目標值,就要實事求是了。
Value:就是要訓練的數據,從分類的角度來說就是特徵值,數據之間用空格隔開
比如: -15 1:0.708 2:1056 3:-0.3333
需要注意的是,如果特徵值為0,特徵冒號前面的(姑且稱做序號)可以不連續