機械学習A-Z~パイロットアルゴリズムApriori

1939 ワード

本稿では,先行アルゴリズムと呼ばれる関連規則学習における基本アルゴリズムについて述べる.先行アルゴリズムとは,異なるイベント間のつながりを見つけることである.例えば、スーパーで製品Aを買った人は、荷物Bを買うかもしれません.ここでは例を見てみましょう.
ここには7つの取引がありますが、これらのデータに基づいて、貨物Aがある場合、貨物Bがある可能性があると推測することができます.例えばハンバーガーがあるときはポテトチップスがあるかもしれませんが、野菜があれば果物があるかもしれません.私たちの店がますます大きくなり、取引記録がますます多くなると、人為的な観察を通じてこれらの商品間のつながりを見るのは難しくなります.この場合、先行アルゴリズムが必要です.
コンセプト
先行アルゴリズムには,support(支持度),confidence(自信レベル),lift(上昇度)の3つのコア概念がある.
まず、取引の例のような支持度を見てみましょう.1つの商品Iにとって、商品Iを含むすべての取引数を総取引数で割ったものです.
$$ support(I) =\frac{transactions\quad containing\quad I}{transactions} $$
第2の概念、自信レベル、ここでI 1は商品1を表し、I 2は商品2を表し、自信レベルは商品1と2を同時に含む取引を商品1を含む取引記録個数で割ることである.
$$ confidence(I_1 -> I_2) =\frac{transactions\quad containing\quad I_1\quad and\quad I_2}{transactions\quad containing\quad I_1} $$
第3の概念、昇格度、これは支持度と自信レベルと関係があり、configdence/supportです.この上昇度が1より大きい場合、商品$I_1$対$I_2ドルは上昇しています.
$$ lift(I_1 -> I_2) =\frac{confidence(I_1->I_2)}{support(I_2)} $$
では、この先行アルゴリズムは主に4つのステップに分けることができます.
  • 最低のsupportとconfidence
  • を設定
  • セットしたばかりのものより大きいものをすべて選択
  • 先ほど選択した商品に基づいて、定義した最小confidenceよりも高いすべてのルールの集合
  • を選択する
  • さっきのルールを大きくから小さく並べ替えて、昇格度が最も高いものをいくつか選びます.

  • コード実装
    今回のコードは、ある店がどのように先行アルゴリズムを使用して販売量を向上させるかを実現した例です.ここにはこの店の最近のすべての取引があり、取引ごとに異なる種類の商品が売られています.
    今回のコードは追加のパッケージを使用しているので、このパッケージのコードを自分で見に行く必要があります.ここでは、このパッケージをどのように使用して先行アルゴリズムの使用を行うかだけを貼り付けます.
    from apyori import apriori
    import pandas as pd
    
    dataset = pd.read_csv('Market_Basket_Optimisation.csv', header=None)
    transactions = []
    for i in range(0, 7501):
        transactions.append([str(dataset.values[i, j]) for j in range(0, 20)])
    
    # Training Apriori on the dataset
    
    rules = apriori(transactions, min_support=0.003, min_confidence=0.2, min_lift=3, min_length=2)
    
    # Visualising the results
    results = list(rules)
    myResults = [list(x) for x in results]

    ここのapyoriパッケージは私のgithubに行ってこのコードを見ることができます.以上,先行アルゴリズムに関する基礎知識である.