ホームページ >バックエンド開発 >Python チュートリアル >PythonのAprioriアルゴリズムの詳細な説明

PythonのAprioriアルゴリズムの詳細な説明

PHPz
PHPzオリジナル
2023-06-10 08:03:134788ブラウズ

Apriori アルゴリズムは、データ マイニングの分野における相関ルール マイニングの一般的な方法であり、ビジネス インテリジェンス、マーケティング、その他の分野で広く使用されています。 Python は一般的なプログラミング言語として、Apriori アルゴリズムを実装するための複数のサードパーティ ライブラリも提供しています。この記事では、Python での Apriori アルゴリズムの原理、実装、および応用について詳しく紹介します。

1. Apriori アルゴリズムの原理

Apriori アルゴリズムの原理を紹介する前に、まず相関ルール マイニングにおける次の 2 つの概念、頻出項目セットとサポートについて学びましょう。

頻繁に使用されるアイテムセット: 特定のデータ セット内で同時に出現することが多いアイテムのセットを指します。

サポート: すべてのトランザクションに表示されるアイテム セットの頻度はサポートと呼ばれます。

たとえば、スーパーマーケットのトランザクション データでは、全トランザクションにおける {牛乳、ケーキ} の組み合わせの頻度は 10% です。したがって、この組み合わせの支持率は 10% になります。

Apriori アルゴリズムは、頻繁に使用されるアイテム セットの概念に基づいており、頻繁に使用されるアイテム セットをレイヤーごとに検索することでアイテム間の相関関係を調査します。アイデアは次のとおりです。

  1. 単一アイテム セット (つまり、個別に購入したアイテム) から始めて、頻繁に使用されるアイテム セットをボトムアップでマイニングします。
  2. アイテム セットのサポートが事前に設定された最小サポートしきい値を満たしている場合にのみ、そのアイテム セットは頻繁に使用されるアイテム セットと見なされます。
  3. 頻繁に使用される項目セットに基づいて、強い関連性ルール セットを構築します。強い相関ルールとは、相関ルール内の条件項目と結果項目の間のつながりが非常に近いルールを指します。

具体的には、Apriori アルゴリズムの実装プロセスは次のとおりです。

  1. すべての項目をカウントし、単一の項目セットのサポート数を取得します。
  2. サポートが最小サポートしきい値を満たす単一アイテム セットごとに、それらは頻繁に使用されるアイテム セットと見なされます。
  3. 頻繁に使用される項目セットごとに、その空でないサブセットをすべて生成し、生成プロセス中にカウントして各サブセットのサポートを計算します。
  4. 現在生成されているサブセットのサポートが最小サポートしきい値を満たしている場合、サブセットは頻繁に使用されるアイテム セットとして保存されます。
  5. 頻繁に使用される項目セットに基づいて、強い関連性ルール セットを構築します。頻度の高い項目セットの場合、サブセットを条件として選択し、残りの部分を結果として選択し、その信頼度を計算できます。信頼度が最小信頼しきい値を満たしている場合、相関ルールは強力なルールとして保存されます。
  6. 新しい頻繁な項目セットや強力なルールがなくなるまで、手順 3 ~ 5 を繰り返し実行します。

Apriori アルゴリズムの時間計算量は、空ではない各サブセットのサポート数を必要とするため、非常に高いことに注意してください。計算量を減らすために、ハッシュ テーブルの使用や候補の削減など、いくつかの最適化手法を使用できます。

2. Python での Apriori アルゴリズムの実装

Python には、mlxtend、Orange など、Apriori アルゴリズムを実装できる複数のサードパーティ ライブラリがあります。以下では、例として mlxtend を使用して、Apriori アルゴリズムの実装手順を紹介します。

  1. mlxtend ライブラリのインストール

pip を使用して mlxtend をインストールします:

pip install mlxtend
  1. 必要なライブラリをインポートします

インポートnumpy ライブラリと mlxtend ライブラリ:

import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
  1. データの準備

4 つのトランザクション レコードを含む単純なトランザクション データ セットを生成します。各レコードはいくつかの項目で構成されます。構成:

dataset = [['牛奶', '面包', '啤酒', '尿布'],
           ['牛奶', '面包', '啤酒', '尿布'],
           ['面包', '啤酒', '尿布', '饼干'],
           ['牛奶', '尿布', '啤酒', '饼干']]
  1. データをブール テーブルに変換する

TransactionEncoder を使用してデータをブール テーブルに変換します。この手順では、トランザクション データ セットから頻繁に使用される項目セットを抽出します。

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
  1. 頻繁なアイテム セットのマイニング

Apriori 関数を使用して、ブール テーブルから頻繁なアイテム セットをマイニングします。

frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

min_support パラメーターを設定することで、頻度を制御できます。アイテムセットの最小サポート。上記のコードでは、最小サポートは 0.5 に設定されています。

  1. 強い関連性ルール セットを構築する

頻繁に使用されるアイテム セットに基づいて、association_rules 関数を使用して強い関連性ルール セットを構築します:

rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

Byメトリック パラメーターを設定すると、相関ルールの良さを評価するためにどのメトリックを使用するかを制御できます。上記のコードでは、信頼度が評価指標として使用され、最小信頼しきい値は 0.7 に設定されています。

3. Apriori アルゴリズムの適用シナリオ

Apriori アルゴリズムは、マーケティング、レコメンデーション システム、ソーシャル ネットワーク分析など、多くの分野に適用できます。以下では、製品推奨における Apriori アルゴリズムの適用を示すために、例として電子商取引プラットフォームを取り上げます。

電子商取引プラットフォームは通常、ユーザーの取引記録を記録し、これらの記録を使用してユーザーが興味を持つ可能性のある商品を推奨します。 Apriori アルゴリズムを通じて、高頻度の製品の組み合わせをマイニングできます。たとえば、製品 A、B、C を購入する人は、製品 D を購入する可能性が高くなります。これらの関連付けルールに基づいて、電子商取引プラットフォームは、ユーザーの取引率とショッピング体験を向上させるために、対応する製品をユーザーに推奨できます。

4. 結論

Apriori アルゴリズムは一般的な相関ルール マイニング手法であり、このアルゴリズムを実装できる Python のサードパーティ ライブラリが複数あります。これらのライブラリを通じて、頻繁に使用される項目セットと関連付けルールを簡単にマイニングして、データ分析とビジネス上の意思決定をサポートできます。

以上がPythonのAprioriアルゴリズムの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。