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

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

一、关联规则挖掘简介

关联规则挖掘是一种在大型数据集中发现项集之间有趣关系的方法。最著名的关联规则挖掘算法之一是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月前
|
人工智能 自然语言处理 语音技术
从“皮囊”到“灵魂”:构建实时交互型数字人的核心技术栈与实践
数字人已从银幕上的炫技特效,逐步走向直播、客服、教育等实时交互场景。作为一名开发者,如何理解并动手构建一个“能听、会说、能思考、有表情”的实时交互数字人?本文将为你拆解其背后的四大核心技术栈,并分享基于阿里云服务的架构实践,助你快速踏入数字人开发的大门。
|
网络协议 网络架构
TCP/IP协议中分包与重组原理介绍、分片偏移量的计算方法、IPv4报文格式
本文章讲述了什么是IP分片、为什么要进行IP分片、以及IP分片的原理及分析。分片的偏移量的计算方法,一个IPv4包前三个分片的示例。还讲述了IPv4表示字段的作用,标志位在IP首部中的格式以及各个标志的意义:.........
5378 0
TCP/IP协议中分包与重组原理介绍、分片偏移量的计算方法、IPv4报文格式
|
10月前
|
数据采集 存储 算法
终于有人把数据挖掘讲明白了
在大数据时代,许多企业面临一个难题:数据存储量庞大,却难以从中挖掘真正价值。本文深入探讨了数据挖掘的核心概念与实践方法,解析了其与普通数据分析的区别,并通过真实案例展示了如何通过数据挖掘发现隐藏的业务规律。文章还详细介绍了数据挖掘的六个步骤及三大关键点,强调了业务理解与数据质量的重要性,帮助企业在实际应用中少走弯路,真正实现数据驱动决策。
终于有人把数据挖掘讲明白了
|
机器学习/深度学习 数据采集 测试技术
Toad:基于 Python 的标准化评分卡模型(上)
在信贷的风控模型中最常用、最经典的可能要属评分卡了,所谓评分卡就是给信贷客户进行打分,按照不同业务场景可为贷前、贷中、贷后和反欺诈,一般叫做ABCF卡。模型得到分数,通过设置cutoff阈值给出评估结果,结果可直接用于通过或拒绝,或者用于策略应用。
2801 0
Toad:基于 Python 的标准化评分卡模型(上)
|
10月前
|
数据采集 人工智能 数据可视化
打造企业级调度系统的最佳实践---以百度热搜关键词为例
本教程详解如何构建自动化分析百度热搜关键词的系统,涵盖代理IP、多线程、任务调度等核心技术,助你打造高效稳定的数据采集引擎。
454 0
|
机器学习/深度学习 运维 数据挖掘
时间序列特征提取:18 种高效工具库及其应用分析
时间序列特征提取是数据科学的重要环节,可将原始数据转化为分析价值高的特征表示。本文介绍18个Python库,涵盖通用与专业领域(如医疗、金融)的特征提取工具。这些库包括tsfeatures、tsfresh、librosa等,各自针对特定任务(如预测、分类、异常检测)提供独特功能。通过结合不同库的特点,数据科学家能更高效地进行特征工程,提升模型性能与分析深度。文章总结了各库的优势及适用场景,为实际应用提供了全面指导。
874 0
舵机和电机
【11月更文挑战第12天】
499 3
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
341 4
Shutter Encoder(多媒体转换工具) v18.0中文免费版
Shutter Encoder是一款强力的免费视频转换器,基于ffmpeg,所以功能十分的强大,对于视频格式的支持也非常的完善,常用的格式基本都支持,除了转换功能,经常需要用到的视频画面大小调整、批量转换、视频裁切、视频裁剪功能都有。
711 3
|
编解码 测试技术 API
模拟手机设备:使用 Playwright 实现移动端自动化测试
本文介绍了使用Python的Playwright库进行移动设备模拟和自动化测试的方法。通过Playwright,开发者能模拟不同设备的硬件和软件特性,如屏幕尺寸、用户代理,以确保网站在移动设备上的表现。示例代码展示了如何模拟iPhone X并访问网站,之后可在此基础上编写测试代码以检验响应式布局和交互功能。Playwright的设备参数注册表支持多种设备,简化了移动端自动化测试的流程。