Matlab实现apriori算法

数据挖掘概念与技术 原书第三版 习题6.6

实现用apriori算法找出频繁项集。

代码可在Matlab R2018a中直接运行。

% 数据集
data = {['M', 'O', 'N', 'K', 'E','Y']; 
        ['D', 'O', 'N', 'K', 'E','Y']; 
        ['M', 'A', 'K', 'E']; 
        ['M', 'U', 'C', 'K', 'Y']; 
        ['C', 'O', 'O', 'K', 'I', 'E']};
% 设置最小支持度(和最小置信度)
min_sup = 0.6;     %min_conf = 0.8;

% 用cellfun函数将数据集中所有项转化为单个字符串,然后存储在一个字符串类型的数组str_data中,
str_data = cellfun(@(x) join(x,''),data,'UniformOutput',false);
                                             %使用join函数将每个单元格中的字符数组连接成一个单个字符串。

% 根据最小支持度获取频繁一项集
one_itemset = containers.Map;                        %创建对象one_itemset,用于存储每个项出现的次数
for i = 1:length(str_data)
    for j = 1:length(str_data{i})
        if isKey(one_itemset,str_data{i}(j))
            one_itemset(str_data{i}(j)) = one_itemset(str_data{i}(j)) + 1;
        else
            one_itemset(str_data{i}(j)) = 1;
        end
    end
end                                                    %遍历数据集中的每个字符串,对其中的每个字符进行计数
remove_item
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值