核心内容摘要
从反相器到模拟电路:设计实战中的关键考量
摘要先验算法Apriori是关联规则挖掘的经典算法由Agrawal和Srikant于1994年提出。
该算法通过自底向上的迭代方式发现频繁项集采用剪枝技术提高效率。
核心步骤包括生成候选项集、计算支持度、筛选频繁项集等。
示例展示了在鸢尾花数据集上应用该算法挖掘支持度≥30%的频繁项集。
该算法广泛应用于购物篮分析等领域帮助发现商品购买规律也可用于医疗、金融等场景的数据挖掘。
目录机器学习 - 先验算法Apriori Algorithm先验算法的核心步骤概述示例示例说明输出结果结果解读算法应用场景机器学习 - 先验算法Apriori Algorithm先验算法Apriori是机器学习中用于关联规则挖掘的经典算法旨在从交易数据库中发现频繁项集并基于这些项集生成关联规则。
该算法由拉克什・阿格拉沃尔Rakesh Agrawal和拉马库马尔・斯里坎特Ramakrishnan Srikant于 1994 年首次提出。
先验算法通过迭代扫描数据库逐步寻找规模递增的频繁项集采用 “自底向上” 的核心思路从单个物品开始逐步向候选项集中添加更多物品直到无法发现新的频繁项集为止。
同时算法还引入剪枝技术以减少需要验证的候选项集数量提升计算效率。
先验算法的核心步骤概述扫描数据库统计每个物品的支持度计数根据最小支持度阈值生成频繁 1 - 项集仅包含单个物品的频繁项集组合频繁 1 - 项集生成候选 2 - 项集再次扫描数据库计算每个候选 2 - 项集的支持度计数依据最小支持度阈值筛选出频繁 2 - 项集并剪枝掉非频繁的候选 2 - 项集重复步骤
持续生成候选 k - 项集与频繁 k - 项集直至无法发现新的频繁项集。
示例在 Python 中mlxtend库提供了先验算法的实现。
以下示例展示了如何结合mlxtend库与sklearn数据集在鸢尾花iris数据集上应用先验算法from mlxtend.frequent_patterns import apriori from mlxtend.preprocessing import TransactionEncoder from sklearn import datasets import pandas as pd # 补充必要的pandas库导入 # 加载鸢尾花数据集 iris datasets.load_iris() # 将数据集转换为交易列表每个交易代表一朵花的特征与标签 transactions [] for i in range(len(iris.data)): transaction [] # 添加花萼长度、花萼宽度、花瓣长度、花瓣宽度4个特征 transaction.append(sepal_length str(iris.data[i][0])) transaction.append(sepal_width str(iris.data[i][1])) transaction.append(petal_length str(iris.data[i][2])) transaction.append(petal_width str(iris.data[i][3])) # 添加目标标签花的品种类别 transaction.append(target str(iris.target[i])) transactions.append(transaction) # 使用独热编码对交易数据进行编码 te TransactionEncoder() te_ary te.fit(transactions).transform(transactions) df pd.DataFrame(te_ary, columnste.columns_) # 挖掘最小支持度为
3的频繁项集 frequent_itemsets apriori(df, min_support
3, use_colnamesTrue) # 打印频繁项集 print(frequent_itemsets)示例说明本示例中我们从sklearn加载鸢尾花数据集包含鸢尾花的特征与品种标签信息并将其转换为交易列表 —— 每个交易对应一朵花包含花萼长度、花萼宽度、花瓣长度、花瓣宽度 4 个属性值以及品种目标标签target。
随后通过独热编码对交易数据进行预处理最后使用mlxtend库的apriori函数挖掘出最小支持度为
3 的频繁项集。
输出结果plaintextsupport itemsets 0
333333 (target
1
333333 (target
2
333333 (target
结果解读输出结果显示数据集中存在 3 个频繁项集每个项集的支持度均为
3
33%即 1/3。
这表明数据集中 33% 的交易花朵样本包含标签target0对应鸢尾花的山鸢尾品种、33% 包含标签target1变色鸢尾品种、33% 包含标签target2维吉尼亚鸢尾品种。
算法应用场景先验算法广泛应用于购物篮分析用于识别消费者的购买行为模式。
例如零售商可通过该算法发现频繁一起购买的商品组合进而针对性地开展捆绑促销提升销售额。
此外该算法还可应用于医疗健康、金融、社交媒体等多个领域帮助从大规模数据中挖掘潜在规律、生成有价值的洞察。