10

閲覧したページ、タグなど、すべてのユーザー アクションをログに記録する予定です。

このデータをデータマイニングして推奨事項を取得するための優れた無駄のないソリューションは何でしょうか?
次のように言います。

  • 表示された URL からすべての関心を把握します (関連付けられているタグを知っていると仮定します)。
  • 同じような興味を持つ人を見つけてください。例: John & Jane が車に関連する URL を閲覧した場合など

編集:
この分野での私の知識不足が、始めるのを制限する要因です。

言い換えさせてください。stackoverflowQuora
のようなサイトを考えてみましょう。さまざまな質問を行った私の閲覧履歴はすべて記録され、Quora はそれを調べて関連する質問をストリームに追加するデータ マイニング作業を行います。育児に関する質問に答え、次にログインすると、育児に関する一連の質問が表示されます。Amazonショッピングと同じです。時計とミキサーを閲覧すると、2 日後に興味のある関連ショッピング アイテムのメールが届きます。

私の質問は、これらのデータをどのように効率的に保存し、それをデータ マイニングして次の関連データ セットを表示するかということです。

4

3 に答える 3

3

データマイニングは、ストレージ用に非常に膨大なスペースと膨大な計算能力を必要とする方法です。

例を挙げます:

想像してみてください。あなたはウォルマートのような大きなスーパー マーケット チェーンのボスであり、消費者が店に入ったときに多くのお金を使うように、製品を市場に配置する方法を知りたいと考えています。

まずアイデアが必要です。あなたのアイデアは、一緒に購入されることが多いさまざまな製品グループの製品を見つけることです。このようなペアの製品がある場合は、それらの製品をできるだけ離して配置する必要があります。顧客が両方を購入したい場合は、ショップ全体を歩き回る必要があります。このようにして、そのペアのいずれかに適合する可能性のある他の製品を配置する必要がありますが、それほど頻繁には販売されません. 一部の顧客はこの製品を見て購入し、この追加製品の収益がデータマイニング プロセスの収益になります。

そのため、多くのデータが必要です。すべての店舗のすべての顧客のすべての購入から取得したすべてのデータを保存する必要があります。人が牛乳 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つの製品のペアを持っています. 両方の合計を取るべきですか?それとも最大?複数のカウンターを使用して、考えられるすべての方法でカウントできるようにすることをお勧めします。

そして、何か別のことをしなければなりません。顧客は、シャンパンとキャビアよりもはるかに多くの牛乳とパンを購入します。したがって、任意の製品を選択した場合、もちろん、ミルクとパンのペアは、シャンパンとキャビアのペアよりもカウントが高くなります。したがって、データを分析するときは、これらの影響のいくつかにも注意を払う必要があります。

次に、これをすべて実行したら、データマイニング クエリを実行します。推定カウントに対する実際のカウントの比率が最も高いペアを選択します。何十億ものレコードを持つデータベーステーブルから選択します。この処理には数時間かかる場合があります。したがって、クエリを送信する前に、そのクエリが本当に知りたいことかどうかを慎重に検討してください。

農村環境では、土曜日の午後、人々が予想よりもはるかに多くのビールをおむつと一緒に購入することに気付くかもしれません。つまり、店の端にビールを置き、反対側におむつを置くだけで、多くの人が店全体を通り抜けて、見たことのない他の多くのものを見る (そしてできれば購入する) ことになります (そして買った)ビールとおむつが近くに置かれた場合。

そして覚えておいてください: データマイニング プロセスのコストは、顧客の追加の掘り出し物によってのみカバーされます!

結論:

  • 多くのスペースを必要とするアイテムのさらに大きなタプルのペア、トリプルを格納する必要があります。最後に何が出てくるか分からないので、ありとあらゆる組み合わせを記憶しておく必要があります!
  • それらのタプルを数えなければなりません
  • カウント値と推定値を比較する必要があります
于 2012-08-24T12:34:13.303 に答える
2

各トランザクションをタグのベクトルとして保存します(つまり、これらのタグを含む訪問したページ)。次に、このデータに対してアソシエーション分析(Wekaをお勧めします)を実行して、使用可能な「アソシエート」アルゴリズムを使用してアソシエーションを見つけます。もちろん、効果はさまざまなものに依存します。

私の大学の男が私に言ったことの1つは、多くの場合、ある人が購入したすべての製品のベクトルを作成し、これを他の人のベクトルと比較して、適切な推奨事項を取得できるということでした。これは、ユーザーが購入した製品またはアクセスして実行するページ(Jaccard類似度の計算など)としてユーザーを表します。「人」が似ている場合は、この人が購入しなかった製品を見てください。(おそらく、同様の人々の人口で最も一般的なもの)

ストレージはまったく異なるボールゲームであり、さまざまなRDBMに実装されたKDツリーなどのベクターデータには多くの優れたインデックスがあります。

データマイニングのコースを受講する:)または、入手可能な優れた教科書の1つを読んでください(Pang-Ning tan et alによるデータマイニングの概要とその優れた点を読みました)。

そして、製品のすべてのペアなどを保存することに関しては、もちろんこれは行われず、サポートと信頼性に基づくより効率的なアルゴリズムが検索スペースを整理するために使用されます。

于 2012-08-30T06:08:46.087 に答える
0

おすすめは機械学習の問題です。データの保存方法は、選択したアルゴリズムによって異なります。

于 2012-08-26T19:45:52.110 に答える