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

投稿

5月, 2013の投稿を表示しています

Algorithm::LibLinear の紹介

Notice: This article is outdated. Please refer an updated English tutorial . 要旨 かなり前になりますが、Algorithm::LibLinear という Perl モジュールを書きました。 CPAN Github これを使うと線形分類器などが高速に学習できます。テキストや画像の分類が応用として期待されます。 LIBLINEAR について LIBLINEAR は LIBSVM と同じ台湾国立大学の Chih-Jen Lin 教授のチームが公開しているオープンソースの機械学習パッケージです。 関数のロジスティック回帰、サポートベクター回帰及び線形 SVM による多クラス分類を行うことができます。LIBSVM と違ってカーネル関数を使うことはできませんが、はるかに高速に動作します。 Algorithm::LibLinear について LIBLINEAR には C++ で書かれたライブラリと、その機能を使って機械学習と分類・関数回帰を行うコマンドラインユーティリティが含まれています。 Algorithm::LibLinear はライブラリの機能を Perl からオブジェクト指向的に利用できるようにした上で、コマンドラインユーティリティの一部機能をライブラリ化して Perl で再実装したものです。 使い方 分類問題を解くときは、 訓練データセットの読み込み・スケーリング 学習器パラメータの設定 分類器の訓練 実データの分類 という手順で行います。 訓練データセットの読み込み 正解ラベルのついたデータを大量に用意して学習させます。 LIBSVM 形式のデータを読み込むか: my $data_set = Algorithm::LibLinear::DataSet->load(string => <<'EOD'); 1 1:0.1 2:0.1 4:0.1 -1 1:0.1 2:-0.1 3:0.1 ... EOD HashRef として表現されたデータを使います: my $data_set = Algorithm::LibLinear::DataSet->new(data_set => [ +{ feature => +{ 1