关联规则挖掘是一种在大型数据集中发现项集之间有趣关系的方法。

简介: 关联规则挖掘是一种在大型数据集中发现项集之间有趣关系的方法。

一、关联规则挖掘简介

关联规则挖掘是一种在大型数据集中发现项集之间有趣关系的方法。最著名的关联规则挖掘算法之一是Apriori算法,它用于从交易数据(如超市购物篮分析)中找出商品之间的关联关系。关联规则挖掘的结果通常表示为形如“如果购买了A,那么很可能也会购买B”的规则。

二、Python代码示例

首先,确保您已经安装了mlxtend库。如果没有,请使用pip进行安装:

pip install mlxtend

接下来,我们将使用mlxtend.frequent_patterns模块中的apriori()association_rules()函数来挖掘关联规则。

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

# 示例数据集:超市购物篮数据
# 每行代表一个交易,每列代表一个商品(用整数或字符串表示)
dataset = [
    ['牛奶', '洋葱', '营养麦片', '鸡蛋'],
    ['啤酒', '尿布', '牛奶'],
    ['尿布', '啤酒', '鸡蛋', '橙汁'],
    ['牛奶', '尿布', '啤酒', '鸡蛋'],
    ['尿布', '啤酒'],
    # ... 更多交易数据
]

# 将数据集转换为one-hot编码的DataFrame
def encode_units(dataset):
    return pd.get_dummies(pd.DataFrame(list(map(frozenset, dataset))))

# 编码数据集
df = encode_units(dataset)

# 使用Apriori算法找出频繁项集
min_support = 0.2  # 最小支持度,表示项集在所有交易中出现的频率阈值
frequent_itemsets = apriori(df, min_support=min_support, use_colnames=True)

# 打印频繁项集
print("Frequent Itemsets:")
print(frequent_itemsets)

# 使用association_rules函数从频繁项集中生成关联规则
metric = "lift"  # 使用提升度(lift)作为评估指标
rules = association_rules(frequent_itemsets, metric=metric, min_threshold=1)

# 打印关联规则
print("\nAssociation Rules:")
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

三、代码解释

  1. 导入必要的库:首先,我们导入了pandas库来处理数据,以及mlxtend.frequent_patterns模块中的apriori()association_rules()函数。
  2. 准备数据集:我们创建了一个示例数据集,其中包含超市购物篮的交易数据。每个交易都是一个商品列表。
  3. 数据编码:由于Apriori算法需要one-hot编码的数据,我们定义了一个encode_units()函数来将原始数据集转换为one-hot编码的DataFrame。这里使用了pandasget_dummies()函数和frozenset来确保商品顺序不影响编码结果。
  4. 找出频繁项集:使用apriori()函数找出满足最小支持度阈值的频繁项集。支持度是项集在所有交易中出现的频率。通过调整min_support参数,我们可以控制频繁项集的严格程度。
  5. 生成关联规则:使用association_rules()函数从频繁项集中生成关联规则。该函数接受频繁项集作为输入,并输出包含前件(antecedents)、后件(consequents)、支持度(support)、置信度(confidence)和提升度(lift)等信息的关联规则。这里我们选择提升度作为评估指标,并设置最小阈值为1(即只输出提升度大于1的规则)。
  6. 打印结果:最后,我们打印出频繁项集和关联规则。频繁项集显示了哪些商品组合是频繁的,而关联规则则进一步揭示了这些商品组合之间的关联关系。

四、关联规则评估指标

  • 支持度(Support):表示项集在所有交易中出现的频率。支持度越高,表示该项集越常见。
  • 置信度(Confidence):表示在包含前件的交易中,也包含后件的概率。置信度越高,表示规则越可靠。
  • 提升度(Lift):表示包含前件和后件的交易频率与不包含前件时包含
    处理结果:

    一、关联规则挖掘简介

    关联规则挖掘是一种在大型数据集中发现项集之间有趣关系的方法。最著名的关联规则挖掘算法之一是Apriori算法,它用于从交易数据(如超市购物篮分析)中找出商品之间的关联关系。关联规则挖掘的结果通常表示为形如“如果购买了A,那么很可能也会购买B”的规则。

    二、Python代码示例

    首先,确保您已经安装了mlxtend库。如果没有,请使用pip进行安装:
    bashpython

    示例数据集:超市购物篮数据

    ['牛奶', '洋葱', '营养麦片', '鸡蛋'],
    ['啤酒', '尿布', '牛奶'],
    ['尿布', '啤酒', '鸡蛋', '橙汁'],
    ['牛奶', '尿布', '啤酒', '鸡蛋'],
    ['尿布', '啤酒'],

    ... 更多交易数据

    将数据集转换为one-hot编码的DataFrame

    return pd.get_dummies(pd.DataFrame(list(map(frozenset, dataset))))

    编码数据集

    使用Apriori算法找出频繁项集

    打印频繁项集

    使用association_rules函数从频繁项集中生成关联规则

    打印关联规则

  1. 导入必要的库:首先,我们导入了pandas库来处理数据,以及mlxtend.frequent_patterns模块中的apriori()association_rules()函数。
    准备数据集:我们创建了一个示例数据集,其中包含超市购物篮的交易数据。每个交易都是一个商品列表。
    数据编码:由于Apriori算法需要one-hot编码的数据,我们定义了一个encode_units()函数来将原始数据集转换为one-hot编码的DataFrame。这里使用了pandasget_dummies()函数和frozenset来确保商品顺序不影响编码结果。
    找出频繁项集:使用apriori()函数找出满足最小支持度阈值的频繁项集。支持度是项集在所有交易中出现的频率。通过调整min_support参数,我们可以控制频繁项集的严格程度。
    生成关联规则:使用association_rules()函数从频繁项集中生成关联规则。该函数接受频繁项集作为输入,并输出包含前件(antecedents)、后件(consequents)、支持度(support)、置信度(confidence)和提升度(lift)等信息的关联规则。这里我们选择提升度作为评估指标,并设置最小阈值为1(即只输出提升度大于1的规则)。
    打印结果:最后,我们打印出频繁项集和关联规则。频繁项集显示了哪些商品组合是频繁的,而关联规则则进一步揭示了这些商品组合之间的关联关系。

    四、关联规则评估指标

  • 支持度(Support):表示项集在所有交易中出现的频率。支持度越高,表示该项集越常见。
相关文章
|
6月前
|
数据可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
|
3月前
|
机器学习/深度学习 算法
【机器学习】不同决策树的节点分裂准则(属性划分标准)
决策树的不同节点分裂准则,包括原始决策树的节点分裂准则、ID3算法的信息增益、C4.5算法的信息增益比以及CART算法的平方根误差最小化和基尼指数。
53 1
|
6月前
|
数据可视化 算法 数据挖掘
R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据
R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据
|
6月前
|
存储 移动开发 算法
SPSS用KMEANS(K均值)、两阶段聚类、RFM模型在P2P网络金融研究借款人、出款人行为数据规律
SPSS用KMEANS(K均值)、两阶段聚类、RFM模型在P2P网络金融研究借款人、出款人行为数据规律
|
6月前
|
机器学习/深度学习 数据可视化
数据分享|R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据
数据分享|R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据
|
6月前
|
数据可视化
R语言Copula模型分析股票市场板块相关性结构
R语言Copula模型分析股票市场板块相关性结构
|
机器学习/深度学习 数据采集 索引
探索数据的维度:多元线性回归在实际应用中的威力
探索数据的维度:多元线性回归在实际应用中的威力
|
机器学习/深度学习 人工智能 算法
数据挖掘18大算法实现以及其他相关经典DM算法:决策分类,聚类,链接挖掘,关联挖掘,模式挖掘。图算法,搜索算法等
数据挖掘18大算法实现以及其他相关经典DM算法:决策分类,聚类,链接挖掘,关联挖掘,模式挖掘。图算法,搜索算法等
|
算法 Python
转:Apriori算法,挖掘数据集中项集的关联规则学习经典
Apriori算法是一种用于挖掘数据集中频繁项集的关联规则学习的经典算法。它基于“Apriori原理”,即如果一个项集是频繁的,那么它的所有子集也必须是频繁的。该算法通过不断生成新的频繁项集来实现。
99 0
下一篇
无影云桌面