機器學習 - 關聯規則



關聯規則挖掘是一種用於機器學習的技術,用於在大資料集中發現有趣的模式。這些模式以關聯規則的形式表達,表示資料集中不同專案或屬性之間的關係。關聯規則挖掘最常見的應用是市場購物籃分析,其目標是識別經常一起購買的產品。

關聯規則表示為一組前件和一組後件。前件表示規則適用的條件或專案,而後件表示可能與前件相關的結果或專案。關聯規則的強度由兩個指標衡量:支援度和置信度。支援度是資料集中包含前件和後件的交易比例,而置信度是在包含前件的交易中也包含後件的交易比例。

示例

在 Python 中,mlxtend 庫提供了幾個用於關聯規則挖掘的函式。以下是使用 mlxtend 的 apriori 函式在 Python 中實現關聯規則挖掘的示例:

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules

# Create a sample dataset
data = [['milk', 'bread', 'butter'],
   ['milk', 'bread'],
   ['milk', 'butter'],
   ['bread', 'butter'],
   ['milk', 'bread', 'butter', 'cheese'],
   ['milk', 'cheese']]

# Encode the dataset
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)

# Find frequent itemsets using Apriori algorithm
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

# Generate association rules
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.5)

# Print the results
print("Frequent Itemsets:")
print(frequent_itemsets)
print("\nAssociation Rules:")
print(rules)

在這個例子中,我們建立了一個購物交易的示例資料集,並使用 mlxtend 的 TransactionEncoder 對其進行編碼。然後,我們使用 apriori 函式找到最小支援度為 0.5 的頻繁項集。最後,我們使用 association_rules 函式生成最小置信度為 0.5 的關聯規則。

apriori 函式有兩個引數:編碼後的資料集和最小支援度閾值。use_colnames 引數設定為 True 以使用原始專案名稱而不是布林值。association_rules 函式有兩個引數:頻繁項集以及用於生成關聯規則的度量和最小閾值。在這個例子中,我們使用置信度度量,最小閾值為 0.5。

輸出

這段程式碼的輸出將顯示頻繁項集和生成的關聯規則。頻繁項集表示資料集中經常一起出現的一組專案,而關聯規則表示頻繁項集中的專案之間的關係。

Frequent Itemsets:
   support          itemsets
0   0.666667          (bread)
1   0.666667         (butter)
2   0.833333           (milk)
3   0.500000  (bread, butter)
4   0.500000    (bread, milk)
5   0.500000   (butter, milk)
Association Rules:
   antecedents    consequents    antecedent support    consequent support    support \
0   (bread)        (butter)            0.666667             0.666667           0.5
1   (butter)        (bread)            0.666667             0.666667           0.5
2   (bread)          (milk)            0.666667             0.833333           0.5
3   (milk)          (bread)            0.833333             0.666667           0.5
4   (butter)         (milk)            0.666667             0.833333           0.5
5   (milk)         (butter)            0.833333             0.666667           0.5


   confidence    lift    leverage    conviction    zhangs_metric
0     0.75      1.125     0.055556     1.333333      0.333333
1     0.75      1.125     0.055556     1.333333      0.333333
2     0.75      0.900    -0.055556     0.666667     -0.250000
3     0.60      0.900    -0.055556     0.833333     -0.400000
4     0.75      0.900    -0.055556     0.666667     -0.250000
5     0.60      0.900    -0.055556     0.833333     -0.400000

關聯規則挖掘是一種強大的技術,可以應用於許多不同型別的資料集。它通常用於市場購物籃分析以識別經常一起購買的產品,但它也可以應用於其他領域,例如醫療保健、金融和社交媒體。藉助 mlxtend 等 Python 庫,可以輕鬆實現關聯規則挖掘並從大型資料集中生成有價值的見解。

廣告