SVMを使った感情推定を,私は私の手法の比較実験として行っていました。
ちょいちょいとやって終わるかと思ったんですが,思いの外二月もかかってしまいました。
SVMlightを使っているんですが,何も知らず,デフォルトのパラメータでいいやぁと思って使っていたところ。
まぁ最初は私のプログラミングミス,入力リソースのゴミ,アルゴリズムの勘違い等で精度が上がったり下がったりしていたのですが,
もういい加減バグも減ってきただろうという頃合い。
今日も入力リソースのゴミを発見し,これでまた精度が若干変化。
しかし精度が異様に低い。
まぁいわば文書分類とほぼ同じ実験をすることになっているので,
SVMを使った一般的な文書分類精度に近くないとおかしいわけでして。
マニュアルや色々な論文とにらめっこして,
最初はソフトマージンにしたりハードマージンにしてみたりしたんですが,
いかんせん精度がマトモじゃない。
低すぎてうさんくさいというか実験がちゃんとできてねーんじゃね?って感じで。
そして最近,cost-factorを調整したらよいのでは?ということに気づきました。
-jで指定するパラメータですが,
Positive,Negativeデータの割合が異なる場合,
コストを調整してやるんだとか。
そこらへんの詳細を書いてくれている論文が英語だもんで,
なんでcost-factor計算式が
C+/C- = Number of Negative Data / Number of Positive Data
になるんかはちんぷいなわけですが
(誰かさんの博士論文は,この論文でこう定義しているからcost-factorの計算はこれ使います,で済ましてましたが),
とりあえずこれが調度よさげなのでこれを使ってみたところ
だいぶグッドな精度が出てくれました。
しかも私の手法を下回ってくれています(笑)
ま,上記の式になるのは,Negativeが多ければNegativeのコストを小さくするとか
データのコストを反比例の関係にしてるから,なんか知りませんがいい感じなんでしょう(適当)
なんだかやっと泥沼から抜け出した気分で気分爽快です。
No comments:
Post a Comment