ランキングSvmチュートリアル
-
Upload
kodaira-tomonori -
Category
Science
-
view
26 -
download
5
Transcript of ランキングSvmチュートリアル
SVMチュートリアル小平 知範
1
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引用:
1.データをSVM用に変換
• 左端に、適合度
• 次にクエリID
• 最後に素性の列挙
3
2.スケール調整
• スケール調整をする理由 値の範囲が大きい素性に傾くから 基本的にカーネル関数では、素性ベクトルの内積をもちいるため、、情報落ち誤差が発生するから
• スケール調整を行う際、の注意点は、圧縮率を同じにする。
4
3.RBFカーネル
• RBFカーネルを使う理由 線形カーネルと同等の性能を示すことができる。 調整すべきカーネルパラメータが一つ(γ)
5
4.交差検定でパラメータ を決める• 決めるもの
SVMのマージンCと、RBFカーネルのパラメータγ
• テストデータは本来未知のデータ訓練データの一部をテストデータとし、交差検定
• グリッド探索で見つける。 Cとγを値を変えていって、網羅的に探索 指数列増加列を使うといいらしい
• グリッド探索の利点 並列可能、網羅的なので安心
6
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
トレーニングデータ• 各行がクエリに検索されたドキュメント
• 行の先頭の数字はクエリとの適合度
• qidはクエリのID、素性:値で並ぶ
8
テストデータと予測結果
• トレーニングデータ同様の並び。
• 予測結果
9
オプション• 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
オプション• Kernel Options -t int -> カーネル関数のタイプ 0: 線形カーネル(default) 1: 多項式カーネル 2: RBFカーネル 3: シグモイドカーネル 4: 自分で定義した、カーネル
11