一、什么是关联分析

关联分析:世间万物都有一定的联系

  1. 定义:发现存在于大量数据集中的关联性或相关性,从而描述了一个事物中某些属性同时出现的规律和模式。

  2. 应用场景【超市购物、服装搭配、图书购买等等】

  3. 实质:关联规则学习

二、关联分析的基本概念

1、项、项集

项:一个个分析对象
项集:若干个项组成的集合

举例说明,今天去超市购买苹果、葡萄、包子、馒头,这些称之为项,今天买的总的称之为项集。

2、支持度:项集出现的频繁程度

含义:项集在数据集中出现的频率即项集出现的次数除以数据集中的数量
数学表达式为:
P(A)=count(A)/count(dataset)P(A)=count(A)/count(dataset) P(A)=count(A)/count(dataset)

3、置信度:体现关联规则的可靠程度

含义:产品A与产品B出现的次数除以A出现的次数
数学表达式为:
置信度(A−−>B)=count(AB)/count(A)=P(AB)/P(A)=P(B∣A)置信度(A-->B)=count(AB)/count(A) =P(AB)/P(A)=P(B|A) 置信度(A−−>B)=count(AB)/count(A)=P(AB)/P(A)=P(B∣A)

上述表达式的实质是概率公式,意为在A发生的前提下,B发生的概率。
对应现实生活中的啤酒和尿不湿捆绑销售,则表示为啤酒和尿不湿放在一定的前提下,用户在买啤酒的时候有多大的概率会买尿不湿。

4、提升度:置信度相对于支持度来说提升了多少

数学表达式为:
提升度(A−−>B)=P(B∣A)/P(B)=P(AB)/P(A)∗P(B)提升度(A-->B)=P(B|A)/P(B)=P(AB)/P(A)*P(B) 提升度(A−−>B)=P(B∣A)/P(B)=P(AB)/P(A)∗P(B)

提升度的取值范围:
  1. 大于1:产品A和产品B捆绑时B卖出的几率比单独卖产品B卖出的几率大,有研究的意义
  2. 等于1:捆绑卖与单独卖的效益相同,转换成数学思维的话就是产品A和产品B之间是独立的没有联系的。
  3. 小于1:捆绑卖反而没有单独卖效益高,产生了负作用。

5、频繁项集:项集出现比较频繁

支持度是描述项集出现的频繁程度,因此针对支持度设定一个阈值【标准】,大于等于阈值则被称之为频繁项集

三、关联分析过程

1. 在数据集中,找出频繁项集

首先看一下组合的流程图:

#mermaid-svg-AhfTxxUvviqYAWOV .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-AhfTxxUvviqYAWOV .label text{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .node rect,#mermaid-svg-AhfTxxUvviqYAWOV .node circle,#mermaid-svg-AhfTxxUvviqYAWOV .node ellipse,#mermaid-svg-AhfTxxUvviqYAWOV .node polygon,#mermaid-svg-AhfTxxUvviqYAWOV .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-AhfTxxUvviqYAWOV .node .label{text-align:center;fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .node.clickable{cursor:pointer}#mermaid-svg-AhfTxxUvviqYAWOV .arrowheadPath{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-AhfTxxUvviqYAWOV .flowchart-link{stroke:#333;fill:none}#mermaid-svg-AhfTxxUvviqYAWOV .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-AhfTxxUvviqYAWOV .edgeLabel rect{opacity:0.9}#mermaid-svg-AhfTxxUvviqYAWOV .edgeLabel span{color:#333}#mermaid-svg-AhfTxxUvviqYAWOV .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-AhfTxxUvviqYAWOV .cluster text{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-AhfTxxUvviqYAWOV .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-AhfTxxUvviqYAWOV text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-AhfTxxUvviqYAWOV .actor-line{stroke:grey}#mermaid-svg-AhfTxxUvviqYAWOV .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-AhfTxxUvviqYAWOV .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-AhfTxxUvviqYAWOV #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-AhfTxxUvviqYAWOV .sequenceNumber{fill:#fff}#mermaid-svg-AhfTxxUvviqYAWOV #sequencenumber{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV #crosshead path{fill:#333;stroke:#333}#mermaid-svg-AhfTxxUvviqYAWOV .messageText{fill:#333;stroke:#333}#mermaid-svg-AhfTxxUvviqYAWOV .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-AhfTxxUvviqYAWOV .labelText,#mermaid-svg-AhfTxxUvviqYAWOV .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-AhfTxxUvviqYAWOV .loopText,#mermaid-svg-AhfTxxUvviqYAWOV .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-AhfTxxUvviqYAWOV .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-AhfTxxUvviqYAWOV .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-AhfTxxUvviqYAWOV .noteText,#mermaid-svg-AhfTxxUvviqYAWOV .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-AhfTxxUvviqYAWOV .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-AhfTxxUvviqYAWOV .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-AhfTxxUvviqYAWOV .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-AhfTxxUvviqYAWOV .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .section{stroke:none;opacity:0.2}#mermaid-svg-AhfTxxUvviqYAWOV .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-AhfTxxUvviqYAWOV .section2{fill:#fff400}#mermaid-svg-AhfTxxUvviqYAWOV .section1,#mermaid-svg-AhfTxxUvviqYAWOV .section3{fill:#fff;opacity:0.2}#mermaid-svg-AhfTxxUvviqYAWOV .sectionTitle0{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .sectionTitle1{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .sectionTitle2{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .sectionTitle3{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-AhfTxxUvviqYAWOV .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .grid path{stroke-width:0}#mermaid-svg-AhfTxxUvviqYAWOV .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-AhfTxxUvviqYAWOV .task{stroke-width:2}#mermaid-svg-AhfTxxUvviqYAWOV .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .taskText:not([font-size]){font-size:11px}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-AhfTxxUvviqYAWOV .task.clickable{cursor:pointer}#mermaid-svg-AhfTxxUvviqYAWOV .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-AhfTxxUvviqYAWOV .taskText0,#mermaid-svg-AhfTxxUvviqYAWOV .taskText1,#mermaid-svg-AhfTxxUvviqYAWOV .taskText2,#mermaid-svg-AhfTxxUvviqYAWOV .taskText3{fill:#fff}#mermaid-svg-AhfTxxUvviqYAWOV .task0,#mermaid-svg-AhfTxxUvviqYAWOV .task1,#mermaid-svg-AhfTxxUvviqYAWOV .task2,#mermaid-svg-AhfTxxUvviqYAWOV .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutside0,#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutside2{fill:#000}#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutside1,#mermaid-svg-AhfTxxUvviqYAWOV .taskTextOutside3{fill:#000}#mermaid-svg-AhfTxxUvviqYAWOV .active0,#mermaid-svg-AhfTxxUvviqYAWOV .active1,#mermaid-svg-AhfTxxUvviqYAWOV .active2,#mermaid-svg-AhfTxxUvviqYAWOV .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-AhfTxxUvviqYAWOV .activeText0,#mermaid-svg-AhfTxxUvviqYAWOV .activeText1,#mermaid-svg-AhfTxxUvviqYAWOV .activeText2,#mermaid-svg-AhfTxxUvviqYAWOV .activeText3{fill:#000 !important}#mermaid-svg-AhfTxxUvviqYAWOV .done0,#mermaid-svg-AhfTxxUvviqYAWOV .done1,#mermaid-svg-AhfTxxUvviqYAWOV .done2,#mermaid-svg-AhfTxxUvviqYAWOV .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-AhfTxxUvviqYAWOV .doneText0,#mermaid-svg-AhfTxxUvviqYAWOV .doneText1,#mermaid-svg-AhfTxxUvviqYAWOV .doneText2,#mermaid-svg-AhfTxxUvviqYAWOV .doneText3{fill:#000 !important}#mermaid-svg-AhfTxxUvviqYAWOV .crit0,#mermaid-svg-AhfTxxUvviqYAWOV .crit1,#mermaid-svg-AhfTxxUvviqYAWOV .crit2,#mermaid-svg-AhfTxxUvviqYAWOV .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-AhfTxxUvviqYAWOV .activeCrit0,#mermaid-svg-AhfTxxUvviqYAWOV .activeCrit1,#mermaid-svg-AhfTxxUvviqYAWOV .activeCrit2,#mermaid-svg-AhfTxxUvviqYAWOV .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-AhfTxxUvviqYAWOV .doneCrit0,#mermaid-svg-AhfTxxUvviqYAWOV .doneCrit1,#mermaid-svg-AhfTxxUvviqYAWOV .doneCrit2,#mermaid-svg-AhfTxxUvviqYAWOV .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-AhfTxxUvviqYAWOV .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-AhfTxxUvviqYAWOV .milestoneText{font-style:italic}#mermaid-svg-AhfTxxUvviqYAWOV .doneCritText0,#mermaid-svg-AhfTxxUvviqYAWOV .doneCritText1,#mermaid-svg-AhfTxxUvviqYAWOV .doneCritText2,#mermaid-svg-AhfTxxUvviqYAWOV .doneCritText3{fill:#000 !important}#mermaid-svg-AhfTxxUvviqYAWOV .activeCritText0,#mermaid-svg-AhfTxxUvviqYAWOV .activeCritText1,#mermaid-svg-AhfTxxUvviqYAWOV .activeCritText2,#mermaid-svg-AhfTxxUvviqYAWOV .activeCritText3{fill:#000 !important}#mermaid-svg-AhfTxxUvviqYAWOV .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-AhfTxxUvviqYAWOV g.classGroup text .title{font-weight:bolder}#mermaid-svg-AhfTxxUvviqYAWOV g.clickable{cursor:pointer}#mermaid-svg-AhfTxxUvviqYAWOV g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-AhfTxxUvviqYAWOV g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-AhfTxxUvviqYAWOV .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-AhfTxxUvviqYAWOV .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-AhfTxxUvviqYAWOV .dashed-line{stroke-dasharray:3}#mermaid-svg-AhfTxxUvviqYAWOV #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV .commit-id,#mermaid-svg-AhfTxxUvviqYAWOV .commit-msg,#mermaid-svg-AhfTxxUvviqYAWOV .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-AhfTxxUvviqYAWOV g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-AhfTxxUvviqYAWOV g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-AhfTxxUvviqYAWOV g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-AhfTxxUvviqYAWOV .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-AhfTxxUvviqYAWOV .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-AhfTxxUvviqYAWOV .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-AhfTxxUvviqYAWOV .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-AhfTxxUvviqYAWOV .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-AhfTxxUvviqYAWOV .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-AhfTxxUvviqYAWOV .edgeLabel text{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-AhfTxxUvviqYAWOV .node circle.state-start{fill:black;stroke:black}#mermaid-svg-AhfTxxUvviqYAWOV .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-AhfTxxUvviqYAWOV #statediagram-barbEnd{fill:#9370db}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-state .divider{stroke:#9370db}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-AhfTxxUvviqYAWOV .note-edge{stroke-dasharray:5}#mermaid-svg-AhfTxxUvviqYAWOV .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-AhfTxxUvviqYAWOV .error-icon{fill:#522}#mermaid-svg-AhfTxxUvviqYAWOV .error-text{fill:#522;stroke:#522}#mermaid-svg-AhfTxxUvviqYAWOV .edge-thickness-normal{stroke-width:2px}#mermaid-svg-AhfTxxUvviqYAWOV .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-AhfTxxUvviqYAWOV .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-AhfTxxUvviqYAWOV .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-AhfTxxUvviqYAWOV .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-AhfTxxUvviqYAWOV .marker{fill:#333}#mermaid-svg-AhfTxxUvviqYAWOV .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-AhfTxxUvviqYAWOV {color: rgba(0, 0, 0, 0.75);font: ;}

数据集
1
2
3
12
13
23
123

以上的流程图展示了,各项之间的组合,第一层是项,后两层是项集。
具体操作原理:
4. 遍历项,此时的每个项就是一个项集
5. 计算每个项集的支持度
6. 得到支持度大于指定阈值的项集

2.根据频繁项集生成关联规则

1.将符合条件的频繁项集拆分成两个非空子集,则这两个非空子集就构成关联规则。
2.针对每个规则分别计算置信度、提升度,选择符合要求且合适的关联规则

四、算法原理

1、Apriori算法

上述的寻找频繁项集的过程在数据集的项数多的情况下,数量会非常大。用Apriori算法优化,降低计算量。
原理:
1.如果一个项集是频繁项集,则其所有的非空子集也是频繁项集
2. 如果一个非空项集是非频繁项集,则其所有的父集也是非频繁项集
举例说明:若123是频繁项集,则断定12、13、23也是频繁项集;若12是非频繁项集,则123也是频繁项集,即其他数据集里只要含12都可直接判定其为非频繁项集。

2、Apriori算法流程

  1. 遍历数据集,生成候选项集Ck(k从1开始)C1表示1项集,每个项集中存在一个元素
  2. 计算Ck的支持度,排除低于阈值的项集,筛选出来的项集为频繁项集Lk(k从1开始)
  3. 频繁项集Lk进行组合得到候选项集C(k+1)
  4. 重复2、3的操作直到满足下述的条件之一时,停止。
  • 频繁K项集无法组合成候选的K+1项集【无候选项集可生成】
  • 所有的候选K项集的支持度都低于指定阈值,则无法生成频繁K项集【无频繁项集生成】
  • 简单来2步骤无法实现、3步骤无法实现,不得不终止。

3、Apriori算法代码实现

  1. 读取数据并整理数据

    def load_data(path):content = []with open(path, encoding="UTF 8") as f: #打开文件命名为ffor line in f:line = line.strip("\n")  #清除开头结尾的换行符content.append(line.split(",")) #将每一层的内容以,分隔开作为一个整体装入列表中return contentdataset = load_data("data.txt")print(len(dataset))
    

注:dataset 是一个二维列表,每个元素 一维列表 保存每个购物清单的商品记录。

  1. 寻找频繁K项集和关联规则

    # 导入算法包
    from efficient_apriori import apriori# 该函数会返回满足条件的频繁项集与关联规则
    '''itemsets,rules=apriori(transactions,min_support: float = 0.5, # min_support 支持度阈值min_confidence: float = 0.5) #  min_confidence 置信度阈值
    '''
    itemsets,rules=apriori(transactions=dataset,min_support= 0.04,min_confidence= 0.3)
    # 输出所有满足条件频繁k项集
    print(itemsets)
    # 输出关联规则
    print(rules)
    # 查看关联规则的支持度、置信度、提升度、确信度
    for r in rules:print(r)print("支持度",r.support)print("置信度",r.confidence)print("提升度",r.lift)print("确信度",r.conviction)
    

4、Apriori结果解读

rules 关联规则的结果

每个关联规则的4个指标

  • 支持度 support P(A)
  • 置信度 confidence P(B|A)
  • 提升度 lift P(B|A)/P(B)
  • 确信度 conviction 1-P(B)/1-P(B|A)
    上面只介绍了前3个指标,因此接下来要介绍一下确信度。
确信度

确信度(A−−>B)=(1−P(B))/(1−P(B∣A))确信度(A-->B)=(1-P(B))/(1-P(B|A)) 确信度(A−−>B)=(1−P(B))/(1−P(B∣A))
如某关联规则的确信度大,该规则的置信度大。

四、实际应用

在实际应用中最关键的是寻找合适的支持度、置信度阈值。最终的每个关联规则都会得到相应的四个指标,根据实际的应用场景,着重查看某指标,最终得到合适的关联规则,应用到实际的业务场景中去。

啤酒与尿布的蝴蝶效应——关联分析相关推荐

  1. 关联规则概念、啤酒加尿布引出购物篮分析、频繁项集、支持度+置信度+提升度

    关联规则概念.啤酒加尿布引出购物篮分析.频繁项集.支持度+置信度+提升度 目录

  2. 关联算法①——《啤酒与尿布》购物篮分析

    关联算法系列目录: 关联算法②--Apriori算法原理及python实现 关联算法③--Apriori算法实现主播关联度分析 关联算法是通过支出度,置信度,提高度三个指标,寻找有相关性的商品或其它物 ...

  3. [DataAnalysis]关联分析

    基本概念和算法 一般应用于购物篮事务( market basket transaction),表中每一行对应一个事务,包含一个唯一标识TID和给定顾客购买的商品的集合. 购物篮事务的例子 TID 项集 ...

  4. 关联分析(Association Analysis)--挖掘啤酒与尿布的关联规则

    通过本文我们将了解: x->y的含义 挖掘关联分析规则的两个步骤 aproori原理 算法优化–剪枝 如何生成频繁项集 没有重复的k-项候选集如何产生->剪枝–>计数–频繁k-项集 ...

  5. Apriori关联分析算法 -尿布与啤酒的故事

    ✴关联分析概述 选择物品间的关联规则也就是要寻找物品之间的潜在关系.要寻找这种关系,有两步,以超市为例 找出频繁一起出现的物品集的集合,我们称之为频繁项集.比如一个超市的频繁项集可能有{{啤酒,尿布} ...

  6. R语言关联分析之啤酒和尿布

    关联分析 概述 啤酒和尿布的故事,我估计大家都听过,这是数据挖掘里面最经典的案例之一.它分析的方法就关联分析. 关联分析,顾名思义,就是研究不同商品之前的关系.这里就发现了啤酒和尿布这两个看起来毫不相 ...

  7. 关联分析(Apriori算法) 面包 牛奶 尿布 啤酒 ...

    关联分析时,需要处理两个关键问题 1 大量数据集中发现模式,计算代价高 2 某些模式可能是虚假的,因为他们是偶然发生的 关联分析例题:从这个商品记录得出顾客喜欢同时购买那几样东西 TID 面包 牛奶 ...

  8. “啤酒与尿布”----关联分析的由来及真实性

    "啤酒与尿布"的故事发生在1990年代,美国某地的沃尔玛超市通过数据挖掘发现,在大联盟赛季的周五晚上,年轻的父亲会被妻子要求去买尿布,年轻的父亲在买尿布的同时,往往会给自己买几瓶啤 ...

  9. 读《啤酒与尿布》——大型超市购物篮中商品关联性分析

    此书通过沃尔玛.家乐福等大型超经典销售案例分析,总结出人们购物车中商品内在关联.通过关联摆放促进销售额.大小超市.门店.销售人员可从书中案例吸取灵感.提升业绩.对于数据挖掘人员,有两处可借鉴:商品关联 ...

最新文章

  1. ArcServer for Java 讲座
  2. 如何让类对象只在栈(堆)上分配空间?(转)
  3. 变频器端子阻抗3k_PLC与变频器连接问题分析
  4. 钟南山团队在患者粪便中检出新冠活病毒,国家卫健委回应!专家:做好这事很重要...
  5. linux oracle 11g ora-00845,Linux下安装Oracle11g , MEMORY_TARGET(AMM)小于/dev/shm处理(ORA-00845)...
  6. 2013-2017蓝桥杯省赛C++A组真题总结(题型及解法)
  7. java虚拟机相关知识点(全网最全)
  8. (转)对冲基金投身“另类数据”淘金热
  9. Search Engine Hacking – Manual and Automation
  10. win32application与win32 console application区别何在
  11. FactorBook:人和小鼠转录因子chip_seq数据库
  12. redis集群原理及搭建
  13. SEO和SEM的区别是什么
  14. chrome谷歌浏览器任务栏图标变白色解决方法
  15. c语言找出成绩的最大,C语言 求每个学生、每门课的平均成绩并找出最大值
  16. ecshop 匿名购买 买家可以自由选择是否匿名购买,仿淘宝匿名购买
  17. node.js读取文件中文乱码问题
  18. “Red and Black(红黑瓷砖),ZOJ2165”的一种解法
  19. proteus里面没有stm32怎么办_STM32难不难,如何学习?这几点老司机建议,你得好好收藏!...
  20. mail.jar下载 activation.jar下载

热门文章

  1. 【毕业季·进击的技术er】青春不散场
  2. vscode报错http://127.0.0.1:5500/11.html 找不到应用程序
  3. Java 移除List中的元素,这玩意讲究!
  4. windows截图快捷键_使用快捷键打开并使用Windows截图工具
  5. 大家来讨论怎么写概要设计
  6. 嵌入式学习为什么要选择4412开发板
  7. Onenet麒麟迷你板开发过程【附程序】
  8. 天琊 V1.0(测试 1125版)
  9. RAKsmart:Windows修改远程端口号的方法
  10. 信驰达微信iBeacon摇一摇周边方案ibeacon蓝牙设备