ランキングSvmチュートリアル

11
SVMチュートリアル 小平 知範 1

Transcript of ランキングSvmチュートリアル

Page 1: ランキングSvmチュートリアル

SVMチュートリアル小平 知範

1

Page 2: ランキングSvmチュートリアル

SVMを使うまでの流れ1. データをSVM用に変換(dat)

2. スケール調整を行う。

3. RBFカーネルの利用

4. 交差検定を用いて最適なパラメータCとγを発見

5. 最適なパラメータを用いて訓練データにたいしてモデル生成を行う

2

http://www.slideshare.net/sleepy_yoshi/svm-13435949?ref=http://d.hatena.ne.jp/sleepy_yoshi/20120624/p1引用:

Page 3: ランキングSvmチュートリアル

1.データをSVM用に変換

• 左端に、適合度

• 次にクエリID

• 最後に素性の列挙

3

Page 4: ランキングSvmチュートリアル

2.スケール調整

• スケール調整をする理由 値の範囲が大きい素性に傾くから 基本的にカーネル関数では、素性ベクトルの内積をもちいるため、、情報落ち誤差が発生するから

• スケール調整を行う際、の注意点は、圧縮率を同じにする。

4

Page 5: ランキングSvmチュートリアル

3.RBFカーネル

• RBFカーネルを使う理由 線形カーネルと同等の性能を示すことができる。 調整すべきカーネルパラメータが一つ(γ)

5

Page 6: ランキングSvmチュートリアル

4.交差検定でパラメータ を決める• 決めるもの

SVMのマージンCと、RBFカーネルのパラメータγ

• テストデータは本来未知のデータ訓練データの一部をテストデータとし、交差検定

• グリッド探索で見つける。 Cとγを値を変えていって、網羅的に探索 指数列増加列を使うといいらしい

• グリッド探索の利点 並列可能、網羅的なので安心

6

Page 7: ランキングSvmチュートリアル

SVM-Rankの使い方• インストール1、サイトからダウンロード2、解凍して、makeコマンド入力3、作ったものをPATHのあるとこに移動させる

• コマンドー学習 svm_rank_learn -c 3 trainfile modelfileー予測 svm_rank_classify testfile modelfile output参考URL:http://ktsukuda.net/tool/svm-rank/

7

Page 8: ランキングSvmチュートリアル

トレーニングデータ• 各行がクエリに検索されたドキュメント

• 行の先頭の数字はクエリとの適合度

• qidはクエリのID、素性:値で並ぶ

8

Page 9: ランキングSvmチュートリアル

テストデータと予測結果

• トレーニングデータ同様の並び。

• 予測結果

9

Page 10: ランキングSvmチュートリアル

オプション• Learning Options: -c float -> マージンの値(default 0.01) -p [1, 2] -> L1正則化(slack), L2正則化(squared) -o [1, 2] -> スケール調整 1: slack 2: margin -l [0…] -> 損失関数:間違った推定をした時の損失        0: zero/one to use

• スケール調整: 基本的にカーネル関数では、素性ベクトルの内積を用いるため、スケール調整しないと情報落ち誤差が発生

10

Page 11: ランキングSvmチュートリアル

オプション• Kernel Options -t int -> カーネル関数のタイプ 0: 線形カーネル(default) 1: 多項式カーネル     2: RBFカーネル     3: シグモイドカーネル 4: 自分で定義した、カーネル

11