日別アーカイブ 2021年4月14日

投稿者:Kunihiro TADA

XLSTATがDBSCANクラスタリングをサポート

XLSTATの次のリリースでDBSCAN(DENSITY-BASED SPATIAL CLUSTERING OF APPLICATIONS WITH NOISE:ノイズのあるアプリケーションの密度ベース空間クラスタリング)がサポートされます。

チュートリアルはこちらです。

チュートリアルの事例ではFisherのアヤメのデータを使用していて、3種類のアヤメを分類することはできず、2種類に分類しています。

だからと言って、DBSCANがあまり良くないということにはなりません。私が以前から口酸っぱく言っているようにクラスタリングとクラス分類は異なります。クラスタリングは、与えられたデータの多次元空間内での「集まり(塊り)」を何の先入観もなしに虚心坦懐に検出しようとしているだけです。選択された変数が、たまたま人間が意図しているクラスをよく説明していると、クラスタリングの結果とクラス分類が一致することもありますが、たいていの場合はそうではないからです。

以前にも指摘しましたが、アヤメのデータの場合、4つの変数の値の間で商を取って(つまり、各部位のプロポーションを計算して)新しい変数をつくれば、クラスタリング・アルゴリズムの良し悪しとはほとんど関係なしに、3種類のアヤメをきれいに分類することができます。つまり、新しい変数を導入することで、多次元空間内で3種類のアヤメが分離されて、それぞれで集まるようになるからです。逆にいうと、多次元空間内で分離していないデータなら、どんなクラスタリング・アルゴリズムを使っても、そのままでは人間が意図しているクラス分類にはなりません。ただそれだけのことなんです。

では「いったい何のためにクラスタリングを行うのか?」という疑問が出てくるかと思いますが、クラスタリングの目的は、クラス分類を再現することではなく、多次元データに内在する構造を虚心坦懐に明らかにしようとすることです。多次元空間の次元軸の選択を変えると、その構造はさまざまな様相を現します。したがって、クラスタリングの奥義は探索的データ分析です。つまり、変数選択や変数の重みを変えて、さらに既存の変数から新しい変数を作成して、セマンティック(意味的)な観点からユーザーが表現したいデータ空間を作成して、クラスタリングの結果をプロファイル分析(クラスタの統計的特徴を分析)して、その結果を踏まえて、次のクラスタリングを行うということを繰り返します。

ユーザーの頭の中に「こうあるべき」という分類があって、クラスタリングの結果をそれに一致させようとするのも悪くはないのですが、それに固執しすぎると、新しい発見の機会を自分から放棄してしまうことにもなりかねません。

それはそうとして、DBSCANはなかなか面白い手法のようです。なぜかというと、人間(赤ん坊)が新しい事物を学習するプロセスに似ているところがあるような気がするからです。もちろん人間の学習は、機械学習のように何千回、何万回もする必要がなく、今もってそれは謎に包まれているのですが、どこが似ているかというと、つまり、ある1つの事物を初めて見て、それをAと認識し、次にそれと似た事物を見たとき、それをA´と認識し、あるいはAとは明らかに異なる事物ならBと認識するというような点で似ているわけです。

DBSCANのもう1つの興味深い点は、「ノイズ」という概念を導入している点です。たいていのクラスタリング手法は、すべてのデータ・ポイントを無理やりどれかのクラスタに入れようとするのですが、DBSCANの場合は、どのクラスタにも入らないデータ・ポイントを素直にはじくことができます。これは異常検知に役立つ他、ビジネスの取引履歴などでは「新しい変化の予兆」をいち早く発見することにもつながると期待されます。