2008.07.17
データマイニング基礎
クラウドマップではソーシャルブックマークのタグ付けデータを解析しています。これはいわゆるデータマイニングと呼ばれるもので、大量のデータの背後にある隠れた構造を露わにするものです。データマイニングの手法は多数提案されていますが、今日はその中で、最も基礎的で重要な手法である主成分分析(principal component analysis)とクラスタ分析(k-means clustering)について、さわりだけ紹介します。また、タグ付けデータに適用するとどうなるのかもお見せします(結論から言うと、これらの手法ではタグ付けデータをうまく解析することができません)。
■主成分分析を初めとするデータマイニング手法が行うことは、基本的には「データ圧縮」です。データの背後にある本質的な構造は、そのデータ自身よりも簡潔に記述できると想定できるからです。どのような制約の下で圧縮するかが手法の種類を決めると言えます。主成分分析の場合は次のようにデータ圧縮します:

▼

上段の図は、入力データです。3次元空間に浮かぶ点集合ですが、その点集合は2次元面上に乗っている状態です。色は見やすくするためだけ特に意味はありません。このデータに主成分分析をかけると、点集合は別の座標空間にマッピングされます(下段の図)。その座標空間の最初の軸(図では横軸)は、点集合の散らばり具合を最もよく説明する軸であり、第2の軸(図では縦軸)はその次に最もよく説明できる軸となります。この座標空間は、元の点集合が乗っていた2次元面上の座標と対応します。主成分分析によって、入力データからその2次元面を捉えることができたと言えます。
■ちなみに、この主成分分析、タグ付けデータに適用してもあまりいい結果は得られません。タグ付けデータは以下のようなものです。

この図は行列を表しており、行(縦軸)はウェブサイトなどのエントリーのインデックス、列(横軸)はタグのインデックスです。タグがつけられてない部分は空白で、タグがつけられている部分に色がついています。右上が空白地帯になっているのはソートしてあるためです。このデータは、1647のエントリー、1022のタグがありますが、タグをマッピングすると考えると、1647の高次元空間に1022の点集合があるというイメージです。さて、このデータを主成分分析を用いて2次元上に縮約すると次のようになります:

各タグは対応する点の位置に表示されています。このマップ…よく分からないですね。右上に塊があり、そこから左にはネタや2ch、下にはmobileやiphoneと伸びており、その伸びた部分ではそれぞれ関連がありそうです。しかし、多くのタグは右上の塊にあり、うまく読み取れません。このような結果になったのは、入力データが極めてスパース(ほとんどゼロでたまに非ゼロ)であるためと推察されます。
■次にクラスタ分析について説明します。クラスタ分析は主成分分析と対をなす手法で、これも応用例に枚挙がありません。ここでは次のような入力データを考えます:

2次元空間上に、3つの塊があるのが見た目で分かると思います。見た目には分かっても、データとしてはフラットなものです。このデータにクラスタ分析をかけると次のようになります:

この色分けされた部分がクラスタ分析によるものです。うまく3つに分割することができたことが分かります。
■ちなみにこのクラスタ分析をさきほどのタグデータに適用するとどうなるでしょうか?ここではクラスタ分析にMathematica組み込みのFindClusterという関数を用いたのですが、この関数、自動的に最適な分割数を推定してくれます(普通は決めうちです)。適用結果の分割数がどうなったかというと”1”でした。つまりうまく分割できないということです。これもデータのスパース性が原因と考えられます。
以上ですが、今回は数式はまったく出していません。もっときちんと知るにはウェブなり本なりで調べてみてください。自分でいろいろ試してみて、感覚をつかむのが一番いいかもしれません。
Trackback URL
Comment & Trackback
Comment feed
Comment