データマイニングは、ストレージ用に非常に膨大なスペースと膨大な計算能力を必要とする方法です。
例を挙げます:
想像してみてください。あなたはウォルマートのような大きなスーパー マーケット チェーンのボスであり、消費者が店に入ったときに多くのお金を使うように、製品を市場に配置する方法を知りたいと考えています。
まずアイデアが必要です。あなたのアイデアは、一緒に購入されることが多いさまざまな製品グループの製品を見つけることです。このようなペアの製品がある場合は、それらの製品をできるだけ離して配置する必要があります。顧客が両方を購入したい場合は、ショップ全体を歩き回る必要があります。このようにして、そのペアのいずれかに適合する可能性のある他の製品を配置する必要がありますが、それほど頻繁には販売されません. 一部の顧客はこの製品を見て購入し、この追加製品の収益がデータマイニング プロセスの収益になります。
そのため、多くのデータが必要です。すべての店舗のすべての顧客のすべての購入から取得したすべてのデータを保存する必要があります。人が牛乳 1 本、ソーセージ、パンを購入した場合、販売された商品、金額、および価格を保存する必要があります。牛乳とソーセージが一緒に購入されたことを知らせたい場合は、購入ごとに独自の ID が必要です。
そのため、膨大な量の購入データがあります。そして、あなたはたくさんの異なる製品を持っています。たとえば、店舗で 10,000 種類の商品を販売しているとします。すべての製品は、他の製品と組み合わせることができます。これにより、10,000 * 10,000 / 2 = 50,000,000 (5000 万) のペアが作成されます。そして、この可能なペアのそれぞれについて、それが購入に含まれているかどうかを確認する必要があります. しかし、土曜日の午後と水曜日の深夜では、顧客が異なると思うかもしれません。そのため、購入の時間も保存する必要があります。1 週間に 20 のタイム スライスを定義するとします。これにより、50M * 20 = 10 億のレコードが作成されます。また、メンフィスの人々はビバリーヒルズの人々とは異なるものを購入する可能性があるため、データには場所も必要です。たとえば、50 のリージョンを定義すると、データベースには 500 億のレコードが取得されます。
そして、すべてのデータを処理します。顧客が 1 回の購入で 20 個の製品を購入した場合、20 * 19 / 2 = 190 ペアになります。このペアごとに、データベース内のこの購入の時間と場所のカウンターを増やします。しかし、何によってカウンターを増やす必要がありますか? 1だけ?それとも購入した商品の金額で?しかし、あなたは2つの製品のペアを持っています. 両方の合計を取るべきですか?それとも最大?複数のカウンターを使用して、考えられるすべての方法でカウントできるようにすることをお勧めします。
そして、何か別のことをしなければなりません。顧客は、シャンパンとキャビアよりもはるかに多くの牛乳とパンを購入します。したがって、任意の製品を選択した場合、もちろん、ミルクとパンのペアは、シャンパンとキャビアのペアよりもカウントが高くなります。したがって、データを分析するときは、これらの影響のいくつかにも注意を払う必要があります。
次に、これをすべて実行したら、データマイニング クエリを実行します。推定カウントに対する実際のカウントの比率が最も高いペアを選択します。何十億ものレコードを持つデータベーステーブルから選択します。この処理には数時間かかる場合があります。したがって、クエリを送信する前に、そのクエリが本当に知りたいことかどうかを慎重に検討してください。
農村環境では、土曜日の午後、人々が予想よりもはるかに多くのビールをおむつと一緒に購入することに気付くかもしれません。つまり、店の端にビールを置き、反対側におむつを置くだけで、多くの人が店全体を通り抜けて、見たことのない他の多くのものを見る (そしてできれば購入する) ことになります (そして買った)ビールとおむつが近くに置かれた場合。
そして覚えておいてください: データマイニング プロセスのコストは、顧客の追加の掘り出し物によってのみカバーされます!
結論:
- 多くのスペースを必要とするアイテムのさらに大きなタプルのペア、トリプルを格納する必要があります。最後に何が出てくるか分からないので、ありとあらゆる組み合わせを記憶しておく必要があります!
- それらのタプルを数えなければなりません
- カウント値と推定値を比較する必要があります