講演会やセミナーなどでよくいただく質問の一つに、データの可視化手法・見える化する手法はどのように選べばよいですか、というのがあります。難しい質問です。というのも、回帰分析やクラス分類であればこちらの基本的な解析の流れにそって適切な手法を選ぶことができます。
![](https://datachemeng.com/wp-content/uploads/20190630_171210.png)
ただ、可視化手法はいわゆる教師なし学習であり、回帰分析やクラス分類における 「正解」 である目的変数 y がないため、可視化手法を選ぶための道標がありません。主成分分析 (Principal Component Analysis, PCA) であれば、主成分ごとの寄与率を計算でき、寄与率が高いほど元のデータセットを再現できているといえますが、他の可視化手法、特に非線形手法では寄与率を求めることが難しいため、寄与率が大きい手法を選ぶ、といったこともできません。
上の質問をいただいたときに、わたしがお答えしているのは、k3n error が小さくなる手法を選びましょう、ということです。
![](https://datachemeng.com/wp-content/uploads/SnapCrab_NoName_2018-3-8_10-2-36_No-00.png)
k3n error により、実際のデータセットにおけるサンプル間の近接関係と、可視化した後のサンプル間の近接関係との間の整合性を評価ができます。つまり、k3n error の小さい可視化方法を選ぶことで、検討している可視化手法の中で、最も実際のサンプル間の近接関係と、可視化した後のサンプル間の近接関係とが近い手法を選択できます。
DCEKit に k3n error を計算する Python コードがあります。
![](https://datachemeng.com/wp-content/uploads/SnapCrab_NoName_2019-8-18_9-12-4_No-00.png)
もちろん目的変数 y があるときには、k3n error に限らず、可視化した後のサンプルの分布と y の値の関係を考えて、可視化手法を選択することができます。たとえば、二次元マップを見ることで、y の値が近いサンプルが、マップ上で近い位置にあるとかないとかを議論できます。
ただ y、すなわち可視化手法を選ぶための道標がないときには、k3n error を道標として使用していただけたらと思います。もちろん k3n error は非線形の手法をはじめとして、どんな可視化手法にも対応可能です。そのため、すべての可視化手法で k3n error の値を比較して、最も小さい可視化手法を選ぶ、といったことができます。ぜひ、こちらのPython コードで検討していただければと思います。
![](https://datachemeng.com/wp-content/uploads/SnapCrab_NoName_2019-8-18_9-12-4_No-00.png)
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。