當前位置:首頁 » 編程語言 » pythonlibsvm安裝

pythonlibsvm安裝

發布時間: 2025-06-05 05:21:56

1. 如何利用python使用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)

2. windows怎麼安裝pybluez

今天弄了一上午的python-ldap,發現要麼安裝vc,要麼用其他比較麻煩的方法,都比較麻煩。幸好找到這個地址:
http://www.lfd.uci.e/~gohlke/pythonlibs/
這上面有很多python第三方包的二進制安裝文件,包括32位和64位的。下載安裝就ok了!
包括了mysqldb,ldap等。
Index by date:
fiona
scikit-image
netcdf4
mercurial
scikits.audiolab
numba
llvmpy
python-igraph
rpy2
numpy
opencv
zope.interface
sfepy
quantlib
gdal
imread
django
psychopy
cx_freeze
msgpack
regex
cellcognition
vigra
scikit-learn
pytables
h5py
blender-mathutils
htseq
bioformats
simplejson
pyzmq
mako
simpleitk
qimage2ndarray
ujson
vlfd
libsvm
liblinear
cgkit
scipy
distribute
noise
theano
pyalembic
openimageio
pyaudio
pymca
pyamg
pgmagick
lxml
steps
sqlalchemy
cffi
biopython
python-ldap
pycurl
nipy
nibabel
pygments
mahotas
py-postgresql
pyamf
planar
holopy
pyvisa
jcc
polymode
polygon
cython
pyropes
llist
shapely
vtk
pymongo
libpython
meshpy
pandas
umysql
epydoc
coverage
cheetah
pyrxp
pybluez
pythonmagick
bsdiff4
pymssql
pymol
boost.python
orange
requests
pywcs
python-sundials
pymix
pyminuit
pylzma
pyicu
assimulo
basemap
pygraphviz
pyproj
mpi4py
spyder
pytz
pyfits
mysql-python
pygame
pycparser
twisted
pil
qutip
openexr
nipype
python-snappy
visvis
docutils
pyhdf
pyqwt
kivy
scikits.umfpack
psycopg
ets
guiqwt
veusz
pyqt
pyside
dpmix
py-fcm
scikits.hydroclimpy
smc.freeimage
scipy-stack
ipython
nose
mxbase
numexpr
pyyaml
ode
virtualenv
aspell_python
tornado
pywavelets
bottleneck
networkx
statsmodels
pylibdeconv
pyhook
lmfit
slycot
ndimage
scikits.scattpy
cvxopt
pymc
pysparse
scikits.odes
matplotlib
vpython
pycuda
pyopencl
pymvpa
pythonnet
cld
mod_wsgi
nltk
python-levenshtein
rtree
pywin32
scientificpython
sympy
thrift
pyopengl-accelerate
mdp
pyopengl
gmpy
reportlab
natgrid
scikits.vectorplot
pyreadline
milk
blosc
pycogent
pip
gevent
scons
carray
python-dateutil
jinja2
markupsafe
jsonlib
pysfml
fonttools
silvercity
console
python-cjson
pycluster
cdecimal
pytst
autopy
sendkeys
ceodbc
fipy
psutil
pyephem
pycifrw
blist
line_profiler
pydbg
bitarray
pyglet
python-lzo
faulthandler
delny
pyexiv2
ilastik
twainmole
scitools
pyspharm
casuarius
pyodbc
greenlet
nitime
pylibtiff
mmtk
pycairo
pysqlite
curses
videocapture
bazaar
nlopt
trfit
libsbml
oursql
sphinx
cellprofiler
py2exe
re2
liblas
cgal-python
pymedia
ffnet
pyfftw
libxml-python
pyfltk
pymex
pymatlab
zodb3
mmlib
pygtk
pyserial
babel
scikits.ann
scikits.delaunay
numeric
pulp
nmoldyn
pymutt
iocbio
jpype
wxpython
pybox2d
dipy
mmseg
pynifti
scikits.samplerate
scikits.timeseries
vitables
quickfix
numscons
visionegg

3. 如何利用python使用libsvm

一:libsvm包下載與使用:

LIBSVM是台灣大學林智仁(Lin Chih-Jen)副教授等開發設計的一個簡單、易於使用和快速有效的SVM模式識別與回歸的軟體包,他不但提供了編譯好的可在Windows系列系統的執行文件,還提供了源代碼,方便改進.
把包解壓在C盤之中,如:C:\libsvm-3.18
2.
因為要用libsvm自帶的腳本grid.py和easy.py,需要去官網下載繪圖工具gnuplot,解壓到c盤
3.
進入c:\libsvm\tools目錄下,用文本編輯器(記事本,edit都可以)修改grid.py和easy.py兩個文件,找到其中關於gnuplot路徑的那項,根據實際路徑進行修改,並保存
4python與libsvm的連接(參考SVM學習筆記(2)LIBSVM在python下的使用 )

a.打開IDLE(python GUI),輸入
>>>import sys
>>>sys.version
如果你的python是32位,將出現如下字元:
『2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]』
這個時候LIBSVM的python介面設置將非常簡單。在libsvm-3.16文件夾下的windows文件夾中找到動態鏈接庫libsvm.dll,將其添加到系統目錄,如`C:\WINDOWS\system32\』,即可在python中使用libsvm
b.如果你是64位的請參考文獻,請參考上述連接。

5.執行一個小例子

import os

os.chdir('C:\libsvm-3.18\python')#請根據實際路徑修改

from svmutil import *

y, x = svm_read_problem('../heart_scale')#讀取自帶數據

m = svm_train(y[:200], x[:200], '-c 4')

p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)

##出現如下結果,應該是正確安裝了
optimization finished, #iter = 257
nu = 0.351161
obj = -225.628984, rho = 0.636110
nSV = 91, nBSV = 49
Total nSV = 91
Accuracy = 84.2857% (59/70) (classification)

二幾個簡單的例子
從下載實驗數據集。並且將數據集拷貝到C:\libsvm-3.18\windows下(因為之後我們需要利用該文件夾下的其他文件,這樣比較方便,當然之後你用絕對地址也可以了)
建立一個py文件,寫下如下代碼:
例1:

import os

os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *

y, x = svm_read_problem('train.1.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.txt')#訓練測試數據
m = svm_train(y, x )#訓練
svm_predict(yt,xt,m)#測試

執行上述代碼,精度為:Accuracy = 66.925% (2677/4000) (classification)

常用介面
svm_train() : train an SVM model#訓練
svm_predict() : predict testing data#預測
svm_read_problem() : read the data from a LIBSVM-format file.#讀取libsvm格式的數據
svm_load_model() : load a LIBSVM model.
svm_save_model() : save model to a file.
evaluations() : evaluate prediction results.
- Function: svm_train#三種訓練寫法
There are three ways to call svm_train()
>>> model = svm_train(y, x [, 'training_options'])
>>> model = svm_train(prob [, 'training_options'])
>>> model = svm_train(prob, param)

有關參數的設置(read me 文件夾中有詳細說明):
Usage: svm-train [options] training_set_file [model_file]
options:
-s svm_type : set type of SVM (default 0)#選擇哪一種svm
0 -- C-SVC (multi-class classification)
1 -- nu-SVC (multi-class classification)
2 -- one-class SVM
3 -- epsilon-SVR (regression)
4 -- nu-SVR (regression)
-t kernel_type : set type of kernel function (default 2)#是否用kernel trick
0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree
2 -- radial basis function: exp(-gamma*|u-v|^2)
3 -- sigmoid: tanh(gamma*u'*v + coef0)
4 -- precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/num_features)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)
-v n: n-fold cross validation mode
-q : quiet mode (no outputs)

三提高預測的准確率:
通過一定的過程,可以提高預測的准確率(在文獻2中有詳細介紹):
a.轉換數據為libsvm可用形式.(可以通過下載的數據了解格式)
b.進行一個簡單的尺度變換
c.利用RBF kernel,利用cross-validation來查找最佳的參數 C 和 r
d.利用最佳參數C 和 r ,來訓練整個數據集
e.測試

再看例子1:
1.進入cmd模式下,輸入如下代碼,將現有數據進行適度變換,生成變換後的數據文件train.1.scale.txt

參數說明:
-l 變換後的下限
-u 變換後的上限
-s 參考上文

2執行以下代碼

import os

os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *

y, x = svm_read_problem('train.1.scale.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.scale.txt')#訓練測試數據
m = svm_train(y, x )#訓練
svm_predict(yt,xt,m)#測試

精確度為Accuracy = 95.6% (3824/4000) (classification)。
可見我們只是做了簡單的尺度變換後,預測的正確率大大提升了。

3通過選擇最優參數,再次提高預測的准確率:(需要把tools文件下的grid.py拷貝到'C:\libsvm-3.18\windows'下)

import os
os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *
from grid import *

rate, param = find_parameters('train.1.scale.txt', '-log2c -3,3,1 -log2g -3,3,1')

y, x = svm_read_problem('train.1.scale.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.scale.txt')#訓練測試數據
m = svm_train(y, x ,'-c 2 -g 4')#訓練
p_label,p_acc,p_vals=svm_predict(yt,xt,m)#測試

執行上面的程序,find_parmaters函數,可以找到對應訓練數據較好的參數。後面的log2c,log2g分別設置C和r的搜索范圍。搜索機制是以2為底指數搜索,如 –log2c –3 , 3,1 就是參數C,從2^-3,2^-2,2^-1…搜索到2^3.
搜索到較好參數後,在訓練的時候加上參數的設置。
另外,讀者可以自己試試數據集2,3.

熱點內容
安卓10夜間模式是什麼 發布:2025-06-06 16:55:56 瀏覽:221
win7sql伺服器 發布:2025-06-06 16:54:23 瀏覽:745
微信收付款密碼是什麼 發布:2025-06-06 16:54:14 瀏覽:133
java是值調用 發布:2025-06-06 16:54:14 瀏覽:832
安卓收聽電視用什麼軟體 發布:2025-06-06 16:45:24 瀏覽:977
為什麼電腦配置很高但還是很卡 發布:2025-06-06 16:23:20 瀏覽:934
英詩派混動哪個配置值得買 發布:2025-06-06 15:50:29 瀏覽:7
特斯拉modely官網如何改配置 發布:2025-06-06 15:49:14 瀏覽:830
雪佛蘭大眾同配置哪個貴 發布:2025-06-06 15:41:19 瀏覽:654
刷隱藏腳本 發布:2025-06-06 15:35:38 瀏覽:975