public class TestScale {
創(chuàng)新互聯(lián)長(zhǎng)期為近1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏(yíng)平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為普寧企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,普寧網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
public static void main(String[] args) throws IOException {
String reafile = " "; // 文件路徑
svm_scale svms = new svm_scale();
String[] srg = { reafile };//在這可以添加相關(guān)的系數(shù)"-l","0","-u","1","-s".以及要保存的scale參數(shù)文件
svms.main(srg);
}
}
第一步:下載java版libsvm3.12,解壓。
第二步:打開(kāi)java文件夾
第三步:建立項(xiàng)目,引用lib.svm包
第五步:把第二步中的文件夾中四個(gè)文件復(fù)制到一個(gè)自定義的包中
第六步:寫(xiě)程序調(diào)用,代碼如下,貼出來(lái)供大家學(xué)習(xí),有不對(duì)的地方,歡迎拍磚。
import java.io.IOException;
import libsvm.svm;
import libsvm.svm_model;
public class SVMTest {
public static void main(String[] args) throws IOException {
svm_train svmt = new svm_train();
svm_predict svmp = new svm_predict();
String[] argvTrain = {
"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\train\\TR1.data",// 訓(xùn)練文件
"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model"http:// 模型文件
};
String[] argvPredict = {
"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\predict\\PR1.data",// 預(yù)測(cè)文件
"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model", // 模型文件
"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\result\\RE1.out" // 預(yù)測(cè)結(jié)果文件
};
try {
svmt.main(argvTrain);
svmp.main(argvPredict);
} catch (IOException e) {
e.printStackTrace();
}
double[] record = { -1, 12, 12, 78 };
libsvm.svm_model model = svm
.svm_load_model("C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model");
System.out.println(svmp.predictPerRecord(record, model));
}
}
手機(jī)應(yīng)該不行。
SVM是什么?是一種比較新比較流行的算法,常常用在分類(lèi)問(wèn)題和回歸問(wèn)題上。
在我這里,我把它當(dāng)做一種比較好使的分類(lèi)器。
A.與NN比較起來(lái),參數(shù)設(shè)定簡(jiǎn)單。
在NN里面一般需要設(shè)定隱藏層節(jié)點(diǎn)數(shù),節(jié)點(diǎn)連接方式,訓(xùn)練算法等參數(shù),
麻煩而且沒(méi)辦法預(yù)知哪些參數(shù)比較有效。
而在SVM里面根據(jù)核函數(shù)的不同一般只需要選擇一個(gè)參數(shù)或者兩個(gè)參數(shù)就可以
搞定。
B.NN容易陷入局部最優(yōu),SVM是求解的全局最優(yōu)。
NN依初始值不同,有些時(shí)候會(huì)進(jìn)入局部最優(yōu)。SVM只會(huì)找到全局最優(yōu)的唯一解。
C.libsvm是一個(gè)常用的SVM實(shí)現(xiàn),有C和JAVA等多個(gè)版本。
輸入輸出的文件格式也非常簡(jiǎn)單,推薦使用。
?libsvm雖然支持多類(lèi)分類(lèi),但是其本質(zhì)是基于“一對(duì)一”法的多類(lèi)分類(lèi),因此究其其本質(zhì)其實(shí)是個(gè)二分類(lèi)svm。
?既然是二分類(lèi),肯定有屬于第一類(lèi)-1的支持向量,屬于第二類(lèi)+1的支持向量,它肯定應(yīng)該是個(gè)二維數(shù)組。
? libsvm訓(xùn)練輸出model中的參數(shù)有一個(gè)是sv_coef,它表示的是支持向量在決策函數(shù)中:
? ? ? ? ? ? ? ?
的系數(shù)a,而b是model里的rho。
? ?最后說(shuō)下model里全有啥參數(shù):
? ?model?=?
? ? ? ?Parameters: svm的類(lèi)型參數(shù)
? ? ? ?nr_class: 有多少個(gè)類(lèi)別
? ? ? ?totalSV: 支持向量總個(gè)數(shù)
? ? ? ?rho: 就是決策函數(shù)里那個(gè)b
? ? ? ?Label: 類(lèi)標(biāo)
? ? ? ?ProbA:?
? ? ? ?ProbB:?這兩個(gè)是但svm 選-b是用到的參數(shù)
? ? ? ?nSV: 每類(lèi)有多少個(gè)支持向量
? ? ? ?sv_coef: 決策函數(shù)那個(gè)a
? ? ? ?SVs: 里面裝的是所以支持向量
菜鳥(niǎo)個(gè)人愚見(jiàn),如有錯(cuò)誤望指正!共同學(xué)習(xí)
如果只是想用,可以調(diào)用ENVI的SVM~在ENVI幫助文檔搜ENVI_SVM_DOIT
如果想看代碼,我沒(méi)編過(guò),不過(guò)在百度文庫(kù)看到一個(gè),根據(jù)那個(gè)WORD里面的鏈接就能下下來(lái)了,不過(guò)是否正確不知道耶~
最有名的SVM程序包是臺(tái)灣國(guó)立大學(xué)的林智仁教授開(kāi)發(fā)的libSVM,直接在Google里面輸入尋找官網(wǎng)下載,是C++編寫(xiě),但有matlab接口,在本地編譯后就可以使用,很方便。
當(dāng)前題目:javasvm源代碼 jvm源碼怎么看
本文來(lái)源:http://jinyejixie.com/article48/dosciep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)