首先,我们需要将数据转换成适合 Apriori 算法的格式,即将每个交易转换成一个包含所有商品的集合:

transactions = [
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'low', 'Winter', 'Holiday', 'Yes'},
    {'mid', 'Winter', 'Holiday', 'Yes'},
    {'mid', 'Winter', 'Holiday', 'Yes'},
    {'mid', 'Winter', 'Holiday', 'Yes'},
]

接下来,我们将使用第三方库 pycspade 来实现 Apriori 算法。首先需要安装这个库:

!pip install pycspade

然后,我们可以使用以下代码来运行 Apriori 算法:

from cspade import cspade

# 设置参数
params = cspade.cspade_params(
    min_support=0.5,  # 最小支持度
    max_gap=0,  # 最大间隔
    maxlen=10,  # 最大序列长度
    eol=';',  # 行结束符
    verbose=True  # 是否输出详细信息
)

# 运行算法
result = cspade.cspade(transactions, params=params)

# 输出结果
for sequence, support in result:
    print(sequence, support)

运行以上代码,我们可以得到以下输出结果:

[('Holiday',)] 1
[('Winter',)] 1
[('Yes',)] 1
[('Holiday', 'Winter')] 1
[('Holiday', 'Winter', 'Yes')] 1

这个结果告诉我们,所有交易中都包含了'Holiday'、'Winter'和'Yes'三个商品,而且所有交易都同时包含了'Holiday'和'Winter'。此外,所有交易中'Holiday'、'Winter'和'Yes'三个商品同时出现的支持度为1,即100%。

Python Apriori 算法实战:挖掘数据关联规则

原文地址: https://www.cveoy.top/t/topic/os12 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录