發表文章

目前顯示的是 五月, 2019的文章

[Note] 在 ubuntu 上用 python 連接 mySQL

參考: https://www.opencli.com/perl/python-install-mysqldb

和 Java, C 引入 library 的方法不同,
對 python 而言, 所使用的套件需要先安裝 (如這篇文章),
或是, 將 make 好後的檔案放入指定路徑 (如 libsvm 的方法),

在這篇文章中, 使用 pip 的方式, 安裝連接 mySQL 的套件,
因此, 第一個步驟, 就是安裝或是升級 pip:

$ apt-get install python-pip
$ pip install -U pip


如果在升級 pip 後, 出現以下錯誤:
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main


需要修改 /usr/bin/pip 中的變數為:
from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())


接著, 安裝必要套件與 python 插件:

$ apt-get install python-dev libmysqlclient-dev
$ pip install MySQL-python

我們一樣寫一隻簡單的程式來操作 mySQL database,
參考自: http://www.runoob.com/python/python-mysql.html

import MySQLdb

db = MySQLdb.connect("localhost", "USERNAME", "PASSWORD", "DB_NAME", charset='utf8' )

cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print "Databa…

[Note] 在 ubuntu 上以 python 執行 libsvm

參考: https://blog.csdn.net/letsseehow/article/details/10483729

首先, 利用 wget 下載 libsvm, 並解壓縮,
下載網址請參照 libsvm 的官網: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
或是直接用此連結: libsvm連結

假設解壓縮完的資料夾路徑為: ~/libsvm-3.23
需要 make 兩次, 一次在 ~/libsvm-3.23, 另一次在 ~/libsvm-3.23/python/,
完成後, 應該可以找到: ~/libsvm-3.23/libsvm.so.2

把檔案移到 python2.7 的資料夾下, 指令如下:

sudo cp ~/libsvm-3.23/python/*.py /usr/lib/python2.7/dist-packages/
sudo cp ~/libsvm-3.23/libsvm.so.2 /usr/lib/python2.7/


接著, 我們來寫一個簡單的 SVM 測試程式:

from svmutil import *
from svm import *

y, x = [1,-1], [{1:1, 2:-1}, {1:1,2:1}]
prob  = svm_problem(y, x)
param = svm_parameter('-t 0')
model = svm_train(prob, param)
yt = [1]
xt = [{1:1, 2:-1}]
p_label, p_acc, p_val = svm_predict(yt, xt, model)
print(p_label)


其中, y 是 label, x 是分類輸入,
舉例來說: {1:1, 2:-1} 代表有兩個 feature, 第一個數值為 1, 第二個數值為 -1,
svm_parameter 為 SVM 所用到的參數, 請參照 libsvm 的說明,
yt, xt, 則是用來 testing 的資料, 執行結果如下:

$ python svmtest.py
*
optimization finished, #iter = 1
nu = 0.500000
obj = -0.500000, rho = 0.000000
nSV…