解决方案:大数据云计算

优采云 发布时间: 2022-10-10 23:06

  解决方案:大数据云计算

  本教程介绍大数据采集

  介绍Apriori算法,希望大家在读完这文章大家都能有所收获,帮助你更深入地了解大数据云计算的大数据采集。

  </p

p1. 阿普里奥里算法简介/p

pApriori 算法是一种经典的数据挖掘算法,用于挖掘频繁的项集和关联规则。阿普里奥里语在拉丁语中的意思是“从以前开始”。在定义问题时,通常使用先验知识或假设,这称为先验知识或假设。Apriori 算法的名称基于这样一个事实,即该算法使用频繁项集性质的先验属性,即频繁项集的所有非空子集也必须是常量。Apriori 的算法使用一种称为逐层搜索的迭代方法,其中 k 项集用于浏览 (k+1) 项集。首先,通过扫描数据库,对每个项的计数进行累加,并采集满足最低支撑级别的项,找到频繁的1项集的集合。该集合表示为 L1。然后,使用 L1 查找频繁的 2 项集的集合 L2,使用 L2 查找 L3,依此类推,直到无法再找到频繁的 k 项集。找到的每个 LK 都需要对数据库进行完全扫描。Apriori 的算法使用频繁项集的先验性质来压缩搜索空间。/p

p2. 基本概念/p

p项和项集:设置项集={项 1,item_2,...,item_m} 是所有项的集合,其中 item_k (k=1,2,...,m) 成为项。项的集合称为项集,收录 k 项的项集称为 k 项集。/p

p事务与事务集:事务 T 是项集的子集,每个事务都与唯一标识符 Tid 相关联。不同的事务共同构成了事务集 D,它构成了关联规则发现的事务数据库。/p

p关联规则:关联规则是一个含义公式,形状类似于 A = > B,其中 A 和 B 是项集的子集,不是空集,A 将 B 交叉为 null。

  支持:对关联规则的支持程度定义如下:

  其中,事务收录集合 A 和 B 之和的概率(即,收录 A 和 B 中的每个项)。请注意与 P(AorB) 的差异,P(AorB) 表示事务收录 A 或 B 的概率。

  置信度:关联规则的置信度定义如下:

  项集支持计数:收录项集的事务数,简称为项集的频率、支持计数或计数。

  频繁项集:如果项集 I 的相对支持满足预定义的最小支持阈值(即 I 的出现频率大于相应的最小出现频率(支持计数)阈值),则 I 为常动项集。

  强关联规则

  :满足最低支持和最低置信度的关联规则,即要挖掘的关联规则。

  3. 实施步骤

  通常,关联规则的挖掘过程分为两个步骤:

  查找所有常用项集

  强关联规则由频繁项集生成

  3.1 挖掘常用项集

  3.1.1 相关定义

  连接步骤:项目集 Lk-1 的频繁 (k-1) 自连接产生候选项目集 Ck

  Apriori 的算法假定项集中的项按字典顺序排序。如果 Lk-1 中的两个元素(项集)项集 1 和项集 2 之一的第一个 (k-2) 项相同,则项集 1 和项集 2 称为可连接。因此,通过项集 1 到项集 2 的连接生成的结果项集是 {项集 1[1]、项集 1[2],...,项集1[k-1]、项集 2[k-1]}。连接步骤收录在以下代码的create_Ck函数中。

  修剪策略

  由于先前的性质:任何不频繁 (k-1) 项集都不是频繁的 k 项集的子集。因此,如果候选项 k 项集 Ck 的 (k-1) 项子集的候选项不在 Lk-1 中,则该候选项不能频繁,因此可以从 Ck 中删除以获得压缩的 Ck。以下代码中的is_apriori函数用于确定是否满足先前的属性,create_Ck函数收录修剪步骤,即,如果不满足先前的属性,则进行修剪。

  删除策略

  根据压缩的 Ck,扫描所有事务,对 Ck 中的每个项目进行计数,然后删除不符合最低支持级别的项目,从而产生频繁的 k 项集。删除策略收录在以下代码的generate_Lk_by_Ck函数中。

  3.1.2 步骤

  每个项都是候选项集的集合 C1 的成员。该算法扫描所有事务,获取每个项目,并生成 C1(请参阅下面代码中的create_C1函数)。然后对每个项目进行计数。然后根据最小支持程度将不满意的项目从 C1 中移除,从而产生频繁的 1 个项目集 L1。

  对 L1 自身连接生成的集合执行修剪策略,以生成候选 2 项集的集合 C2,然后扫描所有事务,对 C2 中的每个项进行计数。同样,根据最小支持从 C2 中移除不满意的项目,导致频繁出现 2 个项目集 L2。

  对 L2 自身连接生成的集合执行修剪策略,以生成候选 3 项集的集合 C3,然后扫描所有事务,对 C3 的每个项进行计数。同样,不满意的项目根据最小支持从C3中删除,导致频繁的3个项目集L3。

  通过类比,对 Lk-1 自身连接生成的集合执行修剪策略可生成候选 k 项集 Ck,然后扫描所有事务,对 Ck 中的每个项进行计数。

  3.2 关联规则是从常用项集中生成的

  找到常用项集后,可以直接从它们生成强关联规则。生成此内容的步骤如下:

  对于每个频繁项集项集,将生成项集的所有非空子集(这些非空子集必须是频繁项集);

  对于项集的每个非空子集,如果输出为min_conf则为最小置信度阈值。

  4. 示例和 Python 实现代码

  下图是数据挖掘中频繁项集挖掘的示例说明:概念和技术(第三版)。

  本文基于此示例的数据编写 Python 代码,以实现 APIORI 算法。代码需要注意以下两点:

  由于 Apriori 算法假设项目集中的项目按词典顺序排序,而集合本身是无序的,因此我们需要在必要时进行集合和列表转换;

  因为要使用

  字典(support_data)要记录对项集的支持,需要使用项集作为键,而可变集合不能是字典的键,因此应将项集转换为固定集合冻结集。

  “””

  #Python2.7

  #Filename:先验.py

  #Author:呜

  #Email:航流56[AT]gmail[DOT]com

  #Blog:///llhthinker/p/6719779.html

  #Date:2017-04-16

  “””

  defload_data_set():

  “””

  Loadasampledataset(FromDataMining:概念与技术,第3版)

  返回:

  Adataset:Alistoftransactions.Eachtransactsconseveralitems.

  “””

  data_set=[[&#39;l1&#39;,&#39;l2&#39;,&#39;l5&#39;],[&#39;l2&#39;,&#39;l4&#39;],[&#39;l2&#39;,&#39;l3&#39;],

  [&#39;l1&#39;,&#39;l2&#39;,&#39;l4&#39;],[&#39;l1&#39;,&#39;l3&#39;],[&#39;l2&#39;,&#39;l3&#39;],

  [&#39;l1&#39;,&#39;l3&#39;],[&#39;l1&#39;,&#39;l2&#39;,&#39;l3&#39;,&#39;l5&#39;],[&#39;l1&#39;,&#39;l2&#39;,&#39;l3&#39;]

  returndata_set

  defcreate_C1(data_set):

  “””

  Createfrequentcandidate1-itemsetC1byscaningdataset.

  参数:

  data_set:交易列表.每个交易收录其他事务。

  返回:

  C1:Aset哪些收录alfrequentcandidate1-itemsets

  “””

  

  C1=集合()

  fortindata_set:

  前期敏:

  item_set=冻结集([项])

  C1.添加(item_set)

  返回C1

  defis_apriori(Ck_item,lksub1):

  “””

  Judgewhetherafrequentcandidatek-itemsetsatisfyAprioriproperty.

  参数:

  Ck_item:afrequentcandidatek-itemsetinCkwhichcontainsallfrequent

  候选项集。

  Lksub1:Lk-1,aset哪些收录alfrequentcandidate(k-1)-itemsets.

  返回:

  真:满足先验属性。

  False:NotsatisfyingAprioriproperty.

  “””

  foriteminCk_item:

  sub_Ck=Ck_item-冻结集([项])

  ifsub_CknotinLksub1:

  返回法尔斯

  返回真实

  defcreate_Ck( Lksub1,k):

  “””

  CreateCk,asetwhichcontainsallallfrequentcandidatek-itemsets

  由Lk-1&#39;播种连接操作。

  参数:

  Lksub1:Lk-1,aset哪些收录alfrequentcandidate(k-1)-itemsets.

  k:theitemnumberofafrequentitemset.

  返回:

  Ck:asetwhtainsallallfrequentcandidatek-itemsets.

  “””

  Ck=set()

  len_Lksub1=len(Lksub1)

  list_Lksub1=列表(Lksub1)

  foriinrange(len_Lksub1):

  forjinrange(1,len_Lksub1):

  l1=列表(list_Lksub1[i])

  l2=列表(list_Lksub1[j])

  l1.排序()

  l2.排序()

  ifl1[0:k-2]==l2[0:k-2]:

  Ck_item=list_Lksub1|list_Lksub1[j]

  #pruning

  ifis_apriori(Ck_item,lksub1):

  Ck_item)

  返回

  defgenerate_Lk_by_Ck data_set,min_support,support_data):

  “””

  GenerateLkbyexecutingadeletepolicyfromCk.

  参数:

  data_set:交易列表.每个交易收录其他事务。

  Ck:Asetwhtainsallallfrequentcandidatek-itemsets.

  min_support:最小支持。

  support_data:Adictionary.Thekeyisfrequentitemsetandthevalueissupport.

  返回:

  Lk:Aset哪些内容收录allallfrequentk-itemsets.

  “””

  Lk = set()

  item_count={}

  fortindata_set:

  foriteminck:

  ifitem.issubset(t):

  ifitemnotinitem_count:

  item_count[项目]=1

  还:

  item_count[项目]+=1

  t_num=浮点数(data_set)

  foriteminitem_count:

  

  如果(item_count[项目]/t_num)>=min_support:

  添加(项)

  support_data[项目]=item_count[项目]/t_num

  返回

  defgenerate_L data_set、min_support):

  “””

  Generateallfrequentitemsets.

  参数:

  data_set:交易列表.每个交易收录其他事务。

  k:Maximumnumberofitemsforallfrequentitemsets.

  min_support:最小支持。

  返回:

  L:李斯特洛夫。

  support_data:Adictionary.Thekeyisfrequentitemsetandthevalueissupport.

  “””

  support_data={}

  C1=create_C1(data_set)

  L1=generate_Lk_by_Ck(data_set,C1,min_support,support_data)

  Lksub1=L1.copy()

  L=[]

  L.append(Lksub1)

  foriinrange(2,k+1):

  Ci=create_Ck(Lksub1,i)

  Li=generate_Lk_by_Ck(data_set,ci,min_support,support_data)

  Lksub1=Li.copy()

  L.append(Lksub1)

  返回L,support_data

  defgenerate_big_rules support_data min_conf):

  “””

  Generatebigrulesfromfrequentitemsets.

  参数:

  L:李斯特洛夫。

  support_data:Adictionary.Thekeyisfrequentitemsetandthevalueissupport.

  min_conf:最小信任。

  返回:

  big_rule_list:Alist它收录allbigrules.eachbigruleisresed

  asa3 元组。

  “””

  big_rule_list=[]

  sub_set_list=[]

  foriinrange(0,len(L)):

  forfreq_setinL:

  forsub_setinsub_set_list:

  ifsub_set.issubset(freq_set):

  conf=support_data[freq_set]/support_data[freq_set-sub_set]

  big_rule=(freq_set-sub_set,sub_set,

  如果>=min_confandbig_rulenotinbig_rule_list:

  #printfreq_set-sub_set,“=>”,sub_set,“conf:”,conf

  big_rule_list(big_rule)

  sub_set_list附加(freq_set)

  returnbig_rule_list

  if__name__==“__main__”:

  “””

  测试

  “””

  data_set=load_data_set()

  L,support_data=generate_L(data_set,k=3,min_support=0.2)

  big_rules_list=generate_big_rules(L,support_data,min_conf=0.7)

  对于利金:

  打印“=”*50

  print“frequent”+str(len(list(Lk)[0]))+“-itemsets\t\tsupport”

  打印“=”*50

  forfreq_setinLk:

  printfreq_set,support_data[freq_set]

  打印

  打印“大规则”

  foriteminbig_rules_list:

  打印项[0],“=>”,项目[1],“conf:”,项目[2]

  本文由专业坐标整理发表,希望能帮助同学们。更多详情,请关注工作协调大数据云计算大数据采集通道!

  完整的解决方案:做网站如何选择一款利于SEO的cms建站系统?

  一个好的cms系统不仅对内容管理非常方便,对SEO也非常方便,很受SEO站长欢迎。如果使用优化好的cms系统,建站会容易很多,节省很多时间,使用量往往多达几十万甚至上百万。接下来,辰阳SEO就和大家聊一聊网站如何选择一个有利于SEO的cms建站系统?

  帝国cms系统

  一个适合seo的cms系统自然要满足seo的几个要求:

  1、更新内容管理方便,如自动更新、自动审核、人工审核、定期更新、草稿箱等。

  2、建站方便,内容调用方便。

  3、网页可以自定义“两大元素”,即标题和描述。以前关键词也比较重要,但是现在因为不参与排名,没有权重分配,变得可有可无,但是很多系统还是用关键词。使用自定义功能制作。

  4. 网站地图功能(爬虫可以爬取所有页面)。

  5、插件安装方便,二开扩展性强。

  

  6. url自定义操作,目录层级重复命名,标签和特殊页面管理,调用方便。

  7、模板装订*敏*感*词*便,标签简单。

  8.伪静态和静态模式,以及一键生​​成、分类生成、文章生成等。

  这里需求点比较多,就不一一列举了,先说一个适合seo的优秀cms系统说明。

  cmsseo 系统

  1.第一点是路由设置要包括各种形式,还可以支持自定义操作,尤其是静态和伪静态模式,这些都是必须的,这对seo来说很重要。同时静态模式要对应生成功能,方便一键生成。搜索引擎对这类页面情有独钟,可以提高很多收录机会。

  2、由于大的网站大部分都有自己的技术团队,可以自己开发系统,所以使用cms系统的用户大多是缺乏的中小站长开发能力。所以cms系统要设计得简单、方便、好用、易学,所以标签简单,单词有代表性,比如dede、eyou、wp等。之后通过口耳相传,迅速吸引大量站长使用。

  EasyYoucms系统面板

  3. cms系统最重要的部分是内容的管理,所以系统应该包括:网站定期内容更新,文章标签,标签标签分类,以及分类文章添加草稿,文章可以设置时间节点定时更新,草稿箱内容可以手动审核,也可以设置时间自动审核更新。

  

  4.每个网站的设计风格和建站器都不一样,所以会采用很多方式的url规则,但是需要自定义url(多级目录可以重复命名),所以人多可以设置更个性化的设置网页。

  5.对于seo来说,网站的收录无疑是非常重要的。系统的蜘蛛图功能可以提高收录的机会;系统的自动更新推送功能也可以改进 收录 。

  6.内链系统,因为很多人有其他的要求和规则,但是定期关键词替换锚文本是应该有的功能,可以帮助网站更好的实现内链优化,促进收录 并进行排名。

  7.网站图片上传和alt设置,有些编辑上传图片不带alt,对seo不是很友好,而且在代码中手动设置代码很浪费时间,所以编辑也需要付费注意这一点,当然,常规的比如百度编辑器,也足够了。

  8、最后,系统的扩展性比较好,有利于开发插件实现更多的个性化功能。dede系统其实比较完善,插件也很多,但是安全性差了一点。采集插件、右键屏蔽插件、自动添加水印插件、伪原创插件等插件。

  做网站如何选择有利于SEO的cms建站系统

  一个好的cms内容管理系统可以为我们做seo事半功倍,所以对于我们站长来说,一个优秀的系统尤为重要,大家应该多多支持这个技术团队。在众多开源系统中,思奇seo推荐使用dede、eyou、Pbootcms、zblog、empire、wp。这些系统中的前两个是最简单的,并且该网站快速且易于学习。

  但是,dede已经免费了十多年了。虽然是开源程序,但版权费一下子就收了5000多元。对于中小站长来说,这可不是一笔小数目。网站很多人突然要花几十万,这显然是不现实的。所有人都被这波韭菜打了个措手不及,所以很多人都放弃了dede,转投其他系统。返回搜狐,查看更多

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线