はじめに
SVMKitのSVMKit::LinearModel::LogisticRegression
の勾配計算に間違いがあったので修正して0.2.8としてリリースした。
svmkit | RubyGems.org | your community gem host
0.2.8では、与えられたパラメータのチェックなどの細かな部分を補うことを予定していた。そのチェックを兼ねて実データで実験していて間違いに気づいた。
反省
SVMKitでは、基本的に各クラスにspecを用意していて、coverallsでcoverageも100%となっている。学習アルゴリズムの確認には、toydataとも言えるシンプルな合成データを用いていて、LogisticRegressionのspecでも、正しく分類できていた。今回、偶然に試した、手書き数字画像データの分類で、LogisticRegressionを用いた場合のAccuracyが、SVMKit::LinearModel::SVC
のAccuracyと比較して30%も低かったことで気づくことができた。今後は、アルゴリズムを追加した場合は、実データでの交差検定で動作を確認していきたい。
おわりに
0.2.8では、予定通り、パラメータのチェックもくわえた。例えば、サンプルはNumo::DFloatの行列、ラベルはNumo::Int32のベクトルで与えないとTypeErrorをraiseする。
つまらないものですが、よろしくお願い致します。