2017年08月 / 07月≪ 12345678910111213141516171819202122232425262728293031≫09月

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2011.08.21 (Sun)

[Python] python から SVM を使うときのメモ [SVM]

python から libsvm-python を使う環境を作るときのメモ。

【More・・・】




1.ダウンロード。
ここから libsvm-python をダウンロード.

2.make。
ダウンロードしたら解凍ディレクトリで make.
その下にある python ディレクトリの中でも make.

3. libsvm/python ディレクトリ内の svm.py と svmutil.py の2つをインポートして python から使用。



・使い方

学習データの登録:
    problem = svm_problem([train_label1, train_label2, ...], [train_data1, train_data2, ...])


学習パラメータの設定:
    parameter = svm_parameter('-s 0 -t 0')


学習パラメータは本サイトかココを参考にどうぞ。

学習:
    t = svm_train(problem, parameter)


分類:
    result = svm_predict([correct_label1, correct_label2, ...], [test_data1, test_data2, ...], t)


correct_label はテストデータが正解かどうかの判定用。
予測後の結果に精度が出力されます。



サンプル

# -*- coding: utf-8 -*-

import sys
sys.path.append('hoge/libsvm/python')
from svm import *
from svmutil import *

if __name__=='__main__':
label = [1,-1,1]
data = [[0.2, 0.0, 1.0], [0.1, 0.99, 0.1], [0.3, 0.0, 0.3]]
problem = svm_problem(label, data)
parameter = svm_parameter('-s 0 -t 0')
t = svm_train(problem, parameter)
test_label = [1, 1, -1, -1]
test_data = [[0.7, 0.03, 0.8], [0.2, 0.13, 0.33], [0.1, 1.0, 0.8], [0.1, 0.96, 0.2]]
result = svm_predict(test_label, test_data , t)

print '***** Output Result *****'
for r in result:
print r


コピペしたら空白は消えてなくなりました。


結果

*
optimization finished, #iter = 1
nu = 0.666667
obj = -1.469950, rho = -0.820000
nSV = 2, nBSV = 2
Total nSV = 2
Accuracy = 75% (3/4) (classification)
***** Output Result *****
[1.0, 1.0, 1.0, -1.0]
(75.0, 1.0, 0.33333333333333331)
[[1.0902999872595072], [0.79729998725950724], [0.009999987259507126], [-0.07040001274049279]]


テキトーに入力したデータだけど、分類できてるぽい。



svm-light とか libsvm とか、BioPython ていう生物系向けの python ライブラリの中にも SVM あったり、SVM っていろいろあるけど、どれがいいんだろうね。
19:19  |  Python  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

*Comment

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/498-ebe482ee

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 

 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。