pythonlibsvmubuntu
1. 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.
2. python調用libSVM異常,svm_save_model(modelName,model)。總說第一個參數類型錯誤
可以看看python文件夾下面的README。第一個參數是:保存model的文件名,字元串類型。第二個參數就是svm_train返回的model。
README裡面有詳細的例子。按照你的錯誤,
model_file_name是字元串類型嗎?檢查一下就行吧
3. ubuntu python64位支持libsvm嗎
把包解壓在C盤之中,如:C:\libsvm-3.182. 因為要用libsvm自帶的腳本grid.py和easy.py,需要去官網下載繪圖工具gnuplot,解壓到c盤.進入c:\libsvm\tools目錄下,用文本編輯器(記事本,edit都可以)修改grid.py和easy.py兩個文件,找到其中關於gnuplot路徑的那項,根據實際路徑進行修改,並保存 python與libsvm的連接(參考SVM學習筆記(2)LIBSVM在python下的使用) 1.打開IDLE(pythonGUI),輸入>>>importsys>>>sys.version 2.如果你的python是32位,將出現如下字元: (default,Apr102012,23:31:26)[MSCv.150032bit(Intel)]』 這個時候LIBSVM的python介面設置將非常簡單。在libsvm-3.16文件夾下的windows文件夾中找到動態鏈接庫libsvm.dll,將其添加到系統目錄,如`C:\WINDOWS\system32\』,即可在python中使用libsvm wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();}); 3.執行一個小例子 importos os.chdir('C:\libsvm-3.18\python')#請根據實際路徑修改 fromsvmutilimport* y,x=svm_read_problem('../heart_scale')#讀取自帶數據 m=svm_train(y[:200],x[:200],'-c4') p_label,p_acc,p_val=svm_predict(y[200:],x[200:],m) ##出現如下結果,應該是正確安裝了optimizationfinished,#iter=257nu=0.351161 obj=-225.628984,rho=0.636110nSV=91,nBSV=49 TotalnSV=91 Accuracy=84.2857%(59/70)(classification)
4. 求教Ubuntu里的python運行sthor和liblinearutil不見的問題
在python中使用liblinear
1.安裝
1.從 下載壓縮文件,解壓
2.進入liblinear主目錄,執行make
3.進入./python的文件夾下,拷貝文件夾目錄
4.將目錄添加至python解釋器的path中,export PYTHONPATH=/Users/username/Downloads/liblinear-2.01/python:$PAYTHONPATH
5.進入python, 運行import liblinear,無報錯,即完成。
2.使用liblinearutil
liblinearutil模塊相比liblinear模塊不用考慮ctypes的問題,直接用python數據類型就可以。
from liblinearutil import *1
常用函數
train():訓練線性模型
predict():對testing數據做預測
svm_read_problem():讀取libsvm格式的數據
load_model():load模型
save_model():將模型存儲為文件
evaluations():評價預測結果
model = train(y, x[, 'training_options'])# y是list/tuple類型,長度為l的訓練標簽向量# x是list/tuple類型的訓練實例,list中的每一個元素是list/tuple/dictory類型的feature向量#以下寫法的作用是相同的model = train(prob[, 'training_options'])
model = train(prob, param)# examplesy, x = svm_read_problem('../heart_scale')# 讀入libsvm格式的數據prob = problem(y, x)# 將y,x寫作probparam = parameter('-s 3 -c 5 -q')# 將參數命令寫作paramm = train(y, x, '-c 5')
m = train(prob, '-w1 5 -c 5')
m = train(prob, param)# 進行訓練CV_ACC = train(y, x, '-v 3')# -v 3 是指進行3-fold的交叉驗證# 返回的是交叉驗證的准確率best_C, best_rate = train(y, x, '-C -s 0')
p_labs, p_acc, p_vals = predict(y, x, m [,'predicting_options'])# y是testing data的真實標簽,用於計算準確率# x是待預測樣本# p_labs: 預測出來的標簽# p_acc: tuple類型,包括准確率,MSE,Squared correlation coefficient(平方相關系數)# p_vals: list, 直接由模型計算出來的值,沒有轉化成1,0的值,也可以看做是概率估計值(ACC, MSE, SCC) = evaluations(ty, pv)# ty: list, 真實值# pv: list, 估計值
5. 如何加速基於Python的libsvm速度
if not is_win32: svmtrain_exe = "../svm-train" gnuplot_exe = "/usr/bin/gnuplot" else: gnuplot_exe = "/usr/bin/gnuplot"這一行少了一個TAB鍵。建設你把所有行前面的空格跟TAB刪除後重新打上空格或TAB鍵。
6. 如何下載libsvm python
下載libsvm python的方法:
1、訪問「www.csie.ntu.e.tw/~cjlin/libsvm/」網頁,下載zip格式的數據包
2、將文件解壓到python的site-packages文件夾中就可以了
更多Python知識,請關註:Python自學網!!
7. ubuntu 下怎樣安裝python
1.先檢查當前系統中是否已經安裝python,直接使用python -V查看
8. 如何在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用戶模式,避免許可權錯誤。
9. 如何在ubuntu下使用python
安裝是可以安裝上,這個版本不完整的,無法安裝psycopg2最後還是先用python2.6把libpg-dev安裝上,然後再編譯安裝python2.5,再安裝psycopg2
10. 怎樣在ubuntu中安裝python及科學計算環境
去Anaconda 官網下一個包。直接安裝就好了