python机器学习的关联分析(Apriori)都有哪些算法,应用场景都是什么

2021-04-07 10:46发布

7条回答
小磊子
2楼 · 2021-04-08 09:27

本篇主要讲机器学习中的关联分析和Apriori算法,主要内容包括基本概念,场景应用,算法优缺点,实施步骤及Python实现等。

1、基本概念

关联分析是就是从大规模的数据集中寻找物品隐含关系(频繁模式,相关性或因果结构),关联分析的目的就是寻找频繁项集和发现关联规则。因此引入两个支持度和置信度来衡量着关联分析是否成功。

支持度是指数据集中包含该项集的记录占比;P(X) = count(X)/总数。

置信度是指在给定X条件下,Y发生的概率;P(Y|X)=count(X,Y)/count(X)。

因为关联分析主要目的是寻找频繁项集,如果通过暴力寻找,结果是几何性增长运算量大。如有A、B、C三个事物,其集合项就会有{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}等7中类型。包含N个物品的数据项集,其结果为2^n-1。为减少频繁项集的计算引入了Apriori算法。

Apriori原理是,如果某项集是频繁的,那么它的子集也是频繁的。反过来也是成立的。如图所示,如果{2,3}是非频繁的,那么其{0,2,3}{1,2,3}{0,1,2,3}都是非频繁项集。

同时在寻找关联规则中,如果前项可信度较低,那么其作为后项的可信度也会低,因此将后期不用在进行计算。

另外,Apriori在拉丁语中是指“来自以前”,因此它会使用先验知识,这在贝叶斯中的先验概率有异曲同工之处。

2、场景应用

(1):购物篮分析,通过分析商品销售记录,参考哪些商品经常一起出售,理解用户购物行为,能够应用到市场营销,物品摆放,库存管理,商品定价等环节。其中著名的商业应用实例就是啤酒和尿布的关系。

(2):共同词分析:对于给定的搜索词,发现推文中频繁出现的单词集合。

(3):流行趋势分析:从新闻网站点击浏览中分析新闻流行趋势,分析哪些类型新闻将被用户浏览到。

(4):搜索引擎推荐:在用户输入查询时推荐同时相关的查询词项。如今日头条的推荐搜索,相关词搜索等。

3、优缺点

该算法的优点是代码容易实现,结果容易理解,并能够直接应用于商业决策中。

该算法的缺点是在大数据集上运算速度可能比较慢。

4、实施步骤

Apriori算法的主要步骤包括:

(1)根据数据集生成候选项,首先生成单物品候选项集;

(2)设定最小支持度和最小置信度;

(3)过滤掉数据项集占比低于最小支持度的项,形成频繁项;

(4)根据(3)形成的频繁项集结果,进行项集之间的组合形成新的项集集合;

(5)重复(3)-(4),直到没有新的项集满足最小支持度;

(6)根据(5)形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集;

(7)根据(6)结果,生成关联规则,并计算其置信度。

5、Python实现

【1.示例数据】

本样本示例共包含4个数据,分别是:[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]

【2.生成候选项】

生成的候选项共有5个,分别是[1,], [2], [3], [4],[5]

【3.生成频繁项】

本次设定的最小支持度为0.5,其中频繁项L =[1,], [2], [3], [5],表示该四项的支持度>=0.5;另外S 集合给出了各项的支持度。

【4.频繁项组合】

在第(3)基础上,通过频繁项的组合共有9项符合大于最小支持度,见Lk项,包括4项1个数字,4项2个数字和1项3个数字集合的项集,可见后边的频繁都是前边项组合来的。另外Sk给出了各项的支撑度。

【5、生成关联规则】

生成关联规则,本次设定的最小置信度为0.7,总共发现三条关联规则分别是:{1}->{3};{2}->{5};{5}->{2};其中{2}和{5}可以换前后条件,但是{1}和{3}则不行。

6、学习经验总结

关联规则作为无监督算法,其可发现隐藏在数据背后的规律,因此该算法在商业上得到较多运用,尤其是分析用户的购物行为。该算法基本容易理解和实现。关键是在设定合适的最小支持度和最小置信度,因此如果在真正建模时候可以根据业务场景和实际运用来不断调整参数。


cccc
3楼 · 2021-04-08 12:16

本篇主要讲机器学习中的关联分析和Apriori算法,主要内容包括基本概念,场景应用,算法优缺点,实施步骤及Python实现等。

1、基本概念

关联分析是就是从大规模的数据集中寻找物品隐含关系(频繁模式,相关性或因果结构),关联分析的目的就是寻找频繁项集和发现关联规则。因此引入两个支持度和置信度来衡量着关联分析是否成功。

支持度是指数据集中包含该项集的记录占比;P(X) = count(X)/总数。

置信度是指在给定X条件下,Y发生的概率;P(Y|X)=count(X,Y)/count(X)。

因为关联分析主要目的是寻找频繁项集,如果通过暴力寻找,结果是几何性增长运算量大。如有A、B、C三个事物,其集合项就会有{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}等7中类型。包含N个物品的数据项集,其结果为2^n-1。为减少频繁项集的计算引入了Apriori算法。

Apriori原理是,如果某项集是频繁的,那么它的子集也是频繁的。反过来也是成立的。如图所示,如果{2,3}是非频繁的,那么其{0,2,3}{1,2,3}{0,1,2,3}都是非频繁项集。

同时在寻找关联规则中,如果前项可信度较低,那么其作为后项的可信度也会低,因此将后期不用在进行计算。

另外,Apriori在拉丁语中是指“来自以前”,因此它会使用先验知识,这在贝叶斯中的先验概率有异曲同工之处。

2、场景应用

(1):购物篮分析,通过分析商品销售记录,参考哪些商品经常一起出售,理解用户购物行为,能够应用到市场营销,物品摆放,库存管理,商品定价等环节。其中著名的商业应用实例就是啤酒和尿布的关系。

(2):共同词分析:对于给定的搜索词,发现推文中频繁出现的单词集合。

(3):流行趋势分析:从新闻网站点击浏览中分析新闻流行趋势,分析哪些类型新闻将被用户浏览到。

(4):搜索引擎推荐:在用户输入查询时推荐同时相关的查询词项。如今日头条的推荐搜索,相关词搜索等。

3、优缺点

该算法的优点是代码容易实现,结果容易理解,并能够直接应用于商业决策中。

该算法的缺点是在大数据集上运算速度可能比较慢。

4、实施步骤

Apriori算法的主要步骤包括:

(1)根据数据集生成候选项,首先生成单物品候选项集;

(2)设定最小支持度和最小置信度;

(3)过滤掉数据项集占比低于最小支持度的项,形成频繁项;

(4)根据(3)形成的频繁项集结果,进行项集之间的组合形成新的项集集合;

(5)重复(3)-(4),直到没有新的项集满足最小支持度;

(6)根据(5)形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集;

(7)根据(6)结果,生成关联规则,并计算其置信度。

5、Python实现

【1.示例数据】

本样本示例共包含4个数据,分别是:[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]

【2.生成候选项】

生成的候选项共有5个,分别是[1,], [2], [3], [4],[5]

【3.生成频繁项】

本次设定的最小支持度为0.5,其中频繁项L =[1,], [2], [3], [5],表示该四项的支持度>=0.5;另外S 集合给出了各项的支持度。

【4.频繁项组合】

在第(3)基础上,通过频繁项的组合共有9项符合大于最小支持度,见Lk项,包括4项1个数字,4项2个数字和1项3个数字集合的项集,可见后边的频繁都是前边项组合来的。另外Sk给出了各项的支撑度。

【5、生成关联规则】

生成关联规则,本次设定的最小置信度为0.7,总共发现三条关联规则分别是:{1}->{3};{2}->{5};{5}->{2};其中{2}和{5}可以换前后条件,但是{1}和{3}则不行。

6、学习经验总结

关联规则作为无监督算法,其可发现隐藏在数据背后的规律,因此该算法在商业上得到较多运用,尤其是分析用户的购物行为。该算法基本容易理解和实现。关键是在设定合适的最小支持度和最小置信度,因此如果在真正建模时候可以根据业务场景和实际运用来不断调整参数。


三岁奶猫
4楼 · 2021-04-08 13:20

Apriori算法的主要步骤包括:

(1)根据数据集生成候选项,首先生成单物品候选项集;

(2)设定最小支持度和最小置信度;

(3)过滤掉数据项集占比低于最小支持度的项,形成频繁项;

(4)根据(3)形成的频繁项集结果,进行项集之间的组合形成新的项集集合;

(5)重复(3)-(4),直到没有新的项集满足最小支持度;

(6)根据(5)形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集;

(7)根据(6)结果,生成关联规则,并计算其置信度。


是开心果呀 - 热爱生活
5楼 · 2021-04-08 14:33

1、从大规模数据集中寻找物品间的隐含关系被称作关联分析或者关联规则学习。


2、频繁项集:经常出现在一块的物品的集合。


3、关联规则:暗示两种物品之间可能存在很强的关系,而支持度和可信度是用来量化关联分析是否成功的方法。


4、一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。


5、可信度或置信度:针对关联规则来定义。例如{尿布,葡萄酒}的支持度为3/5,{尿布}的支持度为4/5,所以规则“尿布->葡萄酒”的可信度为3/4=0.75,即对于包含“尿布”的所有记录,规则对于其中75%的记录都适用。


6、Apriori原理可以减少关联规则学习时所需的计算量:


一般过程:


1)收集数据,适用任意方法;


2)准备数据:任何数据类型都可以,因为我们只保存集合;


3)分析数据:使用任意方法;


4)训练算法:使用Apriori算法来找到频繁项集;


5)测试算法:不需要测试过程;


6)使用算法:用于发现频繁项集以及物品之间的关联规则。


7、简述Apriori原理:意思是如果某个项集是频繁的,那么它的所有子集也是频繁的,在直观上这并没有什么帮助,但是如果反过来:也就是说如果一个项集是非频繁集,那么它的所有超集也是非频繁的,这是非常有用的。


8、关联分析的目标包括两项:发现频繁项集和发现关联规则。


9、Apriori算法发现频繁集的算法:


该算法首先生成所有单个物品的项集列表。接着扫描交易记录来查看哪些项集满足最小支持度要求,那些不满足最小支持度的集合会被去掉。然后,对剩下了的集合进行组合以生成包含两个元素的项集。接下来,再重新扫描交易记录,去掉不满足最小支持度的项集。该过程重复进行直到所有项集都被去掉。







希希
6楼 · 2021-04-09 09:04

Apriori算法的主要步骤包括:

(1)根据数据集生成候选项,首先生成单物品候选项集;

(2)设定最小支持度和最小置信度;

(3)过滤掉数据项集占比低于最小支持度的项,形成频繁项;

(4)根据(3)形成的频繁项集结果,进行项集之间的组合形成新的项集集合;

(5)重复(3)-(4),直到没有新的项集满足最小支持度;

(6)根据(5)形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集;

(7)根据(6)结果,生成关联规则,并计算其置信度。


小小收藏家
7楼 · 2021-04-09 17:10

Apriori算法的主要步骤包括:

(1)根据数据集生成候选项,首先生成单物品候选项集;

(2)设定最小支持度和最小置信度;

(3)过滤掉数据项集占比低于最小支持度的项,形成频繁项;

(4)根据(3)形成的频繁项集结果,进行项集之间的组合形成新的项集集合;

(5)重复(3)-(4),直到没有新的项集满足最小支持度;

(6)根据(5)形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集;

(7)根据(6)结果,生成关联规则,并计算其置信度。


小甜甜
8楼 · 2021-04-09 18:11

器学习中的关联分析和Apriori算法,主要内容包括基本概念,场景应用,算法优缺点,实施步骤及Python实现等。