日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

支持向量机libsvm实战入门

發布時間:2025/5/22 编程问答 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支持向量机libsvm实战入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、libsvm介紹


????SVM支持向量機是目前比較流行的一種數據挖掘方法,能夠處理較高維度,具體介紹可參考這篇博文:

支持向量機通俗導論(理解SVM的三層境界)

????LIBSVM是臺灣大學林智仁(Lin Chih-Jen)教授等開發設計的一個簡單、易于使用和快速有效的SVM模式識別與回歸的軟件包,他不但提供了編譯好的可在Windows系列系統的執行文件,還提供了源代碼,方便改進、修改以及在其它操作系統上應用;該軟件對SVM所涉及的參數調節相對比較少,提供了很多的默認參數,利用這些默認參數可以解決很多問題;并提供了交互檢驗(Cross Validation)的功能。

????軟件下載地址http://www.csie.ntu.edu.tw/~cjlin/libsvm/#java,最新版3.2.0


????這里我們使用JAVA版本的,主要就是svm_scale,svm_train,svm_predict這三個程序,只要安裝了JDK就可以使用如下命令運行

java?-classpath?libsvm.jar?svm_scale?+參數 java?-classpath?libsvm.jar?svm_train?+參數 java?-classpath?libsvm.jar?svm_predict?+參數

?


二、數據準備

????LibSVM使用的數據格式為<label> <index1>:<value1> <index2>:<value2> …,label表示分類,index表示第幾個變量/特征,軟件官網已提供了大量符合數據格式要求的數據集供我們下載:

http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/

?

????下載其中名為usps的數據集,如圖所示,該數據集分成了10類,訓練樣本7291,測試樣本2007,屬性(變量)256個


三、數據縮放(歸一化)

svm-scale幫助提示

歸一化后的數據默認顯示在控制臺上所以我們要重定向到文件里保存


java?-classpath?libsvm.jar?svm_scale?-s???1.txt???usps??>?scale

表示將usps訓練集進行縮放(默認的規則),將縮放后的數據結果重定向輸出到scale,并將這個縮放規則存儲在1.txt中以便后面繼續使用。

四、?訓練并生成模型

svm-train幫助提示


java?-classpath?libsvm.jar?svm_train??scale??model

將歸一化后的數據文件scale訓練成模型保存在model文件中,訓練過程如下

生成的模型文件如下所示:


五、利用模型進行預測

svm_predict幫助提示


java?-classpath?libsvm.jar?svm_predict??usps.t?model?output

利用第三步生成的模型對測試數據usps.t進行預測,預測結果保存在output文件中。

生成的預測結果文件output中直接是測試集中每個樣本的分類。




注:

svm_toy小程序

java?-classpath?libsvm.jar?svm_toy

彈出一個圖形窗口自己可以在上面繪制不同顏色的點進行測試


注:

One Class SVM 是指你的training data 只有一類positive (或者negative)的data, 而沒有另外的一類。在這時,你需要learn的實際上你training data 的boundary。而這時不能使用 maximum margin 了,因為你沒有兩類的data。 所以呢,在這邊文章中,“Estimating the support of a high-dimensional distribution”, Schlkopf 假設最好的boundary要遠離feature space 中的原點。
左邊是在original space中的boundary,可以看到有很多的boundary 都符合要求,但是比較靠譜的是找一個比較 緊(closeness) 的boundary (紅色的)。這個目標轉換到feature space 就是找一個離原點比較遠的boundary,同樣是紅色的直線。當然這些約束條件都是人為加上去的,你可以按照你自己的需要采取相應的約束條件,比如讓你data的中心離原點最遠。

?

參考文章:

http://www.tanglei.name/an-example-for-beginning-to-learn-libsvm/


別人翻譯的README里面命令參數詳解

http://blog.sina.com.cn/s/blog_4c38701d01011ept.html


libsvm 參數說明【中英文雙語版本】

http://www.matlabsky.com/forum-viewthread-tid-12380-fromuid-18677.html


本文出自 “點滴積累” 博客,請務必保留此出處http://tianxingzhe.blog.51cto.com/3390077/1655672

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的支持向量机libsvm实战入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。