Apriori 算法分析

本文介绍了如何运用Apriori算法进行关联规则挖掘,以0.06的支持度和0.2的置信度对杂货店商品数据集进行分析。数据集可以从提供的百度网盘链接下载,提取码为vvym。
摘要由CSDN通过智能技术生成

Apriori 算法分析:
利用my_new_apriori.py文件,对杂货店商品进行关联规则挖掘,支持度=0.06,置信度=0.2
使用的数据集:
数据集
数据集下载地址:
链接:https://pan.baidu.com/s/14Vgvv5OK-luwTgoEZozbRw
提取码:vvym

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 22 10:21:02 2019

@author: Administrator
"""
import pandas as pda
import numpy as np

#定义函数data_set装载数据集
def load_data_set():
    '''
    定义数据集data_set列表:每一个列表中又包含了一些列表,这些列表表示事物数据库中的每一次交易,
    每个小列表表示的是每一次交易中所包含的产品项
    '''
    #读取文件数据,且数据中不包含数据的表头,所以header = None
    filename = r'E:\杂货店商品.xlsx'
    data_x = pda.read_excel(filename,header = None)#默认打开Sheet1
    #用空格将所读取文件中的NaN进行替换
    data_x = data_x.fillna('')
    #将所得到的的data_x处理成为数组之后再将其类型转换为字符串类型
    train_data = np.array(data_x).astype(str)
    #再将数组train_data转换为列表赋值给data_set
    data_set = train_data.tolist()
    #针对数据集中的每一笔交易i进行处理
    for i in data_set:
        while "" in i:
            i.remove("")
    return data_set  
   

def create_C1(data_set):
    """
    Create frequent candidate 1-itemset C1 by scaning data set.
    Args:
        data_set: A list of transactions. Each transaction contains several items.
    Returns:
        C1: A set which contains all frequent candidate 1-itemsets
    """
    #定义一个空集合C1
    C1 = set()
    #针对传入函数的数据集data_set中的每一项事务例如:t = ['l1', 'l2', 'l5']
    for t in data_set:
        #针对事物数据库中的每一项事务例如:['l1', 'l2', 'l5']中的一个元素item = ’l1‘
        for item in t:
            '''
            由于要使用字典(support_data)记录项集的支持度,需要用项集作为key,
            而可变集合无法作为字典的key,因此在这里应将项集转为固定集合frozenset
            '''
            item_set = frozenset([item])
            #将上一步所得到的item_set加入到集合C1里面
            C1.add(item_set)
            '''
            因为集合中是不可能产生重复元素的,所以C1最后得到的结果集就是C1(l1,l2,l3,l4,l5)
            这样就得到了事务数据库中的一阶候选项集
            '''
    return C1

#利用函数is_apriori和k-1阶的频繁项集对所得到的的一个个k阶候选项集Ck_item进行剪枝
def is_apriori(Ck_item, Lksub1):
    """
    Judge whether a frequent candidate k-itemset satisfy Apriori property.
    Args:
        Ck_item: a frequent candidate k-itemset in Ck which contains all frequent
                 candidate k-itemsets.
        Lksub1: Lk-1, a set which contains all frequent candidate (k-1)-itemsets.
    Returns:
        True: satisfying Apriori property.
        False: Not satisfying Apriori property.
    """
    #扫描函数create_Ck中所传过来的参数Ck_item<k阶候选项集>中的每一个元素
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值