verum ipsum factum

sudillap's blog

「金塊か、キノコ料理か」(外れ値検出問題)を解く[おわりに]

さまざまな外れ値検出法を用いて、100個の玉の中から貴重な石を一つだけ選び出す課題を解いてきました。

手法により結果は異なりますが、87番目のデータが外れ値である可能性が最も高そうです。



最後にこの出題自体に対するコメントを述べたいと思います。


まず、外れ値の意味ですが、Wikipediaによると

統計において他の値から大きく外れた値

のことですし、これとは別の定義として、次のホーキンス(Hawkins)による定義があります。

ほかの測定値から大きく外れているため、異なるメカニズムで生成されたとの疑いを抱かせるような観測値のこと


このように、外れ値は定性的に定義されるだけで、定量的には定義されていませんし、定量的かつ一般的に定義すること自体が困難です。
このような事情のため、外れ値検出手法ごとに「外れている」程度を独自に定量化しています。そのため、手法ごとに検出される外れ値が異なる現象が生じることになります。

外れ値を統一的に定量化できない以上、この出題「100個の玉の中から貴重な石を一つだけ選び出せ! 」の答えを一つに決めることはできなくなります。
たとえば、naoya_tさんも代表的な外れ値検出法として言及されている1クラスサポートベクターマシンでこの課題を実行すると、100番目のデータが外れ値となる可能性があります(SVMのパラメータに依存しますが)。k-meansではまた異なった結果ですし、本記事で取り上げていない別の手法ではまた異なる結果が得られるかもしれません。

naoya_tさんによる解答を読む限り、LOFで得られた結果である87番目のデータ以外は間違いとされるようです。もしそうであれば、たとえば、1クラスサポートベクターマシンの結果から100番目を外れ値と答えた場合、なぜこの答えが間違いなのかきちんと説明できる必要があります。しかし、そもそもLOFと1クラスサポートベクターマシンでは外れ値の定量化方法が異なっているため、結論を出すことは難しと思われます。

また、どうでもいいことですが、外れ値に相当する玉が本当に貴重な石であるとは限らないことです。単に普通の玉の外れ値である可能性も捨てきれないのですが、この課題では気にする必要はなさそうです。

今回の課題「100個の玉の中から貴重な石を一つだけ選び出せ! 」を試験問題の一種と捉えると「悪問」(正解が複数あるため)と言わざるを得ないですが、現実的な(場面で遭遇する)課題として見ると「良問」だと思います。現実世界の問題では答えが一つに決まらないことも多々あるという意味で。

というわけでこの外れ値検出課題を解き終わりました。
naoya_tさんは「おわりに」で

「金とキノコ」3部作、いかがでしたでしょうか。やさしすぎると思われた方もいらしたかもしれません。

と書かれていますが、実はやさしくはないのではないかと思いました。まあ、個人的にはとても面白い課題だったのですが。