スキップしてメイン コンテンツに移動

投稿

6月, 2014の投稿を表示しています

Algorithm::LibLinear アップデート

LIBLINEAR の Perl バインディングである Algorithm::LibLinear ですが、 以前の記事 で紹介した時点ではバージョン 0.04 だったのが現在では 0.10 になっており、非互換な変更もあったので当該記事のサンプルコードも最早動かなくなっています。 案外と今でもアクセスがある記事なので、現在までの変更を補足します。 LIBLINEAR 1.94 ベースになった Algorithm::LibLinear 0.08 より LIBLINEAR 1.94 をバンドルしています。 配布サイトには内部処理のどうでもいい変更点しか載っていませんがメモリリークの修正が入っています。機能的には同一です。 API の非互換な変更 Algorithm::LibLinear::ScalingParameter クラスはバージョン 0.07 で非推奨になり、0.09 で廃止されました。同時に Algorithm::LibLinear::DataSet の scale() メソッドも削除されました。 今後は新しい Algorithm::LibLiner::FeatureScaling を使ってください。 ScalingParameter は設計ミスで、テストデータをスケーリングする場合に極めて周りくどい記述が必要でした: use Algorithm::LibLinear::DataSet; use Algorithm::LibLinear::ScalingParameter; my $scaling_parameter = Algorithm::LibLienar::ScalingParameter->new(...); my $feature = +{ attr1 => 0.2, attr2 => 1, ...}; # データ1個の DataSet を作って scale し配列として取り出した最初の要素の feature... my $scaled_feature = Algorithm::LibLinear::DataSet->new( data_set => [ +{ feature => \%feature, label => 42 } ], )->scale(p