アプリオリ アルゴリズムとは、オブジェクト間の相関ルールを計算するために使用されるアルゴリズムを指します。 2 つ以上のオブジェクトが互いにどのように関係しているかを意味します。つまり、アプリオリアルゴリズムは、製品Aを購入した人は製品Bも購入したと分析する相関規則学習であると言えます。
アプリオリ アルゴリズムの主な目的は、異なるオブジェクト間の相関ルールを作成することです。関連ルールは、2 つ以上のオブジェクトが互いにどのように関連するかを記述します。アプリオリ アルゴリズムは、高頻度パターン マイニングとも呼ばれます。一般に、Apriori アルゴリズムは、膨大な数のトランザクションで構成されるデータベース上で動作します。例を使ってアプリオリ アルゴリズムを理解しましょう。ビッグバザールに行って、さまざまな商品を買うとします。顧客が商品を簡単に購入できるようになり、ビッグバザールの販売実績が向上します。このチュートリアルでは、例を挙げてアプリオリ アルゴリズムについて説明します。
導入
概念をよりよく理解するために例を取り上げます。ピザ屋の店員がピザ、ソフトドリンク、スティックパンを組み合わせて作っていることに気づいたはずです。また、これらのコンボを購入する顧客には割引も提供しています。なぜ彼がそんなことをするのか考えたことがありますか?彼は、ピザを買う顧客はソフトドリンクやスティックパンも買うと考えています。しかし、コンボを作ることで、顧客を楽にさせます。同時に、営業成績も向上します。
同様に、ビッグ バザールに行くと、ビスケット、チップス、チョコレートがセットになっているのが見つかります。これは、店主が顧客が同じ場所でこれらの商品を購入できるように配慮していることを示しています。
上記の 2 つの例は、次のアソシエーション ルールの最良の例です。
この概念を理解するために例を見てみましょう。
すでに上で説明しました。大量のトランザクションを含む巨大なデータベースが必要です。 Big Bazar で 4000 人の顧客の取引があるとします。ビスケットとチョコレートという 2 つの製品のサポート、信頼性、リフトを計算する必要があります。これは、顧客がこれら 2 つの商品を一緒に購入することが多いためです。
4000 件のトランザクションのうち、400 件にはビスケットが含まれ、600 件にはチョコレートが含まれており、この 600 件のトランザクションにはビスケットとチョコレートを含む 200 件のトランザクションが含まれています。このデータを使用して、サポート、信頼、およびリフトを調べます。
サポート
サポートとは、製品のデフォルトの人気を指します。サポートは、その商品を構成するトランザクション数をトランザクションの総数で割った商として求められます。したがって、次のようになります。
サポート (ビスケット) = (ビスケットに関する取引) / (取引合計)
json形式の例
= 400/4000 = 10 パーセント。
自信
信頼度は、顧客がビスケットとチョコレートの両方を一緒に購入した可能性を指します。したがって、信頼性を得るには、ビスケットとチョコレートの両方を含むトランザクション数をトランザクションの合計数で割る必要があります。
したがって、
信頼度 = (ビスケットとチョコレートの両方に関連する取引) / (ビスケットに関係する取引の合計)
= 200/400
= 50パーセント。
これは、ビスケットを購入した顧客の 50% がチョコレートも購入したことを意味します。
リフト
上の例を考えてみましょう。リフトとは、ビスケットを販売した際にチョコレートの売上の割合が増加することを指します。揚力の数学的方程式を以下に示します。
リフト = (自信 (ビスケット - チョコレート)/(サポート (ビスケット))
= 50/10 = 5
Javaの部分文字列関数
これは、人々がビスケットとチョコレートの両方を一緒に購入する確率は、ビスケットのみを購入する確率の 5 倍であることを意味します。リフト値が 1 未満の場合は、人々が両方のアイテムを一緒に購入する可能性が低いことが必要です。値が大きいほど、より良い組み合わせになります。
データマイニングにおけるアプリオリアルゴリズムはどのように機能しますか?
例を使用してこのアルゴリズムを理解します
製品セットが P = {米、豆類、油、牛乳、リンゴ} であるビッグ バザールのシナリオを考えてみましょう。データベースは 6 つのトランザクションで構成されており、1 は製品の存在を表し、0 は製品の不在を表します。
トランザクションID | 米 | 脈 | オイルミルク | りんご | |
---|---|---|---|---|---|
t1 | 1 | 1 | 1 | 0 | 0 |
t2 | 0 | 1 | 1 | 1 | 0 |
t3 | 0 | 0 | 0 | 1 | 1 |
t4 | 1 | 1 | 0 | 1 | 0 |
t5 | 1 | 1 | 1 | 0 | 1 |
t6 | 1 | 1 | 1 | 1 | 1 |
アプリオリ アルゴリズムは所定の仮定を行います
- 頻繁に使用される項目セットのすべてのサブセットは、頻繁に使用される必要があります。
- 頻度の低い項目セットのサブセットは頻度が低い必要があります。
- しきい値のサポート レベルを修正します。私たちの場合は、50% に固定しました。
ステップ1
すべてのトランザクションに出現するすべての製品の度数表を作成します。次に、頻度テーブルを短縮して、しきい値サポート レベルが 50 パーセントを超える製品のみを追加します。指定された周波数テーブルを見つけます。
製品 | 頻度(トランザクション数) |
---|---|
米(R) | 4 |
パルス(P) | 5 |
オイル(O) | 4 |
ミルク(M) | 4 |
上の表は、お客様がよく購入される商品を示しています。
ステップ2
RP、RO、RM、PO、PM、OM などの製品のペアを作成します。指定された周波数テーブルが得られます。
アイテムセット | 頻度(トランザクション数) |
---|---|
RP | 4 |
ロ | 3 |
RM | 2 |
後 | 4 |
午後 | 3 |
について | 2 |
ステップ3
同じしきい値の 50% サポートを実装し、50% を超える製品を検討します。私たちの場合、それは3以上です
したがって、RP、RO、PO、PM が得られます。
ステップ4
再帰Java
次に、顧客が一緒に購入する 3 つの製品のセットを探します。与えられた組み合わせを取得します。
- RP と RO は RPO を与えます
- PO と PM が POM を与える
ステップ5
2 つの項目セットの頻度を計算すると、指定された頻度テーブルが得られます。
アイテムセット | 頻度(トランザクション数) |
---|---|
RPO | 4 |
POM | 3 |
しきい値の仮定を実装すると、顧客の 3 つの製品のセットが RPO であることがわかります。
データマイニングにおけるアプリオリアルゴリズムを説明するための簡単な例を検討しました。実際には、そのような組み合わせは何千も見つかります。
Apriori アルゴリズムの効率を向上させるにはどうすればよいですか?
Apriori アルゴリズムの効率性を高めるためにさまざまな方法が使用されています
ハッシュベースのアイテムセットのカウント
リストJava
ハッシュベースのアイテムセットのカウントでは、同等のハッシュ バケット数がしきい値よりも小さい k アイテムセットは、頻度の低いアイテムセットであるため、除外する必要があります。
トランザクションの削減
トランザクション削減では、頻繁に発生する X アイテムセットを含まないトランザクションは、後続のスキャンでは価値がなくなります。
データマイニングにおけるアプリオリアルゴリズム
頻繁な項目セットの生成に関連するアプリオリ アルゴリズムの例についてはすでに説明しました。 Apriori アルゴリズムはデータ マイニングに多くの用途があります。
データマイニングで相関ルールを見つけるための主な要件を以下に示します。
ブルートフォースを使用する
すべてのルールを分析し、個々のルールのサポートと信頼レベルを見つけます。その後、サポートおよび信頼レベルのしきい値より小さい値を削除します。
2段階のアプローチ
2 段階のアプローチは、ブルート フォース メソッドよりも関連付けルールを見つけるための優れたオプションです。
取り消し線のマークダウン
ステップ1
この記事では、度数テーブルを作成し、しきい値サポートよりも大きなサポート値を持つアイテムセットを計算する方法をすでに説明しました。
ステップ2
相関ルールを作成するには、頻繁に使用される項目セットのバイナリ パーティションを使用する必要があります。最も高い信頼レベルを持つものを選択する必要があります。
上の例では、RPO の組み合わせが頻繁に使用される項目セットであることがわかります。ここで、RPO を使用してすべてのルールを見つけます。
RP-O、RO-P、PO-R、O-RP、P-RO、R-PO
6 通りの組み合わせがあることがわかります。したがって、要素が n 個ある場合、要素は 2 つになります。n- 2 つの候補関連付けルール。
アプリオリアルゴリズムの利点
- 大きなアイテムセットを計算するために使用されます。
- 理解して適用するのが簡単です。
アプリオリアルゴリズムの欠点
- アプリオリ アルゴリズムは、計算がデータベース全体を通過する必要があるため、サポートを見つけるのにコストがかかる方法です。
- 場合によっては、膨大な数の候補ルールが必要になるため、計算コストが高くなります。