素性選択について

最近、素性選択について少し悩んでます。
素性選択とは、機械学習に素性を与える際に、利用できるものを全て使うのではなく、有効そうなもののみを利用することを言います。

実は素性選択って機械学習において計算量以外でのメリットがあまりないのではないかと考えていました。
そもそも有効でない素性であれば学習時にほとんど重みが割り振られないと考えられるからです。
しかし、実際に今取り組んでいるタスクで実験をしてみると、直感的には分類に寄与しないと考えられる素性に結構重みが割り振られていて、誤りの原因になっているようです。

考えられる原因としてはタスクの性質があります。今回のタスクでは、正例には明らかに効きそうな素性があり、負例にはほとんど特徴がない、という性質があります。加えて、事例数は負例の方が数十倍となっています。
おそらく、分離超平面の位置を調整するバイアス項ではなく、正例・負例ともに出現する素性に対して負の重みを与えることで、負例の方が多いという現象を再現しようとしているのだと考えられます。



実際に素性選択をしてみたいことにはハッキリとしたことは言えませんが、素性選択は分類結果に対しても、有効に働くのではないかと考えられます。
では逆に素性選択を行なう場合には、どのような手法がいいのでしょうか?

1つ目に考えられるのは、PMI(自己相互情報量)や情報利得を利用して自動で選択する方法です(言語処理のための機械学習入門にも書かれていますし)。
ですが、機械学習というある種の素性選択で有効ではない素性を選択している以上、これらの自動選択の手法の有効性には疑問が残ります。

2つ目は人手による選択です。
この場合、明かに効きそうな素性については選択が可能ですが、人間が予期しない隠れた関係を発見できる機械学習のメリットは大幅に失なわれてしまう気がします。
また、選択に恣意性が生じるため理論的な一貫性が欠けてしまうのではないでしょうか。

個人的には、効きそうな素性をより大きな枠で捉えて設計し(形容詞が効きそうだと思ったら、品詞ごと素性にしてしまう)、具体的に何が効くかは機械学習に任せる、というアプローチが好きなのですが、実験結果に合わせて考え方を変えるのも大事なのかなと思う、今日この頃です。