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

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

Jun 10, 2023 am 08:03 AM
データマイニングPythonプログラミングapriori算法

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 までご連絡ください。
Pythonの主な目的:柔軟性と使いやすさPythonの主な目的:柔軟性と使いやすさApr 17, 2025 am 12:14 AM

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Python:汎用性の高いプログラミングの力Python:汎用性の高いプログラミングの力Apr 17, 2025 am 12:09 AM

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

1日2時間でPythonを学ぶ:実用的なガイド1日2時間でPythonを学ぶ:実用的なガイドApr 17, 2025 am 12:05 AM

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Python vs. C:開発者の長所と短所Python vs. C:開発者の長所と短所Apr 17, 2025 am 12:04 AM

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Python:時間のコミットメントと学習ペースPython:時間のコミットメントと学習ペースApr 17, 2025 am 12:03 AM

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール