はじめに †
LIBLIEARは線形SVMのツールです. LIBSVMの作者が開発しました. LIBSVMよりも高速らしいです.
この記事の内容は以下の環境で確認しました.
- OS X 10.8.2 Mountain Lion
- LIBLINEAR 1.92
準備 †
インストールにXcodeのCommand Line Toolsが必要です.
まず,AppStoreからXcodeを無料で入手し,インストールします.
次に,Xcodeを実行して「環境設定」を開き,DownloadsタブにあるCommand Line ToolsをInstallします.
ダウンロード †
LIBLINEARのソースコードを次のサイトからダウンロードします.
インストール †
ダウンロードしたファイルを展開し,展開されたディレクトリーでmakeを実行します.
$ make
Warningがたくさん出ましたが,気にしないことにします.
動作確認 †
$ ./train heart_scale ......*..* optimization finished, #iter = 85 Objective value = -121.123792 nSV = 193 $ ./predict heart_scale heart_scale.model heart_scale.predict Accuracy = 84.4444% (228/270)
trainはモデルを学習するプログラムです.
trainには,訓練データのファイルを引数として与えて実行します. すると,学習した結果(モデル)が,訓練データのファイル名に.model拡張子を追加したファイルに書き込まれます.
predictは学習したモデルを用いて予測するプログラムです.
predictには,テスト・データのファイル,学習したモデルのファイル,予測結果を書き込むファイルの名前を引数として与えて実行します. すると,指定したファイルに予測結果が書き込まれます.
オプション †
主なオプションを紹介します. 詳細はREADMEファイルか,LIBLINEARのDocumentaionを参照してください.
-s タイプ †
学習器の種類を指定します. (主)と(双対)は,それぞれ,最適化が主問題を解いているか,双対問題を解いているかを表します(たぶん). デフォルトは1です.
多クラス分類 †
- 0 L2正則化ロジスティック回帰(主)
- 1 L2正則化L2ロスSVC(双対)
- 2 L2正則化L2ロスSVC(主)
- 3 L2正則化L1ロスSVC(双対)
- 4 CrammerとSingerのSVC
- 5 L1正則化L2ロスSVC
- 6 L1正則化ロジスティック回帰
- 7 L1正則化ロジスティック回帰(双対)
回帰 †
- 11 L2正則化L2ロスSVR(主)
- 12 L2正則化L2ロスSVR(双対)
- 13 L2正則化L1ロスSVR(双対)
-c コスト †
Cパラメーターを指定します. デフォルトは1です.
-p ε †
ε-SVRのロス関数のεパラメーターを指定します. デフォルトは0.1です.
-v 分割数 †
n分割クロス・バリデーション(交差検定)を行うときの,分割数を指定します.