クラスター分析についての疑問点あれこれ・・・ツールにかければ答えはでるけれど、果たしてそれでいいのだろうか

2018年11月10日

クラスター分析を使う側も何をしているかわかっていないけれども問題にならない

よく使われる手法のわりにその裏側がきちんと検証されない手法といえばクラスター分析だろう。結論だけを図やグラフで見せることで解決してしまうので聞く側はもちろん使う側もよくわかっていないということがある。なんでこうなったのかよくわからない結果を元にしてさらに分析やマーケティング施策の提案をするがそれでも問題なく受け入れられるのだからそれはそれで構わないかもしれないが、個人的にはどうにももやもやが消えない。

というわけで以前よりクラスター分析について気になっていることについてまとめてみる。手法の説明は書籍やサイトがたくさんあるので、そこにあまり書かれていないけれども気になることが中心となる。疑問が解決したら都度追記する。

なぜその距離関数を使うのか

クラスター分析を行うためには、まずはデータ間の類似度、つまり距離を決める必要がある。その距離はユークリッド距離でなければならないというわけではあるまい。確かにユークリッド距離の方が解りやすいのだが、もしかしたら他の距離関数を使った方がより良い分類ができたかもしれない。距離と言ってもたくさんあるなかで「最適な」距離関数の決め方はあるのだろうか。ここでいう「最適」とは、説明がしやすい、納得が得られやすいといったことではなく理論的に証明できるという意味で、この後にも同じように使う。

距離の測り方はどれがいいか

階層クラスター分析でクラスター間の距離を決める方法として、次の5つが挙げられることが多い。

  • 最短距離法
  • 最長距離法
  • 群平均法
  • 重心法
  • ウォード法

しかし、分類の方法は紹介されるのだが、「どの方法が一番良いのか」を説明しているレポートはもちろん書籍やサイトにも出会ったことがない。あっても「○○という特徴がある」とか「○○がよく使われている」といった経験則ぐらいで、証明されているわけではない(理論的な証明があるのかもしれないが見たことない)。方法が違えば結果が変わるのであるから、この点に触れられていないのは謎である。もしどれを使っても対して変わらないというのであれば、それはそれできちんと知っておきたいところだ。

k-meansでのクラスター数はどうやって決めるのか

非階層クラスター分析と言えばk-meansが有名だが、最初にクラスター数を決めなければ実行できない。ではそのクラスター数はどうやって決めたのか。大体とか感ではなく、きちんとした根拠を持っている数値かどうか。自動的に最適なクラスター数を決定するX-meansを使っていたとしても、何を持って最適としているかを説明できなければ結局のところは同じである。

k-meansでの初期値の違いの影響はどうするのか

同じくk-meansの場合、初期値をランダムに決めるが、この初期値の違いがもたらす結果への影響をどうしているのか。1回実行したその結果だけだとしたら、実は初期値の影響で大きく偏っており、実態と違う結果であったりする可能性をどうするのか。初期値の違いによる影響はそういえば実験したことがなかったので今度やってみよう。

あいまいにしても実務には影響ないけれども

データを用意してツールにかければ答えはでるので、実務上は知らなくてもまず影響は無いとはいえそれでもやはり使う側としてはできる限り理解をしておきたいのだが、そもそも教師なしであれば何をもって正しいと決めることもできず、最後は相手の知識とこちらの話術で決まるのだろうか、とか考えだすとまぁいいかと思ってしまうのはよろしくないが、そもそも解決できる問題なのかが悩ましい。

追記:言いたかったのは「それが一番良い方法なのか」を客観的に証明できるのかということ

記事への反応を見たり過去のやり取りを思い出して読み返してみると説明不足なところがあったので追記する。

今回の論点は「それが一番良い方法なのか」を客観的に証明できるのかということだ。例えばk-meansでのクラスター数であるが、2つ3つの数でやってみてその中でよさげな結果を使うというのが普通だろうが、それ以外の数で行った場合もっと良い結果になった可能性は捨てきれない。「7だと多いけれども3では少ない気がしたから4から6でやってみたら5がしっくりいった」とかの「納得感」ではなく、それが本当に一番良い方法であることを客観的に示すことは可能なのか、という問題だ。

今回はクラスター分析に絞っていたが、もっと広く言えば教師なし学習においていかなる特性を持つデータに対してどういった手法を適用するのが最も良いかの客観的な評価方法はありえるのか、ということでもある。無いのであれば手法の選択によって結果が大きく変わることが無いということの証明はあるか、という問題になる。もしその担保もないのであれば扱い方次第で真逆の結果が出てきてしまうこともありえるかもしれない。一企業のビジネス程度なら些細な問題かもしれないが、もしより重大な意思決定に使われるようなことがあるならば深刻だ。

もしかしたら考えすぎで、数理的な処理をしているからそれが最適であると証明できる、というのが勘違いであって、「ある手法でやってみたらこうなったので自分はこう思う」ぐらいに使えばそれでいいのかもしれない。その場合は「自分の考えを肯定する方法を選んでしまう」というまた別の大問題を生み出してしまうことになるので、そんな簡単な話ではないのであるが。

以前より色々な人と話をしてはいるのだが結局わからないままで、今だに考えれば考えるほどわからなくなってくる。でも自分の使う道具について知らなさすぎるのは怖いので時折立ち止まるのは悪くないとも思う。ただし作業中に考え出すと手が止まるので気を付けよう。