keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

星座はクラスタリング

クラスタリングの身近な応用例といえば星座です.
距離の近い星を同じグループとみなし,分類をします.

しかし,星座はそんな単純なクラスタリングではありません.

まず第一に,たとえ星の距離が遠くても,「意味」が近ければ同じグループとみなされる点です.
御存知の通り,星座には名前がついています.
オリオン座,さそり座,はくちょう座などです.
例えばオリオン座の「手」を構成する星たちは,
距離で言えば隣のおうし座やふたご座と同じグループになるべきかもしれません.
f:id:kaisk:20140821183626j:plain
しかし,オリオン座の「手」の星たちは,オリオン座の「手」を構成するために,
おうし座やふたご座ではなくオリオン座となっています.
星座は単純に星の距離だけで決まっているのではないわけです.
あるいは,星の座標には距離を定める以外にももっと意味があって,
星座はその意味を反映した高次元空間での距離が小さいものを同じグループにしている
と言ってもいいかもしれません.
これはパターン認識で頻出するカーネル法そのものです.

そして第二に,星の座標はユークリッド平面ではないということです.
星の座標は「赤緯」「赤経」というふたつの数値で記述できます*1
これはちょうど地球上のある点が緯度と経度で一意に表せるのと同じです.
しかし,天球も地表もユークリッド平面ではありません.
例えば,天球上での直線は二次元ユークリッド平面での円となります.
地球で言えば,赤道や本初子午線は地上から見れば直線ですが宇宙から見れば大きな円であるのと同じです.
赤道や本初子午線は直線ですが一周すると元の場所に戻ります.
例えば,「赤経」は0時から23時までの24段階で表されますが,
「0時から1時」の距離と「23時から0時」の距離は同じです.
同じなのは,よく考えなくても円なのだから当たり前ですが,23と0の距離を1として計算するのはちょっとした工夫が必要なのもわかると思います*2
また,天球上のある二点間の距離を二次元ユークリッド距離で測ると過小評価します*3
天球は「面」ですが三次元で考えないといけません.

以上の二点に気をつけて,星のクラスタリングとしての星座を考えます.

追記:本当は実際にクラスタリングを走らせて結果を星座によるクラスタリング
比較しようと思ってたのですが,赤緯赤経で表現された点を球面三角法で距離を測るのが
大変面倒だった*4ので挫折しました.
時間があるときに挑戦します.

*1:ここでは地動説は却下します.私は地動説を信じますが,議論のためには太陽系外の星は「天球」に張り付いたものであり地球は静止していて動くのは天球,としたほうが簡単だからです.もちろん天球は存在せずに星は宇宙にバラバラに散らばっているんだと思いますが,星座は地球から見た星のクラスタリング,つまり宇宙に散らばる星々を天球へ写像したときのクラスタリングですので,天動説を採用します.

*2:そのまま計算したら距離が23になってしまいます

*3:球は外側にふくらんでいる形をしているから.

*4:赤緯(「23時59分59秒」のような形式) 赤経(「-89.59..59」のような形式)の正規化をしてラジアンにし,球面三角法に則ってそのなす角を計算すれば良い.