HadoopTimes

ストリーミングアーキテクチャ Apache Kafka とMapR Streams による新しい設計手法
技術情報

相関ルールマイニング

多くの機械学習アルゴリズムが、数値データでのデータマイニングやデータサイエンスワークの為に使用されています。多くのアルゴリズムはとても数学的になる傾向にあります(我々が以前に議論したSupport Vector Machinesのように)。しかし、相関ルールマイニングはカテゴリーデータ(非数値)に最適であり、しかも単純な集計以上のものができるのです!このような種類のアルゴリズムはMapReduceがとても得意で、またいくつかのとても興味深い発見を導くことができます。

相関ルールマイニングは、アイテムのコレクションの中から、まず頻繁に同時に起きる相関を見つけることに焦点を合わせます。相関マイニングのオリジナル適用エリアであるため、それは「マーケット・バスケット分析」と称されることもあります。ゴールは、あなたがすべての可能性のランダムサンプリングに期待するよりも頻繁に一緒に発生する、アイテムの相関を見つけることです。典型的な例として有名なのは、ビールとおむつの相関で、データマイニングの関連本の中でもしばしば言及されています。ストーリーはこうです。店におむつを買いに行く客は、同時にビールも買う傾向にあるということです。これを簡単な例で説明します。

例えば店の小売取引データベースが次のような情報だったとします。
全部で60万件の取引があり、その内の

  • 7500件の取引がおむつの購入を含み(1.25%)
  • 60000件の取引がビールの購入を含み(10%)
  • 6000件の取引がおむつとビール両方の購入を含む(1.0%)

ビールとおむつの間に何も関連がない場合(例えばそれらが統計上独立しているなど)、おむつの購入者のわずか10%がビールの購入することが期待できます(すべての客のうち10%がビールを購入するため)。しかしながら、おむつの購入者の80%(=6000/7500)がビールを購入することが判明しました。これが我々の予測を超えた係数8、すなわちリフトと呼ばれるものであり、期待された頻度に対する、実際に認められた共起頻度の割合です。これが単にデータベースの取引数を集計することで判明するのです。

この場合の相関ルールは、おむつの購入者はリフト係数8でビールも購入すると表されます。統計学上では、リフトは二つのアイテムx と yの同時確率の割合を、個々の可能性の積で割って推測されます: Lift = P(x,y)/[P(x)P(y)]。 この二つのアイテムが統計的に独立している場合、P(x,y)=P(x)P(y)はLift=1に相当します。ここで留意すべき点は、これも興味深い発見でありますが、逆相関は1以下のリフト値を出し、めったに同時に起こらない相互排他的なアイテムに相当します。

この簡単な例は架空の話であり、実際の世界でリフト係数が8のように大きな数字になるのはめったにありません。しかし、過去にはこのようなことが実際に起きたこともありました。それは2004年一連のハリケーンがフロリダ州を通過した際に、ウォルマートで起こりました。最初のハリケーンが去ったあと、またフロリダに向ういくつかのハリケーンが大西洋にみられました。そこでウォルマートは自社の巨大小売取引データベースを検索し、ハリケーンが来る前に客が本当に欲しがっていたものを調べました。ウォルマートはある一つのアイテムが、通常の営業の時よりも係数7上回る売り上げを出したことが判りました。

リフト係数7というのは実社会ではとても大きな数値です。その一つのアイテムとは、ボトルの水、電池、ビール、懐中電灯、発電機など非常時に必要になると想定できるものではありませんでした。それはなんとストロベリーポップタルトだったのです。なぜこの商品がハリケーンの前に一番購入されたか、理由を考えるとたくさん出てきます。ポップタルトは冷蔵庫に保存しなくてもよく、調理の必要がなく、個別包装されており、日持ちし、おやつにもなり朝食にもなり、子供も大人も皆大好きです。このような明白な理由はいくつかありますが、でもこの結果にはとても驚きました。

そしてウォルマートは次のハリケーンに大量のストロベリーポップタルトを店舗にストックし、それらをすべて販売しました。つまり、お互いにウィン・ウィンだったのです。ウォルマートは売ることで勝利し、客は彼らが一番欲しいと思っていたものを手に入れることで勝利したのです。

相関マイニングのもう一つの例として、ジョージ•メイソン大学の同僚が私に教えてくれた話があります。彼は地質情報システムや地球科学の教授です。彼はハリケーンの特性(内部風速、ハリケーンの目の大気圧、ウィンドシア、降雨量、ハリケーンの進行方向と伝搬速度)を調べるためにこのアルゴリズムを使用し、最終的なハリケーンの強さ(カテゴリ)とそれらの異なる特性の値との間に強い関連性を発見しました。彼は相関マイニングを使用してハリケーンの増大と最終的な強さを、ナショナルハリケーンセンターによって使用される標準ハリケーンモデルを使うときよりも正確に予測することに成功しました。それは当初小売店の取引マイニングのために開発されたアルゴリズムの驚くべき応用でした。

同じように印象深いアルゴリズムの科学的応用が、数年前私がNASAで働いていた時に起こりました。我々は毎夏一緒に働いてくれるインターンの学生を受け入れていました。学生たちは大学の学部生で、皆とても聡明な学生ばかりでした。ある夏、高校の3年生にもなっていない学生をインターンとして受け入れました。彼は私が開催したデータマイニングについてのランチトークに出席していました。ランチトークはその年の夏のインターン全員に対して行ったものです。彼はNASAの宇宙物理学者と一緒にあるプロジェクトに取り組んでいました。それは、太陽に大きな太陽嵐が発生した後、太陽エネルギー粒子がいつ地球に到達するかを予測しようとするものでした。

彼は、相関マイニングを試してみることにしました。彼がしたことは非常に巧妙でした。前述したハリケーンの例のように、彼は予測パターンを見つけるために、太陽嵐と地球の周りの地磁気の事象の特性を収集した(NASAの人工衛星で測定)。彼がやったことの何が特別かと言うと、タイムシフトデータ値に注目したところです。例えば、いつ相関ピークが起こるかを確認するために、彼は太陽での事象と地球での事象を1、2、3、4時間ごとのタイムラグで比較しました。彼は発見したのです― 最も強い地磁気の影響が地球周辺で観測されたのは、太陽嵐のおよそ2~3時間経過した時点だったのです。この学生のNASAのメンターが私をオフィスに呼び、この高校生2年生による驚くべき発見を、私がランチタイムセミナーで披露した単純なテクニックを使って見せてくれたのです。私たちは皆大変感心しました。

これらの例はあなた自身の収集されたビッグデータを検索する際に有用な2つのアプローチを示してくれています。(1)一つは希少で珍しい非数値アイテム(その後強力な予測分析のために役立ちます)の共起相関を探すこと。(2)もう一つは、もし時間をベースにしたデータを持っていたら、あなたのデータマイニングの試みに、相関の強さがしばらくしてピークに達するかどうかを見るためにタイムラグを導入することで得られる効果について考えてみてください。

最後の相関ルールマイニングの例として挙げるのは、何年も前に、ビデオカメラとビデオプレーヤー/レコーダー(VHS)を扱う大手家電販売店で発見された事例です。彼らは小売客のデータベースを調べ、VHSプレーヤー/レコーダーを購入した客は、その約3~4ヶ月後に今度はビデオカメラ(カムコーダー)の購入するために店に戻ってくることを見つけました。

店はこの情報に基づき、数か月前にVHSプレーヤー/レコーダーを購入した客全員に、カムコーダーを購入するために店に戻ってきてもらおうと、カムコーダーの割引クーポンを送付しました。明らかにこの顧客関与プログラムは役に立つのです!そしてその成功は相関ルールマイニングのおかげです。膨大な量のビッグデータの利用可能になり、これらのデータに分析を実行するために強力な技術を用いることで、あなたのボトムラインを高めることができる、驚くべき有用な相関が発見されるのを待っているということが想像できると思います。

さぁ、集計をはじめましょう!