免费黄色视频在线观看不卡无码国产一区二区三区_亚洲中文字幕无码中文字 _亚洲 国产专区 校园 欧美_国内自拍真实伦在线视频_国产精品成人观看视频免费

河東軟件園:綠色免費的軟件下載站! 最新軟件|軟件分類|軟件專題|軟件發(fā)布

所在位置:首頁 > 應(yīng)用軟件 > 其它應(yīng)用 > libsvm工具箱 3.1.7 官方版

libsvm工具箱

 3.1.7 官方版
  • 軟件大小:817 KB
  • 更新日期:2017-03-27
  • 軟件語言:簡體中文
  • 軟件類別:其它應(yīng)用
  • 軟件授權(quán):免費軟件
  • 軟件官網(wǎng):
  • 適用平臺:WinXP, Win7, Win8, Win10, WinAll
  • 軟件廠商:

8.9
軟件評分

本地下載文件大?。?17 KB 高速下載需下載高速下載器,提速50%

軟件介紹人氣軟件相關(guān)文章網(wǎng)友評論下載地址

為您推薦:其它應(yīng)用

  libsvm工具箱是一款支持向量機(SVM,Support Vector Machine)的工具箱軟件,而這款工具箱主要用于SVM模式識別與回歸的軟件包,另外,還能夠支持向量機源碼,軟件具有簡單、易于使用等特點,在解決小樣本、高維度及非線性的分類問題中應(yīng)用非常廣泛,總體來說這款libsvm工具箱非常的實用,廣受用戶好評,有需要的朋友不妨下載試試吧!

libsvm工具箱 3.1.7 官方版

軟件功能

  SVM(Support Vector Machine,支持向量機)是一種有監(jiān)督的機器學習方法,可以學習不同類別的已知樣本的特點,進而對未知的樣本進行預測。

  SVM本質(zhì)上是一個二分類的算法,對于n維空間的輸入樣本,它尋找一個最優(yōu)的分類超平面,使得兩類樣本在這個超平面下可以獲得最好的分類效果。這個最優(yōu)可以用兩類樣本中與這個超平面距離最近的點的距離來衡量,稱為邊緣距離,邊緣距離越大,兩類樣本分得越開,SVM就是尋找最大邊緣距離的超平面,這個可以通過求解一個以超平面參數(shù)為求解變量的優(yōu)化問題獲得解決。給定適當?shù)募s束條件,這是一個二次優(yōu)化問題,可以通過用KKT條件求解對偶問題等方法進行求解。

  對于不是線性可分的問題,就不能通過尋找最優(yōu)分類超平面進行分類,SVM這時通過把n維空間的樣本映射到更高維的空間中,使得在高維的空間上樣本是線性可分的。在實際的算法中,SVM不需要真正地進行樣本點的映射,因為算法中涉及到的高維空間的計算總是以內(nèi)積的形式出現(xiàn),而高維空間的內(nèi)積可以通過在原本n維空間中求內(nèi)積然后再進行一個變換得到,這里計算兩個向量在隱式地映射到高維空間的內(nèi)積的函數(shù)就叫做核函數(shù)。SVM根據(jù)問題性質(zhì)和數(shù)據(jù)規(guī)模的不同可以選擇不同的核函數(shù)。

  雖然SVM本質(zhì)上是二分類的分類器,但是可以擴展成多分類的分類器,常見的方法有一對多(one-versus-rest)和一對一(one-versus-one)。在一對多方法中,訓練時依次把k類樣本中的某個類別歸為一類,其它剩下的歸為另一類,使用二分類的SVM訓練處一個二分類器,最后把得到的k個二分類器組成k分類器。對未知樣本分類時,分別用這k個二分類器進行分類,將分類結(jié)果中出現(xiàn)最多的那個類別作為最終的分類結(jié)果。而一對一方法中,訓練時對于任意兩類樣本都會訓練一個二分類器,最終得到k*(k-1)/2個二分類器,共同組成k分類器。對未知樣本分類時,使用所有的k*(k-1)/2個分類器進行分類,將出現(xiàn)最多的那個類別作為該樣本最終的分類結(jié)果。

  LIBSVM中的多分類就是根據(jù)一對一的方法實現(xiàn)的。

libsvm工具箱 3.1.7 官方版

軟件特色

  不同的SVM制劑

  高效多類分類

  模型選擇的交叉驗證

  概率估計

  各種內(nèi)核(包括預計算內(nèi)核矩陣)

  用于不平衡數(shù)據(jù)的加權(quán)SVM

  C ++和Java源代碼

  GUI顯示SVM分類和回歸

  Python, R,MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, OCaml, LabVIEW和 PHP 界面。C#.NET代碼和CUDA擴展可用。

  它還包括在一些數(shù)據(jù)挖掘環(huán)境中: RapidMiner, PCP和 LIONsolver。

  自動模型選擇可以產(chǎn)生交叉驗證精度的輪廓。

libsvm工具箱 3.1.7 官方版

安裝方法

  1. 下載

  在本站下載并解壓軟件。

  2. 編譯

  如果你使用的是64位的操作的系統(tǒng)和Matlab,那么不需要進行編譯步驟,因為自帶軟件包中已經(jīng)包含有64位編譯好的版本:libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64。否則,需要自己編譯二進制文件。

  首先在Mtlab中進入LIBSVM根目錄下的matlab目錄(如C:libsvm-3.17matlab),在命令窗口輸入

  >>mex –setup

  然后Matlab會提示你選擇編譯mex文件的C/C++編譯器,就選擇一個已安裝的編譯器,如Microsoft Visual C++ 2010。之后Matlab會提示確認選擇的編譯器,輸入y進行確認。

  然后可以輸入以下命令進行編譯。

  >>make

  注意,Matlab或VC版本過低可能會導致編譯失敗,建議使用最新的版本。

  編譯成功后,當前目錄下會出現(xiàn)若干個后綴為mexw64(64位系統(tǒng))或mexw32(32位系統(tǒng))的文件。

  3. 重命名(可選,但建議執(zhí)行)

  編譯完成后,在當前目錄下回出現(xiàn)svmtrain.mexw64、svmpredict.mexw64(64位系統(tǒng))或者svmtrain.mexw32、svmpredict.mexw32(32位系統(tǒng))這兩個文件,把文件名svmtrain和svmpredict相應(yīng)改成libsvmtrain和libsvmpredict。

  這是因為Matlab中自帶有SVM的工具箱,而且其函數(shù)名字就是svmtrain和svmpredict,和LIBSVM默認的名字一樣,在實際使用的時候有時會產(chǎn)生一定的問題,比如想調(diào)用LIBSVM的變成了調(diào)用Matlab SVM。

  如果有進行重命名的,以后使用LIBSVM時一律使用libsvmtrain和libsvmpredict這兩個名字進行調(diào)用。

  4. 添加路徑

  為了以后使用的方便,建議把LIBSVM的編譯好的文件所在路徑(如C:libsvm-3.17matlab)添加到Matlab的搜索路徑中。具體操作為:(中文版Matlab對應(yīng)進行)

  HOME -> Set Path -> Add Folder -> 加入編譯好的文件所在的路徑(如C:libsvm-3.17matlab)

  當然也可以把那4個編譯好的文件復制到想要的地方,然后再把該路徑添加到Matlab的搜索路徑中。

  二 測試

  LIBSVM軟件包中自帶有測試數(shù)據(jù),為軟件包根目錄下的heart_scale文件,可以用來測試LIBSVM是否安裝成功。這里的heart_scale文件不能用Matlab的load進行讀取,需要使用libsvmread讀取。

  進入LIBSVM的根目錄運行以下代碼(因為heart_scale文件沒有被添加進搜索路徑中,其他路徑下無法訪問這個文件):

  [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');

  model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');

  [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);

  如果LIBSVM安裝正確的話,會出現(xiàn)以下的運行結(jié)果,顯示正確率為86.6667%。

  *

  optimization finished, #iter = 134

  nu = 0.433785

  obj = -101.855060, rho = 0.426412

  nSV = 130, nBSV = 107

  Total nSV = 130

  Accuracy = 86.6667% (234/270) (classification)

libsvm工具箱 3.1.7 官方版

使用方法

  關(guān)于LIBSVM在Matlab中的使用,可以參看軟件包中matlab目錄下的README文件,這里對里面內(nèi)容做一個翻譯和一些細節(jié)的講解。

  1. 訓練

  libsvm函數(shù)用于對訓練集的數(shù)據(jù)進行訓練,得到訓練好的模型。

  model = libsvmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);

  這個函數(shù)有三個參數(shù),其中

  -training_label_vector:訓練樣本的類標,如果有m個樣本,就是m x 1的矩陣(類型必須為double)。這里可以是二分類和多分類,類標是(-1,1)、(1,2,3)或者其他任意用來表示不同的類別的數(shù)字,要轉(zhuǎn)成double類型。

  -training_instance_matrix:訓練樣本的特征,如果有m個樣本,每個樣本特征是n維,則為m x n的矩陣(類型必須為double)。

  -libsvm_options:訓練的參數(shù),在第3點詳細介紹。

  2. 預測

  libpredict函數(shù)用于對測試集的數(shù)據(jù)進行測試,還能對未知樣本進行預測。

  [predicted_label, accuracy, decision_values/prob_estimates]

  = libsvmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);

  這個函數(shù)包括四個參數(shù),其中

  -testing_label_vector:測試樣本的類標,如果有m個樣本,就是m x 1的矩陣(類型必須為double)。如果類標未知,可以初始化為任意m x 1的double數(shù)組。

  -testing_instance_matrix:測試樣本的特征,如果有m個樣本,每個樣本特征是n維,則為m x n的矩陣(類型必須為double)。

  -model:使用libsvmtrain返回的模型

  -libsvm_options:預測的參數(shù),與訓練的參數(shù)形式一樣。

  3. 訓練的參數(shù)

  LIBSVM訓練時可以選擇的參數(shù)很多,包括:

  -s svm類型:SVM設(shè)置類型(默認0)

  0 — C-SVC; 1 –v-SVC; 2 – 一類SVM; 3 — e-SVR; 4 — v-SVR

  -t 核函數(shù)類型:核函數(shù)設(shè)置類型(默認2)

  0 – 線性核函數(shù):u‘v

  1 – 多項式核函數(shù):(r*u‘v + coef0)^degree

  2 – RBF(徑向基)核函數(shù):exp(-r|u-v|^2)

  3 – sigmoid核函數(shù):tanh(r*u‘v + coef0)

  -d degree:核函數(shù)中的degree設(shè)置(針對多項式核函數(shù))(默認3)

  -g r(gamma):核函數(shù)中的gamma函數(shù)設(shè)置(針對多項式/rbf/sigmoid核函數(shù))(默認1/k,k為總類別數(shù))

  -r coef0:核函數(shù)中的coef0設(shè)置(針對多項式/sigmoid核函數(shù))((默認0)

  -c cost:設(shè)置C-SVC,e -SVR和v-SVR的參數(shù)(損失函數(shù))(默認1)

  -n nu:設(shè)置v-SVC,一類SVM和v- SVR的參數(shù)(默認0.5)

  -p p:設(shè)置e -SVR 中損失函數(shù)p的值(默認0.1)

  -m cachesize:設(shè)置cache內(nèi)存大小,以MB為單位(默認40)

  -e eps:設(shè)置允許的終止判據(jù)(默認0.001)

  -h shrinking:是否使用啟發(fā)式,0或1(默認1)

  -wi weight:設(shè)置第幾類的參數(shù)C為weight*C (C-SVC中的C) (默認1)

  -v n: n-fold交互檢驗?zāi)J?,n為fold的個數(shù),必須大于等于2

  以上這些參數(shù)設(shè)置可以按照SVM的類型和核函數(shù)所支持的參數(shù)進行任意組合,如果設(shè)置的參數(shù)在函數(shù)或SVM類型中沒有也不會產(chǎn)生影響,程序不會接受該參數(shù);如果應(yīng)有的參數(shù)設(shè)置不正確,參數(shù)將采用默認值。

  4. 訓練返回的內(nèi)容

  libsvmtrain函數(shù)返回訓練好的SVM分類器模型,可以用來對未知的樣本進行預測。這個模型是一個結(jié)構(gòu)體,包含以下成員:

  -Parameters: 一個5 x 1的矩陣,從上到下依次表示:

  -s SVM類型(默認0);

  -t 核函數(shù)類型(默認2)

  -d 核函數(shù)中的degree設(shè)置(針對多項式核函數(shù))(默認3);

  -g 核函數(shù)中的r(gamma)函數(shù)設(shè)置(針對多項式/rbf/sigmoid核函數(shù)) (默認類別數(shù)目的倒數(shù));

  -r 核函數(shù)中的coef0設(shè)置(針對多項式/sigmoid核函數(shù))((默認0)

  -nr_class: 表示數(shù)據(jù)集中有多少類別,比如二分類時這個值即為2。

  -totalSV: 表示支持向量的總數(shù)。

  -rho: 決策函數(shù)wx+b中的常數(shù)項的相反數(shù)(-b)。

  -Label: 表示數(shù)據(jù)集中類別的標簽,比如二分類常見的1和-1。

  -ProbA: 使用-b參數(shù)時用于概率估計的數(shù)值,否則為空。

  -ProbB: 使用-b參數(shù)時用于概率估計的數(shù)值,否則為空。

  -nSV: 表示每類樣本的支持向量的數(shù)目,和Label的類別標簽對應(yīng)。如Label=[1; -1],nSV=[63; 67],則標簽為1的樣本有63個支持向量,標簽為-1的有67個。

  -sv_coef: 表示每個支持向量在決策函數(shù)中的系數(shù)。

  -SVs: 表示所有的支持向量,如果特征是n維的,支持向量一共有m個,則為m x n的稀疏矩陣。

  另外,如果在訓練中使用了-v參數(shù)進行交叉驗證時,返回的不是一個模型,而是交叉驗證的分類的正確率或者回歸的均方根誤差。

  5. 預測返回的內(nèi)容

  libsvmtrain函數(shù)有三個返回值,不需要的值在Matlab可以用~進行代替。

  -predicted_label:第一個返回值,表示樣本的預測類標號。

  -accuracy:第二個返回值,一個3 x 1的數(shù)組,表示分類的正確率、回歸的均方根誤差、回歸的平方相關(guān)系數(shù)。

  -decision_values/prob_estimates:第三個返回值,一個矩陣包含決策的值或者概率估計。對于n個預測樣本、k類的問題,如果指定“-b 1”參數(shù),則n x k的矩陣,每一行表示這個樣本分別屬于每一個類別的概率;如果沒有指定“-b 1”參數(shù),則為n x k*(k-1)/2的矩陣,每一行表示k(k-1)/2個二分類SVM的預測結(jié)果。

  6. 讀取或保存

  libsvmread函數(shù)可以讀取以LIBSVM格式存儲的數(shù)據(jù)文件。

  [label_vector, instance_matrix] = libsvmread(‘data.txt‘);

  這個函數(shù)輸入的是文件的名字,輸出為樣本的類標和對應(yīng)的特征。

  libsvmwrite函數(shù)可以把Matlab的矩陣存儲稱為LIBSVM格式的文件。

  libsvmwrite(‘data.txt‘, label_vector, instance_matrix]

  這個函數(shù)有三個輸入,分別為保存的文件名、樣本的類標和對應(yīng)的特征(必須為double類型的稀疏矩陣)。

libsvm工具箱 3.1.7 官方版

下載地址

查看所有評論>>網(wǎng)友評論0

發(fā)表評論

您的評論需要經(jīng)過審核才能顯示

精彩評論

最新評論

蓋樓回復X

(您的評論需要經(jīng)過審核才能顯示)