精华内容
下载资源
问答
  • 大家觉得不错的话,可以给博客点个赞 数据挖掘之关联分析-数据集 关联分析是从大量数据中发现项集之间有趣的关联和相关联系,而关联分析的最终目标就是要找出强关联规则。
  • 毕设题是在spark上实现关联分析,求问有没有人有购物篮的相关数据集(大概需要上万条记录),或者可不可以教教我怎么在KDD,SIGIR等相关数据 挖掘会议网站上找数据集,哭TAT...完全无从下手,and我要的数据集应该是...
  • 数据挖掘关联规则分析数据集

    热门讨论 2015-10-26 11:55:48
    这是两个关于关联规则挖掘的合成数据集,数据量在10万左右,适用于关联规则分析
  • 代码链接:github代码 ...2.分析数据集: 给定的数据包含两个sheet,第一个为解释文档,第二个为真实数据集,该数据集包含4998行数据,第一列是用户编号,后面分别为Clothing, House wares, Health, Automotive, P

    代码链接:github代码

    1.任务目标

    针对所提供的CatalogCrossSell.xls数据集,要求对该数据及进行关联规则分析,并且解释生成的结果,评价指标包括lift,ratio, confidence, support等,并且最后根据这些结果为Exeter做出合理建议:

    2.分析数据集:

    给定的数据包含两个sheet,第一个为解释文档,第二个为真实数据集,该数据集包含4998行数据,第一列是用户编号,后面分别为Clothing,
    House wares, Health, Automotive, Personal electronics, Computers, Garden, Novelty gift, Jewelry一共9列,主要利用这些列的数据进行关联规则分析。

    3.数据预处理:

    删除无关解释文档的sheet,删除文件中的空列,由于用户编号实际没有较大用处,在这里删除用户编号,并且为其重新编号0-4997。上述操作均在Python中进行。

    在这里插入图片描述

    4.建立关联规则方法进行分析:

    (调用mlxtend进行数据分析,代码见附件CatalogCrossSell.ipynb,每一步处理后的数据文件见附件)

    1. Apriori 方法:

    设置min_support=0.1, 它指的是关联规则占总的关联规则的最小比例,如果小于的直接忽略。
    最后得到相应的关联规则及其它对应的支持度,共36条(apr_result.csv)。
    在这里插入图片描述
    对于以上给出的规则组合,生成关联规则,原本设置显示置信度大于0.7的关联规则展示如下(apr_con_asso.csv):

    在这里插入图片描述
    一共23条规则结果满足要求,第一列是antecedents,事先购买的产品类型;第二列是consequents,为给出的结果;后面几列为计算得到的相关支持度,置信度,lift等数据,具体计算如下:

    • support(A->C) = support(A+C) [aka ‘support’], range: [0, 1]
    • confidence(A->C) = support(A+C) / support(A), range: [0, 1]
    • lift(A->C) = confidence(A->C) / support©, range: [0, inf]
    • leverage(A->C) = support(A->C) - support(A)*support©, range: [-1, 1]
    • conviction = [1 - support©] / [1 - confidence(A->C)], range: [0, inf]

    如图给出的是置信度大于0.7的结果,可以看到推荐的结果大量集中在‘Health Products Division’,说明给出的数据集中大部分用户都选择了这一款,如果按照这种推荐方法,不论事先购买了哪种产品,都会选择这一类产品,推荐意义不大。
    因此后面我们选择采用lift参数做过滤,设置lift>1.4的规则结果展示出来,有以下结果(apr_lift_asso.csv):

    在这里插入图片描述
    共52条结果,该结果的分布比较均衡,在各种情况下都有相应的推荐。例如对第30条结果规则,如果用户事先购买了’Health Products Division’, ‘Novelty Gift Division’, ‘Personal Electronics Division’,则推荐该用户购买’Housewares Division’,该方法的支持度为0.108,置信度0.638,lift为1.62,推荐的结果较为合理。

    1. FP-growth 方法

    设置min_support=0.1,最后得到相应的关联规则及其它对应的支持度,共36条(fpg_result.csv)。

    在这里插入图片描述
    对于以上给出的规则组合,生成关联规则,原本设置显示置信度大于0.7的关联规则展示如下(fpg_con_asso.csv):

    在这里插入图片描述
    一共23条规则结果满足要求,跟刚才方法结果一样,推荐的结果大量集中在‘Health Products Division’,推荐意义不大。
    后面我们仍然选择采用lift参数做过滤,设置lift>1.4的规则结果展示出来,有以下结果(fpg_lift_asso.csv):
    在这里插入图片描述
    共53条结果,该结果的分布比较均衡,在各种情况下都有相应的推荐。例如对第47条结果规则,如果用户事先购买’Jewelry Division’, ‘Health Products Division’, ‘Personal Electronics Division’,则推荐该用户购买’Housewares Division’,该方法的支持度为0.132,置信度0.669,lift为1.699,推荐的结果较为合理。

    通过两种方法的对比分析,可以看到有一些推荐结果会同时出现,例如Apriori方法的第30条数据和FP-growth方法的第20条数据。其中,相对来说,很难直接判断两种方法的好坏,FP-growth方法的运行速度会高于Apriori方法,但本题数据量不是特别大,差异也不是很明显。由于都是采用关联规则推荐,推荐的结果两者有重叠的部分,也有一些微小的差别,但总体来说,都能够基本符合预期结果,为商家提供有效建议。

    # 代码片段
    import numpy as np
    import pandas as pd
    from mlxtend.frequent_patterns import apriori, fpgrowth
    from mlxtend.frequent_patterns import association_rules
    
    data = pd.read_excel('CatalogCrossSell.xls')
    # data = data.set_index('Customer Number')
    data.drop(columns = 'Customer Number', inplace = True)
    
    apr_result = apriori(data, min_support = 0.1, use_colnames = True)
    

    代码链接:github代码

    如果感觉对你有所帮助,不妨点个赞,关注一波,激励博主持续更新!

    展开全文
  • 关联分析中的Groceries数据集

    万次阅读 2015-11-26 15:40:30
    用Apriori、FP Growth、eclat算法进行关联分析时中,常常用到Groceries数据集,该数据集是某个杂货店一个月真实的交易记录,共有9835条消费记录,139个商品。在开源软件RGui的arules程序包里含有Groceries数据集,...

      用Apriori、FP Growth、eclat算法进行关联分析时中,常常用到Groceries数据集,该数据集是某个杂货店一个月真实的交易记录,共有9835条消费记录,169个商品。在开源软件RGui的arules程序包里含有Groceries数据集,保存格式是.rda,如图(1)所示:

    这里写图片描述
    图(1) Groceries数据集存放在: ..\R\R-2.15.3\library\arules\data

      下面,进行Grocerices数据集的导出到Groceries.csv中,详细步骤如下。
      1)打开RGui,点击【文件】–》新建程序脚本 –》命名为:groceries.R ,代码如下:
      //groceries.R

    ##加载程序包
    library(arules)
    library(Matrix)
    
    ##加载Groceries数据集
    data(Groceries)
    
    ##Groceries数据集的类型
    typeof(Groceries)
    ##将S4类型转换为data.frame类型
    cc <- as(Groceries,'data.frame')
    
    
    ##设置RGui的工作路径
    setwd("G:\\myProject\\RDoc\\Unit1")
    ##导出Groceries数据集
    write.csv(cc,"Groceries.csv")

      2)选中groceries.R中的全部代码,点击工具栏上的这里写图片描述,如图(2)所示:
      

    这里写图片描述
    图(2) 执行.R脚本

      3)在G:\myProject\RDoc\Unit1目录,就得到了Groceries.csv数据集,效果如下:
      
    这里写图片描述
    图(3) Groceries数据集里的内容,有9835行,169列

      Groceries数据集下载地址:
      http://download.csdn.net/detail/sanqima/9301589

    展开全文
  • Apriori关联分析python实现(含数据集),结构清晰易懂
  • 关联规则商品销售数据集,描述一个商店的商品销售记录,用于数据挖掘与机器学习。
  • 数据挖掘之关联分析

    千次阅读 2016-08-11 22:52:30
    数据挖掘之关联分析最近由于项目的原因,需要对伴随车辆进行检查,因此了解和掌握了关联分析,现在抽空进行整理,本文将以简单例子开始,一步一步讲述关联分析的概念,过程及方法。 购物篮分析 关联分析 Aprior算法 ...

    最近由于项目的原因,需要对伴随车辆进行检查,因此了解和掌握了关联分析,现在抽空进行整理,本文将以简单例子开始,一步一步讲述关联分析的概念,过程及方法。

    • 购物篮分析
    • 关联分析
    • Aprior算法
    • FPGrowth算法

    购物篮分析

    关联分析中最为经典的用法:某超市通过对大量用户购物清单数据进行分析后发现:购买尿布的顾客,往往都会购买啤酒。因此重新调整尿布和啤酒的位置,结果使得两个商品的销量大增。

    下面是购物清单示例:

    单号 商品
    001 尿布,啤酒,鸡蛋
    002 可乐,火腿
    003 尿布,啤酒,火腿
    004 尿布,啤酒,可乐

    对此清单进行关联分析,发现关联规则 {尿布} –> {啤酒},就意味着“购买尿布的顾客,有很大的可能购买啤酒”,虽然这并不是必然的,但存在很大的可能性。

    关联分析

    在了解关联分析前,先了解下面的一些名词定义:

    • 事务: 每一项交易就是一个事务,上图中有4个事务。
    • 项: 交易中的每个元素就是一个项,如“尿布”就是项。
    • 项集: 包含至少一个项的集合,如{尿布},{尿布,啤酒}
    • K-项集: 包括K个项的集合,如{尿布}是1-项集,{尿布,啤酒}是2-项集
    • 支持度计数:某个项集出现在N个事务中,则其支持度计数为N,如{尿布,啤酒}的支持度计数为3
    • 支持度: 某个项集的支持度计数除以总事务数,则为支持度,如项集{尿布,啤酒}的支持度为 3/4 = 75%
    • 频繁项集:设定支持度阈值为N,那么支持度大于等于N的项集为频繁项集,假设阈值为50%,那么项集{尿布,啤酒}的支持度 75% > 50%,则该项集为频繁项集。
    • 前件和后件:对于规则{尿布} –> {啤酒},{尿布}是前件,{啤酒}是后件。
    • 置信度:对于规则{尿布} –> {啤酒},项集{尿布,啤酒}的支持度计数为N,项集{尿布}的支持度为M,则N/M为该规则的置信度。
    • 关联规则:设定一个置信度阈值N,置信度大于等于N的规则即为关联规则。

    关联分析的主要目的是找到关联规则,主要分为两个步骤:
    1. 设定支持度阈值,从数据集中找到所有的频繁项集。
    2. 设定置信度阈值,从频繁项集中提取关联规则。

    相信大家看完上面的介绍,应该基本了解关联分析的一些概念及原理了,下面介绍两种频繁集挖掘算法。

    频繁项集挖掘

    要从大量数据中挖掘出频繁项集来,光靠蛮力是不行的,数据挖掘届已经有了一些经典的算法,当前只介绍两个最经典的算法Aprior和FPGrowth,不过在介绍算法前,先介绍两个较为重要的规则:

    1. 频繁项集的子集,肯定也是频繁项集。
    2. 非频繁项集的超集,肯定也是非频繁项集。

    Aprior算法

    Aprior算法的思路是先找到候选集,然后在其中筛选出频繁集。它采用了分层迭代的方法,简单描述如下:

    先找到1-项集作为候选集A1,然后在其中筛选出1-项集的频繁集B1;再根据B1选定2-项集的候选集A2,然后在A2中筛选出2-项集的频繁集B2,…….如此迭代下去。

    由于Aprior算法需要频繁扫描数据集,因此在数据量较大的时候,该算法的效率较差。

    FPGrowth算法

    FPGrowth算法的思路是扫描数据集,将其映射成FP-Tree,然后从FP-Tree里面筛选出频繁集来。
    FPGrowth需要扫描两次数据集,后续操作均在内存中,因此效率较高,但也存在问题是当数据量大到一定程度时,内存可能成为瓶颈,好在目前Spark的MLLib模块支持FPGrowth算法,我们可以利用Spark进行分布式并行计算。

    说明

    对于APrior算法和FPGrowth算法细节,后续有时间补上。
    对于关联规则的提取方式,后续有时间补上。

    展开全文
  • 使用Python进行数据关联分析

    万次阅读 多人点赞 2018-03-01 14:43:21
    关联分析属于数据挖掘的一大类。我发现的python语言实现的包有两个: pymining:根据Apriori算法进行关联规则挖掘 Orange3的关联规则库:根据FP-growth算法进行关联规则挖掘 经过分析,我决定使用Oranges...

    关联分析

    选择函数包

    关联分析属于数据挖掘的一大类。我发现的python语言实现的包有两个:

    经过分析,我决定使用Oranges进行关联规则的实现,原因如下:

    • FP-growth算法比Apriori算法时间复杂度低
    • Orange3是一整套数据挖掘工具包,学习后可以熟悉相关操作,进行其他的数据挖掘算法的研究
    • pymining不再维护,Orange3仍然是一个非常活跃的包,更新频繁
    • Orange3实现的结果比较多,除了规则外,还能够计算出评价结果的相关数据

    注意:Orange3的关联分析模块安装时需要在Anaconda的命令行窗口中输入以下命令pip install orange3-associate

    数据输入

    对于使用函数包来说,我们不用管函数实现的方法,只有研究数据输入的格式即可。

    Orange3的关联规则输入支持两种形式:

    • 布尔类型
    • 字符串类型

    对于布尔类型

    每一个行向量代表一个属性是否存在的数据结构

    >>> X
    array([[False,  True, ...,  True, False],
           [False,  True, ...,  True, False],
           [ True, False, ..., False, False],
           ...,
           [False,  True, ...,  True, False],
           [ True, False, ..., False, False],
           [ True, False, ..., False, False]], dtype=bool)
    

    比如上面的数据X,注意这个array(属于numpy里面的多维数组)。类型一定是bool才行。
    这个二维数组每一个行的维度都是一样的,这样得到的规则结果就是纯粹数组直接的关联
    规则,我们要自己讲对于规则的数字和属性名称对于起来。
    比如结果可能是这样:

    >>> rules
        [(frozenset({17, 2, 19, 20, 7}), frozenset({41}), 41, 1.0),
         (frozenset({17, 2, 19, 7}), frozenset({41}), 41, 1.0),
         ...
         (frozenset({20, 7}), frozenset({41}), 41, 1.0),
         (frozenset({7}), frozenset({41}), 41, 1.0)]
    

    对于字符串类型

    这里我们输入就不要求每个数据的维度相同了,我们仅仅把出现的属性字符给输入进去即可。
    比如下面的例子,我把上次爬虫得到的数据
    进行关联规则分析。

    输入数据的excel表格为NS_new.xls,表格内容截图如下:

    Nature爬虫得到的数据

    我们可以看到,我们一共有ArticleTagReceivedTimePublishedTimeTimeIntervalReferencesNumCountry
    6个属性。其中TimeInterval属性为空,用来填写PublishedTimeReceivedTime属性之间的时间差的数据。因为我们想要分析
    时间差和其他属性之间的关联关系,而不是“接收时间”与“发表时间”与其他属性之间的关联关系。

    时间差需要操作两个列属性,而且两个列属性之间的减法是时间日期相关的操作,涉及到每个月份不一样,最好能之间调用系统的函数。
    这样就需要自己考虑年月之间的详细变化了,下面之间使用Datafram里面的apply函数进行列的操作,具体apply函数的总结放到明天

    import pandas as pd
    import datetime   #用来计算日期差的包
    import orangecontrib.associate.fpgrowth as oaf  #进行关联规则分析的包
    
    def getInterval(arrLike):  #用来计算日期间隔天数的调用的函数
        PublishedTime = arrLike['PublishedTime']
        ReceivedTime = arrLike['ReceivedTime']
    #    print(PublishedTime.strip(),ReceivedTime.strip())
        days = dataInterval(PublishedTime.strip(),ReceivedTime.strip())  #注意去掉两端空白
        return days
    
    if __name__ == '__main__':    
        fileName = "NS_new.xls";
        df = pd.read_excel(fileName) 
        df['TimeInterval'] = df.apply(getInterval , axis = 1)
    

    计算完成后,所有需要分析的数据都在df里面了。

    对输入数据进行编码

    有了数据之后,我们先要对原始数据进行编码。
    ArticleTag属性,其本身的字符串就可代表对应的类别,因此不用处理。
    ReceivedTimePublishedTime属性是生产TimeInterval属性值得因此,不用处理。
    TimeInterval属性根据具体计算结果确定,经过观察,使用如下规则:

    • 超过三百天为:TimeInterval_300
    • 二百到三百天为:TimeInterval_200_300
    • 一百到二百天为:TimeInterval_100_200
    • 零到一百天为:TimeInterval_0_100

    ReferencesNum的编码和TimeInterval类似。
    Country直接使用国家字符串即可。

    我们需要将数据放入到一个列表中用来分析,每个列表的一行代表一个数据输出的项目,设该列表名字是listToAnalysis
    则生成该列表的代码如下:

    listToAnalysis = []
        listToStore = []
        for i in range(df.iloc[:,0].size):             #df.iloc[:,0].size
            #处理ArticleTag段位
            s = df.iloc[i]['ArticleTag']
            #s = re.sub('\s','_',s.split('/')[1].strip())
            s = s.strip()
            s = 'ArticleTag_'+s
            listToStore.append(s)
            #处理TimeInterval段位
            s = df.iloc[i]['TimeInterval']
            if s > 300:
                s = 'TimeInterval_'+'300'
            elif s > 200 and s <= 300:
                s = 'TimeInterval_'+'200_300'
            elif s > 100 and s <= 200:
                s = 'TimeInterval_'+'100_200'
            elif s <= 100:
                s = 'TimeInterval_'+'0_100'
            listToStore.append(s)
            #处理ReferencesNumber段位
            s = df.iloc[i]['ReferencesNumber']
            if s > 80:
                s = 'ReferencesNumber'+'80'
            elif s > 60 and s <= 80:
                s = 'ReferencesNumber'+'60_80'
            elif s > 40 and s <= 60:
                s = 'ReferencesNumber'+'40_60'
            elif s > 20 and s <= 40:
                s = 'ReferencesNumber'+'20_40'
            elif s > 0 and s <= 20:
                s = 'ReferencesNumber'+'0_20'
            listToStore.append(s)
            #处理Country段位
            s = df.iloc[i]['Country']
            s = 'Country_'+s.strip()
            listToStore.append(s)
            #print(listToStore)
            listToAnalysis.append(listToStore.copy())
            listToStore.clear()
    

    使用关联相关的函数进行数据处理

    将输入数据的格式完成之后,就可以使用关联规则函数进行数据挖掘了。
    进入函数说明文档页面

    首先看第一个函数fpgrowth.frequent_itemsets(X, min_support=0.2)
    这个函数代表计算给定支持度下得到的频繁项集,返回的是一个频繁项集的列表生成器。

    • X代表输入的数组类型的数据(list or numpy.ndarray or scipy.sparse.spmatrix or iterator))
    • min_support代表关联规则设置的置信度,默认为0.2

    注意:该函数返回的列表生成器只能使用一次,我在这里调试时出了好多次错误,每次用完后我调用这个生成器,
    然后总是得到空集,所以干脆直接返回值包上字典函数dict并返回给变量itemsets,这样可以多次使用

    由于输入必须是整数,因此这里需要把所有字符串进行编码:

    #进行编码,将listToAnalysis里面的字符串转换成整数
    strSet = set(functools.reduce(lambda a,b:a+b, listToAnalysis))
    strEncode = dict(zip(strSet,range(len(strSet)))) #编码字典,即:{'ArticleTag_BS': 6,'Country_Argentina': 53,etc...}
    strDecode = dict(zip(strEncode.values(), strEncode.keys()))  #解码字典,即:{6:'ArticleTag_BS',53:'Country_Argentina',etc...}
    listToAnalysis_int = [list(map(lambda item:strEncode[item],row)) for row in listToAnalysis]   #编码后的输入数据
    

    预处理做好了,这里分析仅仅一行代码即可:

    itemsets = dict(oaf.frequent_itemsets(listToAnalysis_int , .02)) #这里设置支持度
    

    返回的itemsets就是频繁项集,这时可以调用第二个函数fpgrowth.association_rules(itemsets, min_confidence, itemset=None)
    这个函数代表在给定置信度和第一步得到的频繁项集的情况下得到关联规则

    • itemsets代表第一个函数返回的字典数据集
    • min_confidence代表关联规则设置的支持度
    • itemset代表仅仅生成该频繁项集下的规则,这个项集必须是itemsets这个字典里的一个键,数据结构格式是frozenset,例如frozenset({6})

    注意:该函数返回的列表生成器只能使用一次,我在这里调试时出了好多次错误,每次用完后我调用这个生成器,
    然后总是得到空集,所以干脆直接返回值包上列表函数list并返回给变量itemsets,这样可以多次使用

    关联规则生成仅仅两行代码即可:

    rules = oaf.association_rules(itemsets, .5)   #这里设置置信度
    rules = list(rules)
    

    rules的结果是元祖,每一个值都是frozenset,frozenset,suport,confidence形式,例如:
    (frozenset({1, 24, 41}), frozenset({8}), 13, 0.7222222222222222)
    我为了使结果更有利于观察,自己加了个函数得到可打印的便于观察的规则,代码如下:

    def dealResult(rules,strDecode):
        returnRules = []
        for i in rules:
            temStr = '';
            for j in i[0]:   #处理第一个frozenset
                temStr = temStr+strDecode[j]+'&'
            temStr = temStr[:-1]
            temStr = temStr + ' ==> '
            for j in i[1]:
                temStr = temStr+strDecode[j]+'&'
            temStr = temStr[:-1]
            temStr = temStr + ';' +'\t'+str(i[2])+ ';' +'\t'+str(i[3])+ ';' +'\t'+str(i[4])+ ';' +'\t'+str(i[5])+ ';' +'\t'+str(i[6])+ ';' +'\t'+str(i[7])
    #        print(temStr)
            returnRules.append(temStr)
        return returnRules
        
    printRules = dealRules(rules,strDecode)
    

    这里可以打印printRules观察结果

    返回的规则rules就是规则列表,即可调用第三个函数fpgrowth.rules_stats(rules, itemsets, n_examples)
    这个函数代表在给规则列表和频繁项集和总样例数目的情况下得到关联规则相关评价结果

    • rules代表第二个函数得到的规则列表
    • itemsets代表第一个函数返回的字典数据集
    • n_examples代表实例的总数

    代码如下:

    result = list(oaf.rules_stats(rules, itemsets, len(listToAnalysis)))   #下面这个函数改变了rules和itemsets,把rules和itemsets置空!
    

    注意,使用完第三个函数后,输入的itemsetes和rules都空了!

    为了使得结果便于观察和保存,我最近实现了一个函数,将结果清晰的写到一个excel表格里面,代码如下:

    def ResultDFToSave(rules):   #根据Qrange3关联分析生成的规则得到并返回对于的DataFrame数据结构的函数
        returnRules = []
        for i in rules:
            temList = []
            temStr = '';
            for j in i[0]:   #处理第一个frozenset
                temStr = temStr + str(j) + '&'
            temStr = temStr[:-1]
            temStr = temStr + ' ==> '
            for j in i[1]:
                temStr = temStr + str(j) + '&'
            temStr = temStr[:-1]
            temList.append(temStr); temList.append(i[2]); temList.append(i[3]); temList.append(i[4])
            temList.append(i[5]); temList.append(i[6]); temList.append(i[7])
            returnRules.append(temList)
        return pd.DataFrame(returnRules,columns=('规则','项集出现数目','置信度','覆盖度','力度','提升度','利用度'))
     
    
    dfToSave = ResultDFToSave(result)
    dfToSave.to_excel('regular.xlsx')
    

    置信度和支持度的选择

    置信度和支持度一般都是根据几个数据得到的规则数目自己选择的,我编写了一个程序,可以得到不同置信度和支持度下生成规则的数目,
    用来决定具体选择多少,代码如下:

    #######################################################下面是根据不同置信度和关联度得到关联规则数目
        listTable = []
        supportRate = 0.1
        confidenceRate = 0.1
        for i in range(9):
            support = supportRate*(i+1)
            listS = []
            for j in range(9):
                confidence = confidenceRate*(j+1)
                itemsets = dict(oaf.frequent_itemsets(listToAnalysis, support))
                rules = list(oaf.association_rules(itemsets, confidence))
                listS.append(len(rules))
            listTable.append(listS)    
        dfList = pd.DataFrame(listTable,index = [supportRate*(i+1) for i in range(9)],columns=[confidenceRate*(i+1) for i in range(9)])
        dfList.to_excel('regularNum.xlsx')
    

    最后,本篇的全部代码在下面这个网页可以下载:

    https://github.com/Dongzhixiao/Python_Exercise/tree/master/associate

    2019-6-24: 修改数据预处理,即将输入数据的字符串编码为整数,然后再进行关联规则计算

    展开全文
  • 如何优化多数据集关联报表

    千次阅读 2018-11-12 11:42:52
    数据集关联报表是很常见的报表形式,它允许开发者分别从不同的来源(表或数据库)分别准备数据形成不同的数据集,在报表端(模板)通过表达式描述数据集间的关系完成关联。这样可以避免在数据准备时写过于复杂的 ...
  • 关联分析(一):频繁项及规则产生

    万次阅读 多人点赞 2018-09-28 15:46:10
    关联分析的应用领域非常多,当数据集类型比较复杂时,进行关联分析采用的手段也相对复杂,本篇从最简单的事务数据集着手,对关联分析进行解读。对大型事务数据集进行关联分析时,有两个问题要考虑: 发现关联模式时...
  • 数据分析之关联分析 项与项 项 指我们分析数据中的一个对象 项 由若干项构成的集合 不能重复 数量可以为1 支持度 为某项在数据中出现的频率 即 项在记录中出现的次数 除以数据中所有的数据 support(A...
  • 数据挖掘十大算法(四):Apriori(关联分析算法)

    万次阅读 多人点赞 2018-08-29 21:38:50
    同样的该算法也是在一堆数据集中寻找数据之间的某种关联,这里主要介绍的是叫做Apriori的‘一个先验’算法,通过该算法我们可以对数据集关联分析——在大规模的数据中寻找有趣关系的任务,本文主要介绍使用Apriori...
  • 关联规则与数据分析

    千次阅读 2019-01-13 13:55:59
    关联规则的产生背景2. 基本概念与原理Aprioir算法用SSAS对医疗数据进行关联分析 关联规则 1.关联规则的产生背景 最早是由Agrawal等人提出的(1993)。最初的动机是针对购物篮分析(Basket Analysis)问题提出的,...
  • 利用mlxtend进行数据关联分析

    万次阅读 多人点赞 2018-11-11 21:57:02
    前言:之前很少做关于数据关联分析的题,而当初学关联分析时也是自己写代码来实现底层转换与运算,粗略一点的整体代码量也达到150行左右,所以没有高级的开源工具使用是很费时间的,由此阻碍了一颗想学习的心。...
  • SAS EM(一)关联分析数据+实战)

    千次阅读 2020-10-02 18:32:53
    SAS EM(一)关联分析 关联规则挖掘技术可以发现不同商品在消费者购买过程中的相关性。给定一组事务集合,其中每个事务是一个项目;一个关联规则是形如 X ->Y 的蕴涵式, X 和 Y 表示项目,且 X∩ Y = Φ, X 和 ...
  • Apriori算法进行数据关联分析

    千次阅读 2016-07-16 21:38:17
    从大规模数据集中寻找物品间的隐含关系被称作关联分析(association analysis)或者关联规则学习(association rule learning)。这里的主要问题在于,寻找物品的不同组合是一项十分耗时的任务,所需的计算代价很高...
  • 频繁项的产生格结构(lattice structure)常常用来表示所有可能的项。 发现频繁项的一个原始方法是确定格结构中每个候选项的支持度。...利用更高级得到数据结构或者存储候选项或者压缩数据
  • 关联分析

    千次阅读 2018-02-06 20:56:52
    关联分析 作用:提取出对数据中的变量之间的关系的最佳解释 基本概念: 1、事务:每一条交易称为一个事务,例如示例1中的数据集就包含四个事务。 2、项:交易的每一个物品称为一个项,例如Cola、Egg等。 3、项...
  • 数据挖掘之关联分析(实验展示以及源代码)

    千次阅读 热门讨论 2019-06-04 20:37:31
    关联分析是从大量数据中发现项之间有趣的关联和相关联系。 而关联分析的最终目标就是要找出强关联规则。 •定义: 1、事务:每一条交易称为一个事务,如上图包含5个事务。 2、项:交易的每一个物品称为一...
  • 机器学习之关联分析与频繁项 1、关联分析与频繁项介绍 2、
  • 数据挖掘关联分析—基本概念
  • 数据挖掘之关联规则分析

    万次阅读 2018-08-12 14:01:18
    关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系。 用于寻找数据集中各项之间的关联关系。根据所挖掘的关联关系,可以从一个属性的信息来推断另一个属性的信息。当置信度...
  • 关联分析是从大量数据中发现项之间有趣的关联和相关联系。 •定义: 1、事务:每一条交易称为一个事务,如上图包含5个事务。 2、项:交易的每一个物品称为一个项,例如豆奶,啤酒等。  3、项:包含零个或...
  • Menu基本概念规则度量:支持度和置信度频繁项、闭项基本概念由事务数据库挖掘单维布尔关联规则Apriori算法原理例子挖掘频繁项的模式增长方法挖掘闭模式和极大模式 基本概念 规则度量:支持度和置信度 频繁项...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,855
精华内容 67,942
关键字:

关联分析相关数据集