データマイニング

カウンター by  SOHO COUNTER

 データマイニングとは、データの集合の中から、知識を発見しよう、というものです。ここでいう知識とは、データの中に見られるルールとか法則のことです。最近データマイニングの紹介でよく使われるものに、ビールと紙おむつという言葉があります。これは、スーパーでで客の買った物を分析したら、紙おむつを買う人はビールを買うことが多い、という傾向が出てきた、ということです。この、「紙おむつを買う人はビールを買うことが多い」というのがある種の知識なのです。このような知識をデータの中から機械的に、自動的に見つけよう、というのがデータマイニングです。

この、ビールと紙おむつのような関係でしたら、単純にお客さんの買い物リストのデータを見るだけで、発見できます。しかし、例えば、5000円以上の買い物をしてくれる人は、ビールと紙おむつを買うか、トイレットペーパーとティシュペーパーと洗剤を買う(あくまで適当に考えた例ですが)、というような、複雑な形をした知識を見つけ出そうと思ったら、単純にデータを見るだけでは、とんでもなく時間がかかります。例えば、1000品目の中から5品目を組合せて、5000円以上の買い物をする客がその組合せの買い物をしているかどうかをチェックするとしますと、およそ1000の5乗、1000兆回もデータを見なければいけません。たいていのコンピューターでは1日や2日で終わる計算ではありません。こういった知識の発見をするためには、数理計画アルゴリズムの技術を使って、効率的な方法を考えないといけないのです。

もう1つ例を見てみましょう。車を買った人のデータを分析して、車を買う人の年齢と、買った車の金額についてどんな関係があるか調べるとしましょう。絵で書くと図のようになります。

普通に考えて、年をとるほど高い車を買いそうだな、というのはあるんですが、例えば、図の赤線で囲った部分が示すように、48歳から60歳の人が230万から320万の車を買う可能性が高い、というような具体的な年齢層と購買価格帯がわかれば、効果的な宣伝ができるわけです。年齢を1歳刻みで20から70まで、車の価格を10万刻みで100万から500万まで調べるとすると、50×50×40×40の組合せを全てについてデータを検索する必要があるのですが、これは、アルゴリズムを工夫すると、50×40の組合せを調べるだけですむようになります。

昔から、こういったデータの分析には統計的な方法がとられていました。主成分分析や回帰分析などです。これらの方法は、まず、データがどのように分布しているか、その分布の仕方を推定して、将来予測や分析をしようというものです。例えば、消費者金融会社が、お金を借りた人の年齢と年収と自己破産の関係を調べたいとします。集まったデータが図のようになっているとしましょう。

これはお金を借りた人それぞれを、年齢と年収に対応する位置に、破産した人なら赤で、そうでなければ緑で書いたものです。これを、赤の点、緑の点それぞれ、正規分布に従って分布しているのだ、と思って分布を推定すると、例えばこのようになります。

このように分布が推定できると、新しくお金を借りに来た人の年齢と年収がわかると、自己破産の確率はどれくらいかな、と推定できるわけです。データが多くなれば、それだけ推定も正確になります。ただ、「こういうふうに分布しているだろう」という分布の形の仮定が間違っていると、推定は全然当たらなくなります。この、分布の推定、というのがやっかいでした。

対して、最近開発された、データマイニングで研究されている方法の1つ、サポートベクターマシンという方法は、ちょっと発想が違います。赤い点のグループと緑の点のグループを、直線を使って分割してしまおうというものです。この図のように。

このとき、直線の片方側にはなるべく赤い点が多くなるように、もう片方の側には緑の点が多くなるように、直線を決めよう、というものです。なるべく上手にグループ分けをする、最適化問題を解くわけです。新しいお客さんが来たときに、その年齢と年収を聞いて、この線のどっち側にお客さんが来るか、で自己破産しそうな人かどうかを判定しよう、というものです。この方法だと、データがどういう形の分布になっているか、さっぱりわからなくても、データから直接、こういった直線を得られる、というのが強みです。データの分布がわからないから上手に分析・予測ができなかった問題に対して、解決法を提示できる可能性があるわけです。

 

    アルゴリズムとは       近似解法        オペレーションズリサーチ 

         共同研究・コンサルタントにご興味のある方はこちらへ 

 

 宇野毅明のホームページへ          情報学研究所のホームページへ