SVMソフトウェアの比較
オープンソースのSVMソフトウェアの基本デフォルトの設定で比較などをしてみた。
利用データはLIBSVM Data: Classification, Regression, and Multi-labelのa9aとnews20.binaryを利用した。
データセットの詳細は以下のようになっている
データセット名 | 訓練データ数 | テストデータ数 | データの次元 |
---|---|---|---|
a9a | 32561 | 16281 | 123 |
news20.binary | 15000 | 4996 | 1355199 |
なお、news20.binaryでの訓練データとテストデータの作成については id:n_shuyoさんの記事を参考にした。
比較に用いたソフトウェアは以下の5つ
測定結果は以下のようになった。パラメータの設定はデフォルトのものを利用。svm-perfに限りC=1.0とした*1。
a9a
ソフトウェア | 訓練時間(sec) | 精度(%) |
---|---|---|
LIBSVM(Linear Kernel) | 82.79 | 84.98 |
LIBSVM(RBF Kernel) | 64.21 | 84.81 |
SVM-Light(Linear Kernel) | 4.084 | 85.01 |
SVM-Light(RBF Kernel) | 386.6 | 79.87 |
TinySVM(Linear Kernel) | 216.3 | 84.98 |
SVM-perf(Linear Kernel) | 0.410 | 84.59 |
LIBLINEAR(Linear Kernel) | 0.639 | 84.96 |
news20.binary
ソフトウェア | 訓練時間(sec) | 精度(%) |
---|---|---|
LIBSVM(Linear Kernel) | 267.27 | 96.43 |
SVM-Light(Linear Kernel) | 53.624 | 96.42 |
TinySVM(Linear Kernel) | 445.5 | 96.43 |
SVM-perf(Linear Kernel) | 7.077 | 80.20 |
LIBLINEAR(Linear Kernel) | 3.638 | 96.36 |
考察
結果から次のようなことが読み取れる
*1:指定しないと実行できないため