当前位置: 首页 > news >正文

【每天一个知识点】使用 apriori() 函数获取频繁项集

基于 Python 的 mlxtend.frequent_patterns 模块,使用 apriori() 函数获取频繁项集的过程主要包括以下几个步骤:


当然可以,下面是使用 apriori() 获取频繁项集的每一句代码的含义解释:


🔧 1. 安装依赖库

pip install mlxtend

含义: 安装用于挖掘频繁项集和关联规则分析的 Python 库 mlxtend(Machine Learning Extensions)。


📦 2. 数据准备

import pandas as pd

含义: 导入 pandas 库,用于处理结构化数据。


dataset = [['牛奶', '面包', '饼干'],['牛奶', '尿布', '啤酒', '鸡蛋'],['面包', '黄油', '尿布', '牛奶'],['面包', '牛奶', '尿布', '啤酒'],['面包', '牛奶', '尿布', '鸡蛋']
]

含义: 定义一个事务型数据列表,每一行表示一位顾客的购买清单,是 Apriori 算法的输入形式(事务集)。


from mlxtend.preprocessing import TransactionEncoder

含义:mlxtend 中导入 TransactionEncoder,用于将事务型数据转换为适合算法处理的格式。


te = TransactionEncoder()

含义: 创建一个 TransactionEncoder 对象,用于“编码”交易数据。


te_ary = te.fit(dataset).transform(dataset)

含义:

  • .fit(dataset):识别所有出现过的商品名称;

  • .transform(dataset):将每个事务转成布尔型数组(True/False),表明每个商品是否出现在某一事务中。


df = pd.DataFrame(te_ary, columns=te.columns_)

含义: 将布尔型数组转为 pandas 的 DataFrame 表格,每列为一个商品,行为一个事务,True/False 表示有/没有购买。


⚙️ 3. 调用 Apriori 算法

from mlxtend.frequent_patterns import apriori

含义: 导入 apriori 函数,用于生成频繁项集。


frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

含义:

  • df:传入经过编码的数据;

  • min_support=0.5:设置最小支持度阈值为 50%,即只保留出现在 50% 以上交易中的项集;

  • use_colnames=True:显示商品名称而非索引数字;

  • frequent_itemsets:保存频繁项集的结果(包括支持度和项集本身)。


print(frequent_itemsets)

含义: 输出频繁项集结果表格,显示每个项集及其支持度。


4. 可选步骤:生成关联规则

from mlxtend.frequent_patterns import association_rules

含义: 导入 association_rules 函数,用于从频繁项集中挖掘有意义的“如果A就可能B”的规则。


rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

含义:

  • frequent_itemsets 中生成关联规则;

  • metric="confidence":以“置信度”为衡量指标;

  • min_threshold=0.7:只保留置信度 ≥ 70% 的规则;

  • rules:保存规则的DataFrame,包含前件(antecedent)、后件(consequent)及其指标(支持度、置信度、提升度等)。


print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

含义: 输出结果中每条规则的:

  • antecedents:前件(如果买了...)

  • consequents:后件(那么也可能买...)

  • support:规则中项集出现的比例

  • confidence:前件出现时后件也出现的概率

  • lift:提升度,衡量项集之间的关联强度


Apriori 频繁项集与关联规则挖掘完整脚本(Python + mlxtend)

# 安装依赖包(如果未安装)
# pip install mlxtend pandasimport pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules# 1. 定义交易数据(事务型列表)
dataset = [['牛奶', '面包', '饼干'],['牛奶', '尿布', '啤酒', '鸡蛋'],['面包', '黄油', '尿布', '牛奶'],['面包', '牛奶', '尿布', '啤酒'],['面包', '牛奶', '尿布', '鸡蛋']
]# 2. 使用 TransactionEncoder 进行数据编码
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)# 3. 使用 Apriori 算法挖掘频繁项集
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
print("【频繁项集】")
print(frequent_itemsets)# 4. 生成关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
print("\n【关联规则】")
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

相关文章:

  • 论广告系统对存算分离架构的应用
  • 代码随想录算法训练营第60期第二十八天打卡
  • 1ms城市算网稳步启航,引领数字领域的“1小时经济圈”效应
  • C++复习
  • 老牌即时通讯应用Skype被关闭,卒年22岁!
  • 2024 ICPC武汉邀请赛暨湖北省赛 题解
  • [特殊字符]【深度解析】Transformer革命:《Attention Is All You Need》完全解读
  • 数据初步了解
  • Excel Vlookup
  • Flutter 布局
  • Java 内存区域与内存溢出异常
  • 数据结构 --- 栈
  • AI 数字短视频数字人源码开发实用技巧分享​
  • 19.第二阶段x64游戏实战-vector容器
  • Navicat Premium 17 备份,还原数据库(PostGreSql)
  • 第四节:进程控制
  • cookie/session的关系
  • Python基础学习-Day17
  • 第九章,链路聚合和VRRP
  • 编码器型与解码器型语言模型的比较
  • 央行:今日起下调再贷款利率0.25个百分点
  • 中国人民银行:5月8日起降息,15日起降准
  • 李云泽:将加快出台与房地产发展新模式相适配的系列融资制度
  • 中南财经政法大学法学院党委副书记易育去世,终年45岁
  • 国防部新闻发言人就日本民用飞机侵闯中国钓鱼岛领空答记者问
  • 美股三大指数均收涨超1%,热门中概股强势拉升