python-online-machine-learning-library 3
python-online-machine-learning-library 2 - KZKY memo
の続き.
Online Learning Methodsを簡単に評価した.batch methodとの比較では,Liblinearを使用,ただし,Liblinearはscikit-learnを使用している.
今回はデンスデータを使用した.
パラメータのValidationはしないで,元データをシャッフルして,
Train/Testをそれぞれ下記サンプル数の半分にしている.
Dataset
Name | #Samples | #Dimension |
---|---|---|
abalone | 4177 | 11 |
breast_cancer | 683 | 90 |
car | 1728 | 22 |
credit | 4140 | 43 |
gisette | 7000 | 5001 |
glass | 214 | 11 |
haberman | 306 | 4 |
ionosphere | 351 | 35 |
iris | 149 | 5 |
isolet | 7797 | 618 |
liver | 345 | 7 |
magicGamaTelescope | 19020 | 11 |
mammographic | 961 | 6 |
pima | 768 | 9 |
transfusion | 1496 | 5 |
usps | 9298 | 257 |
yeast | 1484 | 9 |
Hyper Pameter
基本的にデフォルト
Method name | C | eta |
---|---|---|
Liblinear | 1 | - |
Confidence Weighted | - | 0.9 |
Soft Confidence Weighted (L1-hinge loss) | 1 | 0.9 |
Soft Confidence Weighted (L2-hinge loss) | 1 | 0.9 |
Accuray over epoch for each dataset
通常,Online methodsはデータセットを舐める回数を増やすごとに精度が上がっていつかサチルので,トレーニングデータセットを舐める回数を1回増やす毎にテストデータセットで精度を計算している.Liblinearでは一回学習して予測精度を測った結果をプロットしている.
結果を見ると,確かにOnline Method(すべてではないが)は,car, glass, iris, isolet, liver, mammographic, uspsの7つのデータセットではepochが増える毎に精度が良くなっているが,credit, gisette, ionosphere, magicGammaTerescopeの4つのデータセットでは逆に精度が下がって見える(すべての手法がではない).
ちなみに,Liblinearに優っているのは,car, credit, glass, haberman, ionosphere, liver, pima, uspaの8データセット.
多分,パラメータチューニングをすればすべてのメソッドで同じくらいの精度になる可能性がある.
MLlib上に実装したいな.