ホームページ > バックエンド開発 > Python チュートリアル > Python での相関ルール マイニング手法

Python での相関ルール マイニング手法

王林
リリース: 2023-06-09 23:07:35
オリジナル
2146 人が閲覧しました

Python は強力なプログラミング言語として、データ マイニングや機械学習などのさまざまな分野に適用できます。データ マイニングの分野では、相関ルール マイニングは、データ セット内のさまざまな項目間の関係と、これらの関係が他のものに及ぼす影響を発見するために使用できる一般的に使用される手法です。この記事では、Python での相関ルール マイニング手法を簡単に紹介します。

  1. Apriori アルゴリズム

Apriori アルゴリズムは、相関ルール マイニングの分野における古典的なアルゴリズムであり、データ セット内の頻繁なアイテム セットと相関ルールを検出するために使用できます。 。頻度の高いアイテムセットは、データ セット内でより頻繁に出現するアイテムのセットを指しますが、相関ルールは 2 つ以上のアイテム間の関係を指します。これらは同時に出現することも、一方の出現は他方も出現する可能性が高いことを意味します。現れる。 。

mlxtend ライブラリの apriori 関数を使用して、Python で Apriori アルゴリズムを実装できます。以下は簡単なサンプル コードです。

from mlxtend.frequent_patterns import apriori

# 构建数据集
data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用apriori算法挖掘频繁项集
frequent_itemsets = apriori(data, min_support=0.6)

# 输出频繁项集
print(frequent_itemsets)
ログイン後にコピー

上記のコードでは、最初に 5 つのショッピング バスケットの内容を含むデータ セットを定義します。次に、mlxtend ライブラリの apriori 関数を使用して、頻繁に使用される項目セットをマイニングします。関数の最初のパラメーターはデータセットで、2 番目のパラメーターは最小サポートしきい値であり、ここでは 0.6 に設定されています。

出力結果では、アルゴリズムが 2 つの頻繁な項目セット ['Bread'] と ['Milk', 'Bread'] を見つけたことがわかります。これは、このデータ セットではパンを購入する人が最も多く、次に牛乳とパンが続くことを意味します。サポートのしきい値を調整することで、さまざまなサイズの頻繁なアイテムセットを検出できます。

  1. 相関ルールの抽出

頻繁に使用される項目セットを発見した後、引き続き相関ルールの抽出を行うことができます。相関ルールは、特定のアイテムが一緒に出現する確率、またはあるアイテムが出現したときに別のアイテムが出現する確率を理解するのに役立ちます。

mlxtend ライブラリの association_rules 関数を使用して、Python で関連付けルールを抽出できます。以下は簡単なサンプル コードです。

from mlxtend.frequent_patterns import association_rules, apriori

data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用apriori算法挖掘频繁项集
frequent_itemsets = apriori(data, min_support=0.6)

# 使用association_rules函数提取关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8)

# 输出关联规则
print(rules)
ログイン後にコピー

上記のコードでは、まず Apriori アルゴリズムを使用して、データ セット内で頻繁に使用される項目セットを検索します。次に、 association_rules 関数を使用して関連付けルールを抽出します。関数の最初のパラメータは頻度の高いアイテムセット、2 番目のパラメータは相関ルールを評価するための指標、ここでは信頼度 (信頼度) を選択、3 番目のパラメータは最小信頼しきい値で、ここでは 0.8 に設定されています。

出力では、アルゴリズムが信頼度 1.0 の相関ルール (「パン」 => 「ビール」) を見つけたことがわかります。これは、パンを買った人の100%がビールも買ったことを意味します。この相関ルールは、推奨システムでユーザーに製品を推奨するために使用できます。

  1. FP-Growth アルゴリズム

FP-Growth アルゴリズムは、相関ルール マイニングの分野におけるもう 1 つの古典的なアルゴリズムです。Apriori アルゴリズムよりも高速で、大規模なアルゴリズムを処理できます。データセットの規模。

pyfpgrowth ライブラリを Python で使用して、FP-Growth アルゴリズムを実装できます。以下は簡単なサンプル コードです:

import pyfpgrowth

# 构建数据集
data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用FP-Growth算法挖掘频繁项集
patterns = pyfpgrowth.find_frequent_patterns(data, 2)

# 使用FP-Growth算法提取关联规则
rules = pyfpgrowth.generate_association_rules(patterns, 0.8)

# 输出频繁项集和关联规则
print(patterns)
print(rules)
ログイン後にコピー

上記のコードでは、まずデータ セットを定義し、次に pyfpgrowth ライブラリの find_frequent_patterns 関数を使用して、頻繁に使用されるアイテムセットをマイニングします。関数の最初のパラメータはデータセットで、2 番目のパラメータはサポートしきい値です。ここでは、サポートしきい値を 2 に設定します。これは、各アイテム セットが少なくとも 2 つのショッピング バスケットに表示される必要があることを意味します。この関数は、すべての頻繁に使用される項目セットとそのサポート数を含む辞書を返します。

次に、pyfpgrowth ライブラリのgenerate_association_rules 関数を使用して、関連付けルールを抽出します。関数の最初のパラメーターは頻繁に使用される項目セットの辞書であり、2 番目のパラメーターは信頼度のしきい値です。ここでは、信頼度のしきい値を 0.8 に設定します。

出力結果では、アルゴリズムが 2 つの頻繁な項目セット ('bread',) と ('bread', 'milk') を見つけたことがわかります。同時に、アルゴリズムは信頼度 1.0 の相関ルールを抽出しました: ('bread',) => ('beer',)。これは、パンを買う人のうち 100% がビールを買うことを意味します。これに加えて、信頼レベルが 0.8 より高い他の相関ルールも確認できます。

概要

アソシエーション ルール マイニングは、データ セット内のさまざまな項目間の関係や、これらの関係が他のものに及ぼす影響を発見するために使用できる、非常に便利なデータ マイニング手法です。 Python は、Apriori アルゴリズムや FP-Growth アルゴリズムなど、相関ルール マイニングを実装するためのさまざまな方法を提供します。具体的な実装では、頻出項目セットや相関ルールの閾値設定や実際の問題への適用にも注意が必要です。

以上がPython での相関ルール マイニング手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート