libsvmpythonlinux
⑴ 如何在linux中libsvm與gunplot
1、下載:先到http://www.csie.ntu.e.tw/~cjlin/libsvm/下載Linux下對版本tar.gz 。
2、解壓縮:解壓縮到任一目錄下,這里我解壓到/home/xxxxxx/libsvm-2.91。/home/xxxxxx/是我的用戶目錄,xxxxxx是用戶名。
3、編譯:進入到/home/xxxxxx/libsvm-2.91,輸入命令make(即可完成安裝,但有時候會出現下列錯誤)
g++ -Wall -Wconversion -O3 -fPIC -c svm.cpp
make: g++: Command not found
make: *** [svm.o] Error 127
4、錯誤解決:此錯誤為沒有對應編譯器,需要安裝。
5、安裝g++編譯器:在終端輸入命令 apt-get install g++
6、再編譯:安裝g++成功後,即可再編譯,編譯成功即可用libsvm
7、Libsvm使用
A.使用svm-train訓練:在終端中輸入./svm-train heart_scale
B.使用svm-predict預測:在終端輸入./svm-predict heart_scale heart_scale.model out
heart_scale為test file, heart_scale.model是由svm-train訓練出來對模型文件,out為預測輸出文件。
8、如果想使用easy.py和grid.py更快的執行以上第7步驟的工作。因為Ubuntu中已經安裝了python和gunplot,所以這兩個軟體對安裝工作可以省略。進入/home/xxxxxx/libsvm-2.91/tools到目錄後,只需要在終端中輸入:
python easy.py /home/xxxxxx/libsvm-2.91/SYN /home/xxxxxx/libsvm-2.91/SYN2NMF
這里SYN為用來構建模型對訓練文件;SYN2NMF為需要預測對文件
運行結果:
Best c=2.0, g=0.0078125 CV rate=77.45
Training...
Output model: SYN.model
Scaling testing data...
Testing...
Accuracy = 83.35% (1667/2000) (classification)
Output prediction: SYN2NMF.predict
關於Linux命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html
PS:在安裝過程中,最好首先在終端中輸入 sudo -i 切換為root用戶模式,避免許可權錯誤。
⑵ 求助,關於libsvm的運算結果分類精度
這個問題挺復雜的。 表面上看是libsvm導入出錯了。
但是還有另外一個原因,就是數據的格式不太對。 解析出錯了。
第三個原因就是python里計算的精度比較高。 而藉助了libsvm後數據的精度變低了。
你說的准確率應該是演算法結果的准確率。 按理,數據導入時精度變低應該影響不大。
所以很大可能是數據導入錯誤,或者是演算法錯誤。
⑶ 如何下載libsvm python
下載libsvm python的方法:
1、訪問「www.csie.ntu.e.tw/~cjlin/libsvm/」網頁,下載zip格式的數據包
2、將文件解壓到python的site-packages文件夾中就可以了
更多Python知識,請關註:Python自學網!!
⑷ python下使用libsvm能處理數據格式為復數(complex)的數據嗎
毋庸置疑,LibSVM是台灣牛人為世界機器學習的卓越貢獻之一。一般都是基於Matlab的,其實LibSVM也可以用Python跑。
第一步,確定本機Python的版本:
32位的最易配置,哈哈,我的機器就是這么的古董。64位的童鞋請Google。
第二步,到官網http://www.csie.ntu.e.tw/~cjlin/libsvm/,來下載LibSVM軟體包,我選擇的是zip包。
第三步,將zip包解壓到一個特定位置,我放到了C:盤根目錄,當然也可以放到program files中。
第四步,就可以測試一下LibSVM是否可用了,打開Python IDE,輸入以下代碼:
能夠看到輸出,84%的分類准確性。
第五步,使用我的個人數據
libsvm的數據格式如下:
第一列代表標簽,第二列是第一個特徵值,第三列是第二個特徵值。所以,先要把數據按規定格式整理好。然後開始訓練。
import os
import sys
os.chdir('C:\libsvm-3.17\python')
from svmutil import *
y, x = svm_read_problem('../lkagain.txt')
m = svm_train(y[:275], x[:275], '-c 5')
y, x = svm_read_problem('../lk2.txt')
p_label, p_acc, p_val = svm_predict(y[0:], x[0:], m)
print p_label
print p_acc
print p_val
第六步,Python介面
在libsvm-3.16的python文件夾下主要包括了兩個文件svm.py和svmutil.py。
svmutil.py介面主要包括了high-level的函數,這些函數的使用和LIBSVM的MATLAB介面大體類似
svmutil中主要包含了以下幾個函數:
svm_train() : train an SVM model
svm_predict() : predict testing data
svm_read_problem() : read the data from a LIBSVM-format file.
svm_load_model() : load a LIBSVM model.
svm_save_model() : save model to a file.
evaluations() : evaluate prediction results.
⑸ 如何利用python使用libsvm
准備工具
libsvm軟體包;
電腦;
步驟操作
把包解壓在C盤之中,如:C:libsvm-3.18;
用libsvm自帶的腳本grid.py和easy.py,需要去官網下載繪圖工具gnuplot,解壓到c盤;
進入c:libsvm ools目錄下,用文本編輯器(記事本,edit都可以)修改grid.py和easy.py兩個文件,找到其中關於gnuplot路徑的那項,根據實際路徑進行修改,並保存;
⑹ libsvm使用python尋優的錯誤信息syntaxerror: invalid syntax是什麼意思
沒對齊。
仔細檢查一下,是不是多了或少了一個空格
⑺ linux系統libsvm可以單獨進行機器學習嗎
沒看懂你的問題,如果你是想在linux下用libsvm進行SVM演算法的話,這個是可以的,因為libsvm提供了java和python的工具包,這兩個都是跨平台的!
⑻ python調用libSVM異常,svm_save_model(modelName,model)。總說第一個參數類型錯誤
可以看看python文件夾下面的README。第一個參數是:保存model的文件名,字元串類型。第二個參數就是svm_train返回的model。
README裡面有詳細的例子。按照你的錯誤,
model_file_name是字元串類型嗎?檢查一下就行吧