林智仁LIBSVM python包的安裝與使用
阿新 • • 發佈:2019-02-16
一、下載並安裝Python安裝包
從python官網上下載windows下的安裝包python-2.7.3.msi並安裝
二、檢查本地電腦是32位機還是64位機
開啟IDLE(python GUI),輸入
>>>import sys
>>> sys.version
32位機將出現字元:‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’
64位機將出現字元:‘2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]'
三、下載 LIBSVM並安裝Python版
2.解壓libsvm-3.20.zip,你將會看到如圖1所示的目錄結構。
圖1 LIBSVM包結構 3.安裝python版libsvm包
(1)32位機:
1)將windows資料夾中找到動態連結庫libsvm.dll,將其新增到系統目錄,如`C:\WINDOWS\system32\’。
然後重啟電腦,就能保證後面引用svmutil包時不會出錯。
3)在需要使用SVM包的Python檔案中通過“from svmutil import *”引入SVM模組介面。
(2)64位機:(稍微複雜點,需要自己編譯64位的動態連結庫libsvm.dll,因為自帶的是32的.dll)
1)需要Microsoft Visual Studio(VS)開發環境。如果沒有可以自己安裝,也可以到別人Windows 64位機器上使用已安裝的VS。(我這裡安裝的是VS 2010)
2)在程式列表中的Microsoft Visual Studio 2010/Visual Studio Tools下找到Visual Studio x64 Win64 Command Prompt(2010)(注意一定要是64位的command prompt),雙擊該Command Prompt將會彈出命令列視窗,如圖2所示。
3)通過cd命令進入到LIBSVM所在資料夾libsvm-3.20。
4)輸入nmake -f Makefile.win clean all。這時libsvm-3.16的windows目錄下將生成64位的動態連結庫。至此,前面這個四個步驟如圖2所示。
圖2 Visual Studio x64 Win64 Command Prompt(2010)命令視窗
5)再進行“(1)32位機”中所述的操作即可完成python版libsvm包的安裝使用。 4.python版libsvm包的測試使用 (1)輸入測試程式碼:
>>> 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)
(2)測試程式碼執行結果輸出:
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) 5.python版libsvm包部分介面說明
在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.
svm.py介面主要包括了一些low-level的應用。在svm.py中採用了python內建的ctypes庫,由此python可以直接訪問svm.h中定義的C結構和介面函式。svm.py主要運用了四個資料結構svm_node, svm_problem, svm_parameter和svm_model。
從python官網上下載windows下的安裝包python-2.7.3.msi並安裝
二、檢查本地電腦是32位機還是64位機
開啟IDLE(python GUI),輸入
>>>import sys
>>> sys.version
32位機將出現字元:‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’
64位機將出現字元:‘2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]'
三、下載
2.解壓libsvm-3.20.zip,你將會看到如圖1所示的目錄結構。
圖1 LIBSVM包結構 3.安裝python版libsvm包
(1)32位機:
1)將windows資料夾中找到動態連結庫libsvm.dll,將其新增到系統目錄,如`C:\WINDOWS\system32\’。
2)將上圖中python目錄下的svm.py與svmutil.py複製到自己需要開發的工程目錄下面。當然,也可以將其拷貝到系統安裝的python包目錄下,如(D:\Anaconda\Lib\site-packages\svm),然後配置python的環境變數,如下圖:
(2)64位機:(稍微複雜點,需要自己編譯64位的動態連結庫libsvm.dll,因為自帶的是32的.dll)
1)需要Microsoft Visual Studio(VS)開發環境。如果沒有可以自己安裝,也可以到別人Windows 64位機器上使用已安裝的VS。(我這裡安裝的是VS 2010)
2)在程式列表中的Microsoft Visual Studio 2010/Visual Studio Tools下找到Visual Studio x64 Win64 Command Prompt(2010)(注意一定要是64位的command prompt),雙擊該Command Prompt將會彈出命令列視窗,如圖2所示。
3)通過cd命令進入到LIBSVM所在資料夾libsvm-3.20。
4)輸入nmake -f Makefile.win clean all。這時libsvm-3.16的windows目錄下將生成64位的動態連結庫。至此,前面這個四個步驟如圖2所示。
圖2 Visual Studio x64 Win64 Command Prompt(2010)命令視窗
5)再進行“(1)32位機”中所述的操作即可完成python版libsvm包的安裝使用。 4.python版libsvm包的測試使用 (1)輸入測試程式碼:
>>> 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)
(2)測試程式碼執行結果輸出:
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) 5.python版libsvm包部分介面說明
在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.
svm.py介面主要包括了一些low-level的應用。在svm.py中採用了python內建的ctypes庫,由此python可以直接訪問svm.h中定義的C結構和介面函式。svm.py主要運用了四個資料結構svm_node, svm_problem, svm_parameter和svm_model。