Apriori算法(频繁集发现以及关联分析)

【大数据】六、频繁项集与关联规则(频繁项集、关联规则、A-Priori、PCY) 文章目录1 定义1.1 频繁项集1.2 关联规则2 A-Priori 算法2.1 例题3 更大数据集在内存中的处理3.1 PCY 算法3.2 多阶段算法3.3 多哈希算法4 有限扫描算法4.1 随机化算法4.2 SON 算法4.3 Toivonen 算法5. 流中频繁项计数 1 定义 1.1 频繁项集 支持度是项出现的次数 支持度是频繁项集的阈值 假定有个支持度闾值(support threshold) s 。如果I是一个项集, I的支持度(support) 是指包含I (即I是购物篮中项集的子集)的购 阅读详情

        我们在网上购物的时候都会收到一些相关产品的推荐,这些被推荐的东西是怎么来的呢?如果我们买了一个鱼竿,那么推荐鱼线,鱼饵什么的是很正常的,毕竟这些产品都是相关性比较大的,收到推荐也不足为奇;但是仅限于此吗?之前不是有个很出名的例子,啤酒和尿布的例子,在没被发现这个规律之前,谁能想到他们两个有一定的联系?所以除过去那些关联性特别明显的东西,还有许多隐藏的有相关性的关系被隐藏在大量的数据之下。所以,从大规模数据集中寻找物品间的隐含关系被称作为关联分析或者关联规则学习。

        关联分析也可以用于特征的发现,发现某些事情的共性规则,即同时有哪些特征出现,例如发现毒蘑菇的共同特征。

1.关联分析

        关联分析是一种在在大规模数据集中寻找有趣关系的任务。这些关系可以分为两种形式:频繁项集合关联规则。       

        频繁项集:是经常出现在一块儿的物品的集合;

        关联规则:暗示两种物品之间可能存在很强的关系。

        表1是一个购物清单

                                                                    表1

交易号码

商品

0

豆奶,莴苣

1

莴苣,尿布,葡萄酒,甜菜

2

豆奶,尿布,葡萄酒,橙汁

3

莴苣,豆奶,尿布,葡萄酒

4

莴苣,豆奶,尿布,橙汁

        频繁项集是指那些经常出现在一起的物品集合,如表1中的{尿布,葡萄酒}就是一个很好的例子,就是说人们经常会把尿布和葡萄酒一起购买。

        我们用支持度来衡量这个集合出现的频繁度,它被定义为数据集中宝行该项集的记录所占的比例。从表1中可以得到,{豆奶}的支持度为4/5,有3条包含{豆奶,尿布}的记录,一次{豆奶,尿布}的支持度为3/5,因此我们可以指定一个支持度,从而过滤掉那些支持度小的集合。

        可信度或者说是置信度是针对一条诸如{尿布}->{葡萄酒}的关联规则定义的,有很强的方向性,箭头反过来就不一定成立。上面箭头关联规则可定义为:支持度({尿布,葡萄酒})/支持度({尿布}),{尿布,葡萄酒}的支持度为3/5,尿布的支持度为4/5,所以{尿布}->{葡萄酒}的可信度为3/4=0.75。可以这么理解:尿布和葡萄酒同时出现的概率比上尿布单独出现的概率,即在尿布出现的情况下,葡萄酒出现的概率,从而衡量尿布出现的情况下,葡萄酒出现可能性的大小。

2.Apriori原理

        在进行频繁集发现的时候,我们需要从小的集合开始,为什么呢?我们看图2:

 

                                                              图2

        假如我们有4样商品,那么进行不同大小的集合的组合,一共有15种组合方式,那我们就需要进行15次的判断。那么有N种商品,我们就需要2的N次方-1种的组合,那么这种指数级的增长必定会加大运算量,所以我们需要想办法减少判断的组合。

        假设我们从小集合开始判断,判断出{3}的支持度比较低,也就是在样本数据中出现3的次数比较少,那么12,13,23…等组合都是包括3的,那么他们的支持度是不会比3大的,也就是说如果小集合的支持度比较小,那么包含小集合的大集合也就不需要判断了,那么这就大大减少了判断的成本,也就降低了计算成本。所以我们就可以运用这个原理来发现频繁集。

3.使用Apriori算法来发现频繁集

        Apriori算法使用Apriori原理来发现频繁集。我们需要输入最小支持度和数据集,通过最小支持度对数据集进行过滤,得到频繁集。

        我们首先需要找出最小的元素集合,也就是单元素组成的集合:

def createC1(dataSet):
    C1 = []
   
for transaction in dataSet:
       
for item in transaction:
           
if not [item] in C1:
                C1.append([item])
    C1.sort()
   
return map(frozenset, C1)

        dataSet是我们原始的数据集。下面是计算频次、支持度,然后将支持度小于最小支持度的集合去掉:

def scanD(D, Ck, minSupport):
    ssCnt = {}
    for tid in D: 
        for can in Ck:
            if can.issubset(tid):
                if not ssCnt.has_key(can): ssCnt[can]=1
                else: ssCnt[can] += 1
    numItems = float(len(D))
    retList = []
    supportData = {}
    for key in ssCnt:
        support = ssCnt[key]/numItems
        if support >= minSupport:
            retList.insert(0,key)
        supportData[key] = support
    return retList, supportData

        函数scanD中,D是我们的最原始的数据集,Ck是需要进行判断是否符合最小支持度的集合列表,minSupport就如字面意思就是我们设定的最小的支持度。SsCnt是一个字典用来存放数据集以及其出现的频次,如{{2,3},3}表示集合{2,3}在所有的样本数据中一共出现过3次。第一个循环就是将要被判断去留的集合和原始的数据集比较计算出各个数据集出现的频次,numItems是样本数据的集合个数,第二个循环就是计算所有集合的支持度,然后和最小支持度比较,然后去除掉支持度小的集合。返回的是频繁集及其对应的支持度。

        总结一下scanD函数的目的:输入样本数据、待测试的数据集以及最小支持度,返回支持度不小于最小支持度的数据集。样本数据和最小支持度都不需要计算,最重要的就是要计算出待测数据,下面给出完成的Apriori算法:

def aprioriGen(Lk, k):  
    retList = []
    lenLk = len(Lk)
    for i in range(lenLk):
        for j in range(i+1, lenLk): 
            L1 = list(Lk[i])[:k-2]; L2 = list(Lk[j])[:k-2]
            L1.sort(); L2.sort()
            if L1==L2: 
                retList.append(Lk[i] | Lk[j]) 
    return retList


def apriori(dataSet, minSupport = 0.5):
    C1 = createC1(dataSet)
    D = map(set, dataSet)
    L1, supportData = scanD(D, C1, minSupport)
    L = [L1]
    k = 2
    while (len(L[k-2]) > 0):
        Ck = aprioriGen(L[k-2], k)
        Lk, supK = scanD(D, Ck, minSupport) 
        supportData.update(supK)
        L.append(Lk)
        k += 1
    return L, supportData

        我们先从apriori函数看起,while循环之前的不难理解,就是将原始数据生成一个单元素组成的数据集,并将这些单元素组成的数据集中支持度小于0.5的单元素集合去掉,将其作为一个整体放倒L中:结合图1中的例子,我们是去掉了集合{3},保留了{0},{1},{2}三个集合用于接下来的判断。接下来的循环就是判断集合中元素为k的集合的支持度,我们从k=2开始判断,k=1的我们已经判断过了。

        aprioriGen函数看似一个特别不好理解的函数,其实他的功能就是在单个集合中元素个数为k-1的基础上,生成单个集合元素个数为k的集合,例如我们输入[{0},{1},{2}],然后返回的就是[{0,1},{0,2},{1,2}],这样一个功能然后再对返回的元素集合进行最小支持度的过滤,比如我们此时就又把{1,2}集合过滤掉了,保留[{0,1},{0,2}],此时L就是[[{0},{1},{2}],[{0,1},{0,2}]],然后我们在把[{0,1},{0,2}]放入aprioriGen函数,此时k=3,生成{0,1,2}。此处一定要注意:根据Apriori原理不是说如果小集合被去掉,那么包含大集合的小集合不是也要去掉吗?我们上一步去掉了{1,2},那么{0,1,2}不是不应该出现吗?其实感觉不能这么理解,Apriori原理生成的结果只是从最终得到的结果来说的,{0,1,2}是应该去掉,只是不是在组合的时候去掉,是在下一步进行最小支持度判断的时候{0,1,2}是肯定要去掉的。那么再想既然不能去掉包含小集合的大集合,那效率也没提高多少,其实也不是这样,如果我们把{1,2}换成{1,3},提前去掉{1,3},那么以后的组合就不会出现有3的集合,对于这种两两组合的情况,去掉一个元素运算复杂度可是指数级下降的,所以还是可取的。

        所以对于上述问题也可以改进,就是增加记录被去掉的集合记录,然后每次也遍历这个记录集合,如果大集合包含这些集合,就去掉这个大集合。

        代码是《机器学习实战》书上的代码,对于aprioriGen函数我感觉好像有点问题,书中的原话如下:

 

                              

        如果我传入的Lk是[{0,1},{1,2}]呢,此时k是3,那么前k-2个项不可能相同了,也就是这两个不会合并,这明显是不对的。也不知道是我没有理解正确,希望哪位看明白了指教一下。我觉得这里的目的是,找出只有一个不同的元素的两个集合合并,然后元素个数就是k了。

2020/03/13更新


上面如果传入{0,1},{1,2}那么根据每个组合都是从小的集合组合过来的,那么肯定会有{0,2}一起被组合过来,那么在此按照k-2个相同元素组合的时候{0,1}和{0,2}就可以组合为{0,1,2}所以就不需要{0,1}和{1,2}的组合了。


 

4.从频繁集中挖掘关联规则

        要找到一个关联规则,首先需要从一个频繁集开始,看从中是否可以通过某个元素或者某个元素集合推导出另一个元素。如果有个频繁集{豆奶,莴苣},那么就有可能有一条关联规则“豆奶->莴苣”。这就意味着如果有人购买了豆奶,那么在统计上他购买莴苣的概率较大,但是反过来不一定成立,即“豆奶->莴苣”成立,但是“莴苣->豆奶”不一定成立。

        所以对于关联规则,我们也有对应的量化方法,这种量化指标就是称为可信度。定义为P->H(箭头左边的集合称作为前件,箭头右边的集合称作为后件)的可信度为(支持度(P|H)/支持度(P))。这里的符号|我觉得应该是同时出现P和H的集合,至于《机器学习实战》书上介绍的感觉不太明白。所以可信度的计算需要用到的是支持度,而我们上面就已经计算出了支持度,只需要取出对应的支持度然后做一下除法运算即可。

 

                  

                                                          图2

        图2是对于频繁集{0,1,2,3}的关联规则网格示意图。阴影区域给出的是底可信度的规则。如果发现0,1,2->3是一条低可信度规则,那么多有其他以后以3作为后件的规则可信度也会较低。以3作为单元素集合的出现较低,那么就是说样本数据中没有更多的多元素集合包含3了,所以多有包含3的作为后件的关联规则可信度都比较低。

        我们可以利用关联规则的上述属性来减少需要测试的规则的数据。类似于Apriori算法中的思想,可以首先从一个频繁项集开始,接着创建一个规则列表,其中规则右部只包含一个元素,然后对这些规则进行测试。接下来合并所有剩余规则来创建一个新的规则列表,其中规则右部包含两个元素。这种方法也被称为分级法。下面给出代码:

def generateRules(L, supportData, minConf=0.7): 

    bigRuleList = []
   
for i in range(1, len(L)):
        for freqSet in L[i]:
            H1 = [
frozenset([item]) for item in freqSet]
           
if (i > 1):
                rulesFromConseq(freqSet, H1, supportData, bigRuleList, minConf)
           
else:
                calcConf(freqSet, H1, supportData, bigRuleList, minConf)
   
return bigRuleList        

def calcConf(freqSet, H, supportData, brl, minConf=0.7):
    prunedH = []
#create new list to return
   
for conseq in H:
        conf = supportData[freqSet]/supportData[freqSet-conseq]

        if conf >= minConf:
           
print freqSet-conseq,'-->',conseq,'conf:',conf
            brl.append((freqSet-conseq, conseq, conf))
            prunedH.append(conseq)
   
return prunedH

def rulesFromConseq(freqSet, H, supportData, brl, minConf=0.7):
    m =
len(H[0])
   
if (len(freqSet) > (m + 1)): #try further merging
       
Hmp1 = aprioriGen(H, m+1)#create Hm+1 new candidates
       
Hmp1 = calcConf(freqSet, Hmp1, supportData, brl, minConf)
       
if (len(Hmp1) > 1):    #need at least two sets to merge
           
rulesFromConseq(freqSet, Hmp1, supportData, brl, minConf)

        我们从函数generateRules开始说起。参数L是我们之前得到的频繁集列表,supportData是频繁集列表及其对应的频繁度,是一个字典数据,minConf是可信度参数,默认为0.7。

        多元素集合才有可能出现关联关系,单元素集合是不可能的,所以函数generateRules中的外循环需要从1开始,index为0的全部是单元素集合。内循环首先将集合中的每个元素拿出来,放到H1中,H1是一个list,每个元素是一个frozenset不变类型的单元素集合(如<type 'list'>: [frozenset([1]), frozenset([3])])。下来我们先看i=1情况,即要运行的是calcConf函数。

        CalcConf函数:首先参数freqSet如命所示为频繁集,H是我们将频繁集中的元素拆开,成了generateRules函数中的H1,supportData为所有频繁集及其对应的支持度,brl是为了用来存储我们的符合可信度的数据形式,minConf为最小的可信度。很明显conf = supportData[freqSet]/supportData[freqSet-conseq]是计算可信度代码,可信度关系:(freqSet-conseq)->conseq,其中conseq为H中的每个单独的元素。后面的if条件就很简单了,如果大于最小可信度,就将其放到列表brl中。下面看下rulesFromConseq函数。

        rulesFromConseq函数:参数和CalcConf函数的参数完全一样。其对应的是i>1的情况,也就是频繁集中的元素个数大于2的情况。然后我们跟着代码走一下,此时的i=2,freqSet是长度为3的频繁集。到rulesFromConseq函数中,m=1,len(freqSet)=3>2,所以我们进入到if语句中,然后根据我们前面介绍的aprioriGen函数的作用,Hmpl此时应该是三个长度为2的频繁集。假设此时的freqSet是{1,2,3},那么此时的Hmpl就是[{1,2},{2,3},{1,3}],那么将其再带入到CalcConf函数中,如果有可信度合适的,那就和可能是{1}->{2,3},{2}->{1,3},{3}->{1,2}的中的某个情况,如果上述三种都是符合要求的,那么返回的就是[[{1,2},{2,3},{1,3}],然后在将其作为参数带入到rulesFromConseq函数中,此时m是2,那么(len(freqSet)=3)=(m+1=3)那么就不继续向下了。其实这个一个递归调用的问题。

        上面代码及思路是《机器学习实战》上的代码,跟一下代码,我们就会发现,上面的递归调用的情况不会出现{2,3}->{1},也不知道是书上的问题,还是就不需要判断。我觉得是需要判断的,毕竟这个方向性很强,所以反过来的情况也是需要判断的。

5.总结

        Apriori算法发现频繁集需要不停的循环判断集合的包含情况,所以对于数据量大的情况就不太合适,当然为了解决这个问题,FP-growth算法就产生了,请参考FP-growth算法高效发现频繁集。

          通过分析上面的代码,发现原书上的代码有些地方可能是有些问题的,最起码我觉得是有问题的,我这里只是把问题指出来了,有兴趣的也可以研究下。

 

频繁项集算法:Apriori算法的C++实现 Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。 算法原理我一定不如 点击打开链接 说的明白,就只贴代码好了。 购物篮应该是放在数据库中,我把它写在文件D:/item.txt中。 有一点不同: ①代码中用了以下映射: totalID(项名-->整体编码的映射) freID(整体编码-->频繁项编码的映射) 阅读详情

相关推荐

r语言实现关联分析--关联规则挖掘(Apriori算法) (r语言预测学习笔记)

r语言实现关联分析–关联规则挖掘 关联分析: 引子: 我们一般把一件事情发生,对另一间事情也会产生影响的关系叫做关联。而关联分析就是在大量数据中发现项集之间有趣的关联和相关联系(形如“由于某些事件的发生而引起另外一些事件的发生”)。 我们的生活中有许多关联,一个典型例子是购物篮分析。该过程通过发现顾客放入其购物篮中的不同商品之间的联系,分析顾客的购买习惯。通过了解哪些商品频繁地被顾客同时购买,这种关联的发现可以帮助零售商制定营销策略。其他的应用还包括价目表设计、商品促销、商品的排放和基于购买模式的顾客划

weixin_45178611的博客 1万+

数据挖掘-频繁项集

频繁项集的概念与应用

AviciFox的博客 9027

数据挖掘十大算法(七):Apriori算法

一,基本原理和Python实现 1.关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务。这种关系表现为两种形式: 1.频繁项集(frequency item sets):经常同时出现的一些元素的集合; 2.关联规则(association rules): 意味着两种元素之间存在很强的关系。 频繁项集是指经常出现在一起的元素的集合,上表中的集合 {葡萄酒,尿布,豆奶} 就是频繁项集的一个例...

代码写的越急,程序跑得越慢。 765

Apriori基础算法(C++实现)

本人学艺不精,如有错误,还请多担待。 对于Apriori算法中的一些概念,这里不做过多阐述,感兴趣的朋友可自行搜索查看。 1.需求和规格说明 关联分析是数据挖掘中的一个重要任务,Apriori 算法是一种典型的关联分析算法。多用于超市的销售决策,如通过统计一段时间内,用户买商品 A 和 B 同时发生的概率,得出了顾客买 A 则很可能会买 B 的一条规则。 本课题要求对给定的训练数据,实现 Apriori 算法,构件关联规则集合。 2.设计 (1)整体构架。本算法的目的是找出强关...

qq_58686835的博客 1133

chapter11 机器学习之使用Apriori算法进行关联性分析

一、Apriori算法简介:  Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。 Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的

wenyusuran的专栏 5389

贝莱德(BlackRock)—— 阿拉丁(Aladdin)平台的 AI 赋能升级

全称(资产、负债、债务与衍生品投资网络),是贝莱德自主研发的一体化投资管理与风险管理技术平台,被誉为全球资管行业的 “

xm_mm的博客 1731

关联规则—频繁项集Apriori算法

      频繁模式和对应的关联或相关规则在一定程度上刻画了属性条件与类标号之间的有趣联系,因此将关联规则挖掘用于分类也会产生比较好的效果。关联规则就是在给定训练项集上频繁出现的项集与项集之间的一种紧密的联系。其中“频繁”是由人为设定的一个阈值即支持度 (support)来衡量,“紧密”也是由人为设定的一个关联阈值即置信度(confidence)来衡量的。这两种度量标准是频繁项集挖掘中两个至关...

liyonghui123的专栏 1万+

零代码构建AI智能体:COZE可视化工作流实战指南

AI智能体(AI Agent)是当前人工智能领域的重要发展方向,它通过模块化设计和工作流驱动,使大语言模型从被动对话转向主动执行。其核心原理在于将复杂的任务分解为可规划、可执行的步骤,并调用外部工具(插件)完成闭环。这一技术价值在于显著降低了自动化流程的开发门槛,让非程序员也能构建实用的数字助手。典型的应用场景包括智能客服、内容自动生成、数据分析和跨系统业务流程自动化。本文以COZE平台为例,深入解析如何通过其直观的可视化界面和丰富的插件生态,像搭积木一样快速搭建如“早安简报生成器”等实用智能体,并分享指令

468

机器学习算法学习---关联分析算法(一)

Apriori算法优点:易编码实现。缺点:在大数据集上可能较慢。适用数据:数值型、标称型。1、关联分析 关联分析寻找的关系可以有两种形式:频繁项集或者关联规则。频繁项集:经常出现在一块的物品的集合;关联规则:暗示两种物品之间可能存在很强的关系。支持度:数据集中包含该项集的记录所占的比例。(针对项集)可信度/置信度:一条关联规则{A}-->{B},支持度({A,B})/支持度({A})的比值...

weixin_34248258的博客 710

ArcGIS实战:手把手教你用DEM和灾害点数据,5步搞定地质灾害风险区划图

本文详细介绍了使用ArcGIS进行地质灾害风险评估的完整流程,从DEM和灾害点数据出发,通过五步标准化操作生成专业风险区划图。重点讲解了信息量模型的应用,帮助读者掌握GIS技术在地质灾害易发性评价中的实践方法,提升风险评估效率与准确性。

weixin_30696427的博客 426

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. 最全解决方案!详细!

真的折磨了我整整一天,从网上的资料到GPT都翻遍了,终于是解决了!以下方案希望能帮助到你们。

weixin_44124632的博客 1万+

使用Apriori算法进行关联分析

现在商家通过查看哪些商品经常在一起购买,来了解用户的购买行为。这种从数据海洋中抽取的知识可以用于商品的定价、市场促销、存货管理等环节。从规模数据集中寻找物品间的隐含关系被称作关联分析或者关联规则学习。下面首先详细讨论关联分析,然后讨论Apriori原理,Apriori算法正式基于该原理得到的。接下来创建函数频繁项集高效发现的函数,然后从频繁项集中抽取出关联规则。 1.1 关联分析 关联分

tonight1103的博客 2505

Weka学习笔记01:初探Weka世界

下载、安装和启动Weka、Weka数据格式

howard2005的专栏 1471

机器学习实战—使用Apriori算法进行关联分析

从大规模数据集中寻找物品间的隐含关系被称作关联分析或者关联规则学习。 一、关联分析 频繁项集:经常出现在一块的集合。 关联规则:按时两种物品之间可能存在很强的关系。 支持度:一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。 可信度或置信度:是针对诸如{尿布}—&gt;{葡萄酒}的关联规则来定义的,这条规则的可信度被定义为:支持度({尿布,葡萄酒})/支持度({尿布}) 支持...

zoinsung_lee的博客 8363

MATLAB 控制 E4438C 信号源的研究

通过 MATLAB,我们可以实现对 E4438C 的远程控制,从而实现更高的自动化和可编程性。总结起来,通过使用 MATLAB 和 Instrument Control Toolbox,我们可以轻松地控制 E4438C 信号源并生成各种类型的信号。需要注意的是,以上代码仅为示例,实际应用中可能需要根据具体情况进行更详细的配置和错误处理。此外,MATLAB 还提供了一系列函数和命令,可用于控制 E4438C 信号源的其他功能,如频率调谐、功率设置、调制设置等。您可以根据自己的需求进行相应的配置和控制。

RswtPerl的博客 1014

COMSOL有限元仿真深度指南:为结构件添加预应变

一、什么是预应力和预应变? 我们知道,结构力学问题中,结构件在外载荷作用下产生变形响应以吸收外载荷做功带来的能量;而在结构内部,整体的受力和变形则是通过固体微元的应力与应变传递的。 对于线弹性材料来说,应力与应变的关系可以线性表达,也即 σ=Dεσ = Dεσ=Dε ;在该式中,无论固体微元的应变程度多大,弹性矩阵DDD都是一个不变的常值。而对于超弹性材料来说,应力与应变的关系则需要通过应变能密度函数WWW来表征(详细参加博客《COMSOL有限元仿真深度指南:超弹性模型有限元分析入门》)。 从上面我们也不难

忘了面孔的Batou 7170

Apriori算法进行关联分析实战

使用Apriori算法进行关联分析(层次聚类) 一、基础知识 1.关联分析定义及存在的问题 定义:从大规模的数据集中寻找物品间的隐含关系,被称为关联分析或关联规则学习。 关联分析存在的主要问题:主要问题在于寻找不同物品的组合是一项很耗时的任务,所需要的计算代价很高,暴力方法无法解决这个问题,所以使用更加合理的方法在合理的时间范围内找到频繁项集。 2.Apriori算法的优缺点及适用场合 ...

CurryCoder的个人博客 2435

Android SystemUI——车载CarSystemUI加载(八)

车载 CarSystemUI 是指专门为汽车环境设计的用户界面和用户体验(UI/UX),它通常与 Android Automotive OS 或其他嵌入式操作系统一起工作,为驾驶者和乘客提供安全、直观且高效的交互方式。Android Automotive OS 是 Google 专门为汽车开发的操作系统版本,它基于 Android 平台,并针对车辆内部的使用进行了优化。

小旭的专栏 2174

Apriori算法(频繁集与关联分析)

这个算法用来发现最常一起出现的类,例如超市可以利用这个算法来看什么商品最经常一起出现,从而在摆放位置上进行优化,一个很有名的例子是美国中西部一家超市发现周四男人们经常会买啤酒和尿布,但是即使发现了这个规则,还是没有将其摆在一起,说明超市按照种类摆放的方法已经根深蒂固了。。。不过将这两个摆放在一起还是怪怪的哈哈哈 (一)Apriori原理 如图所示,5个商品的组合模式就有 种,当商品变大的时...

欲上青天揽明月 1397

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

机器学习实战 -- 使用Apriori 算法进行关联分析

Apriori 算法 频繁项集生成 关联规则生成 关联分析 关联分析是在一种在大数据集中寻找有趣关系的任务。这种任务有两种形式: 频繁项集或者关联规则。 频繁项集是经常出现在一块的物品构成的集合。 关联规则是暗示两种物品之间可能存在很强的关系。 支持度:一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。 可信度或置信度:是针对诸如{尿布}—>{葡萄酒}的关联规则...

森宝的博客 713

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

使用 Apriori 算法进行关联分析(机器学习)

为了降低计算次数和时间,研究人员发现了一种所谓的 Apriori 原理,即某个项集是频繁的,那么它的所有子集也是频繁的。例如,如果 {0, 1} 是频繁的,那么 {0}, {1} 也是频繁的。的之后,就不需要再计算 {0,2,3} {1,2,3} {0,1,2,3} 的支持度,因为我们知道这些集合不会满足我们的要求。,那么利用上面的知识,我们就可以知道 {0,2,3} {1,2,3} {0,1,2,3} 都是。可以利用关联规则的上述性质属性来减少需要测试的规则数目,跟先前 Apriori 算法的套路一样。

sikh_0529的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

关联分析(无监督的学习方法)

关联分析及其有关概念的介绍 关联分析:通过频繁项集或者关联规则来发现大数据集中元素之间有趣关系的一个工具集。关联分析的目标就是发现频繁项集和关联规则。 频繁项集:经常出现在一起的元素集合。 项集的支持度:数据集中包含该项集的记录所在的比例。 关联规则:暗示两元素之间可能存在很强的关系。 关联规则的可信度或者置信度:例如{尿布} -&gt; {葡萄酒}这条关联规则的可信度被定义为“支持度({尿布,...

weixin_42217205的博客 1402

数据挖掘十大算法--Apriori算法

Apriori 算法是一种用于关联规则挖掘的经典算法。它用于在大规模数据集中发现频繁项集,进而生成关联规则。关联规则揭示了数据集中项之间的关联关系,常被用于市场篮分析、推荐系统等应用。Apriori 算法的主要优点是它相对简单,并且易于理解和实现。然而,在处理大规模数据集时,它可能面临性能挑战。后续的改进算法,如 FP-Growth 等,通过不同的方式优化了频繁项集的发现过程,提高了算法的效率。

Wzideng@qq.com 1万+

机器学习实战学习笔记(十)使用Apriori算法进行关联分析

PS:该系列数据都可以在图灵社区(点击此链接)中随书下载中下载(如下)   从大规模数据集中寻找物品间的隐含关系被称作关联分析(association analysis) 或者关联规则学习(association rule learning)。 1 关联分析 Apriori算法 优点:易编码实现。 缺点...

The wind of freedom blows 1072

【数据挖掘】Apriori算法

频繁项集通过apriori()计算,保留支持度高的组合;关联规则通过生成,评估置信度、提升度等;可调整和控制挖掘深度。

dundunmm的博客 1749

挖掘关联规则之Apriori算法详解

1. 挖掘关联规则 1.1   什么是关联规则 一言蔽之,关联规则是形如X→Y的蕴涵式,表示通过X可以推导“得到”Y,其中X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 1.2   如何量化关联规则 关联规则挖掘的一个典型例子便是购物车分析。通过关联规则挖掘能够发现顾客放入

时刻保持危机感&对知识的渴望 1万+
上一篇: K-均值聚类(K-means)算法
下一篇: FP-growth算法来高效发现频繁集
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值