読者です 読者をやめる 読者になる 読者になる

KZKY memo

自分用メモ.

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では一回学習して予測精度を測った結果をプロットしている.

f:id:KZKY:20141130013950p:plain:w300 f:id:KZKY:20141130013951p:plain:w300
f:id:KZKY:20141130013952p:plain:w300 f:id:KZKY:20141130013953p:plain:w300
f:id:KZKY:20141130013954p:plain:w300 f:id:KZKY:20141130013955p:plain:w300
f:id:KZKY:20141130013956p:plain:w300 f:id:KZKY:20141130013957p:plain:w300
f:id:KZKY:20141130013958p:plain:w300 f:id:KZKY:20141130013959p:plain:w300
f:id:KZKY:20141130014000p:plain:w300 f:id:KZKY:20141130014001p:plain:w300
f:id:KZKY:20141130014002p:plain:w300 f:id:KZKY:20141130014003p:plain:w300
f:id:KZKY:20141130014004p:plain:w300 f:id:KZKY:20141130014006p:plain:w300
f:id:KZKY:20141130014005p:plain:w300


結果を見ると,確かに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上に実装したいな.