ホームページ >バックエンド開発 >Python チュートリアル >Python でデータマイニングに相関ルールを使用するにはどうすればよいですか?

Python でデータマイニングに相関ルールを使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-04 09:02:191388ブラウズ

Python は、さまざまなデータ マイニング タスクに適用できる強力なプログラミング言語です。相関ルールは一般的なデータ マイニング手法の 1 つで、データ セットをより深く理解するために、異なるデータ ポイント間の関連性を発見することを目的としています。この記事では、データマイニングのために Python で相関ルールを使用する方法について説明します。

アソシエーション ルールとは

アソシエーション ルールは、異なるデータ ポイント間の関連性を発見するために使用されるデータ マイニング テクノロジです。これは買い物かごの分析でよく使用され、どの商品が頻繁に一緒に購入されるかを特定して、商品が置かれている店舗の部門で整理することができます。

関連付けルールには、アイテムセットとルールという 2 種類の要素があります。

プロジェクト セットには複数のプロジェクトが含まれており、ルールは論理関係です。たとえば、項目セットに A、B、および C が含まれている場合、ルール A->B は、A が発生すると B も発生する可能性が高いことを意味します。もう 1 つのルール、B->C は、B が出現すると C も出現する可能性が高いことを意味します。

相関ルール データ マイニングに Python を使用する手順

相関ルール データ マイニングに Python を使用するには、次の手順に従う必要があります:

1. データを準備します

まず、使用するデータを準備する必要があります。通常、関連付けルール アルゴリズムでは、購入履歴や顧客とのやり取りの記録などのトランザクション データが使用されます。

Python では、pandas データ フレームを使用してデータを読み込み、アルゴリズムに適した形式に変換できます。一般的に使用される形式はリストのリストです。この形式では、各サブリストがトランザクションを表し、要素がトランザクション内の項目を表します。

たとえば、次のコードはサンプル トランザクション情報を含む CSV ファイルをロードし、それをリスト形式に変換します:

import pandas as pd

# Load data from CSV file
data = pd.read_csv('transactions.csv')

# Convert data to List of Lists format
transactions = []
for i, row in data.iterrows():
    transaction = []
    for col in data.columns:
        if row[col] == 1:
            transaction.append(col)
    transactions.append(transaction)

2. 相関ルール アルゴリズムを使用してルールを検索します

データをアルゴリズムに適した形式に変換したら、相関ルール アルゴリズムのいずれかを使用してルールを見つけることができます。最も一般的なアルゴリズムは Apriori アルゴリズムで、次の手順に従います。

  • すべてのトランザクションをスキャンしてアイテムの頻度を決定します。
  • 項目頻度を使用して、候補項目セットを生成します。
  • すべてのトランザクションをスキャンして、候補アイテム セットの頻度を決定します。
  • 候補項目セットに基づいてルールを生成します。

Python では、pymining ライブラリを使用して Apriori アルゴリズムを実装できます。以下は、Pymining を使用して頻繁に使用されるアイテムセットを見つける方法を示すサンプル コードです。

from pymining import itemmining

relim_input = itemmining.get_relim_input(transactions)
item_sets = itemmining.relim(relim_input, min_support=2)
print(item_sets)

この例では、どのアイテムセットが頻繁に使用されるかを決定するためのサポートしきい値を指定する min_support パラメーターを使用します。この場合、サポート 2 を使用しました。これは、少なくとも 2 つのトランザクションに出現するアイテムセットのみが頻繁なアイテムセットとみなされることを意味します。

3. ルールの評価

頻繁に使用される項目セットを見つけたら、それらを使用してルールを生成できます。ルールを生成した後、ルールを評価して、どのルールが最も意味のあるものかを判断する必要があります。

ルールの評価に使用できる、一般的に使用される評価指標がいくつかあります。最も一般的な 2 つは信頼とサポートです。

信頼度はルールの正確さを示します。 Aが発生した場合、Bも発生する可能性が高い確率を指します。次のように計算されます。

confidence(A->B) = support(A and B) / support(A)

このうち、support(A and B) は A が出現することを意味します。同時に B とのトランザクションの数、support(A) は A が出現するトランザクションの数です。

サポートは、ルールの普遍性を示します。これは、次の式で計算される確率を指します:

support(A および B) / total_transactions

ここで、total_transactions はすべてのトランザクションの数です。

Python では、pymining ライブラリを使用して信頼性とサポートを計算できます。以下は、ルールの信頼度を計算する方法を示すサンプル コードです。

from pymining import perftesting

rules = perftesting.association_rules(item_sets, 0.6)

for rule in rules:
    item1 = rule[0]
    item2 = rule[1]
    confidence = rule[2]
    support = rule[3]
    print(f'Rule: {item1} -> {item2}')
    print(f'Confidence: {confidence}')
    print(f'Support: {support}
')

この例では、信頼度のしきい値 0.6 を使用します。これは、ルールの信頼度が 0.6 より高い場合のみを意味します。 、それは意味のあるルールとみなされます。

概要
アソシエーション ルールはデータ マイニングにおける重要なテクノロジの 1 つであり、データ ポイント間の相関関係を発見するのに役立ちます。 Python では、相関ルール アルゴリズムと評価メトリクスを使用して、ルールの検索、ルールの評価、結果に基づいた分析と予測を行うことができます。実際には、データからより多くの洞察を得るために、結果を視覚化するか、機械学習モデルに送信してさらなる分析を行う必要がある場合があります。

以上がPython でデータマイニングに相関ルールを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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