机器学习--无监督学习--关联规则(预测行为)
应用场景
找到事物和事物之间的联系。比如购物篮分析,根据顾客的购物篮情况,推测,哪些产品经常一起购买,这样商场更明白如何进行推销。
常见算法
Apriori。通过对物品的支持度、置信度、提升度的计算,以此了解两个物品之间的关联性。这里其实涉及了两个目标:
1、了解我当前应该怎么捆绑销售,就是直接把某两类商品绑起来卖。这个结果,需要这样来得到:买A,也会买B的概率(捆绑支持度)是75%,如果大于设定的支持度阈值,代表可以考虑捆绑销售;
2、了解我以后可以怎么向客户推荐,就是看到你买了A,就问问,你要不要买B啊。并且推销成功的概率很大。这个结果,需要这样来得到:先计算只要买A,就一定会买B的概率(置信度),然后计算单独购买B的概率(单独支持度),用置信度/支持度,得到的数据,如果等于1,代表他俩没啥关系,就是捆绑买的概率和单独买B的概率一样;如果大于1,代表有正相关性,有很大关系,比如是1.7,那就是顾客购买B的可能性比随机情况下高70%,也就是买了A我太有可能买B了;如果小于1,代表负相关性,表示他俩一起购买的概率,比单独购买B的概率还要低。
算法示例
Transaction ID | Items
1 | A, C, D
2 | B, C, E
3 | A, B, C, E
4 | B, E
第一步 确定关联规则,即确定要关注的组合
先根据既往经验,结合行业、市场、具体业务,确定最小支持度和最小置信度,比如最小支持度50%,最小置信度也是50%。支持度这里阈值的理解,是这样的:大于等于50%的可以考虑进行捆绑销售;对于30%-50%的,属于中等支持度,这种可以考虑促销的时候用来捆绑销售;低于30%的就没必要再看考了,大概率没人这么买。然后基于如下方式,确定要开始关注的组合:
1)确定单个元素,支持度大于最小支持度的,有{A} 50%,{B} 75%,{C} 75%;{E} 75%。支持度的计算公式为:比如{A}的支持度,就是4个交易,有2个买了A,所以就是2/4=50%;
2)基于步骤1,确定两两组合元素,支持度大于最小支持度的,有{A,C} 50%,{B,C} 50%,{B,E} 75%;{C,E} 75%。支持度的计算公式为:比如{A,B}的支持度,就是4个交易,有1个同时买了A,B,所以就1/4=25%;
3)基于步骤2,确定三个组合元素,支持度大于最小支持度的,有{B,C,E} 50%;
4)基于步骤3,确定它的非空子集有:{B},{C},{E},{B,C},{B,E},{C,E}。然后对应的下表,就是我们需要继续关注的组合,比如买了B的时候,买C的支持度和置信度是多少,以此把每一行的组合都计算完。
第二步 计算每个组合的支持度和置信度
以下举一个例子({A} => {C},也就是买了A又买C)来说明计算的方式,就不把每个组合的计算过程都写出来了。
【{A} => {C}】
1、买A也买C的支持度(Support)。支持度表示规则在所有交易中出现的频率。这里,我们计算A和C一起购买的支持度:
- 有2个交易同时购买了A和C(交易1, 3)。
- 总共有4个交易。
支持度:支持度({A,C})=2/4=0.5
2、置信度(Confidence)。置信度表示在购买A的交易中,有多少比例也购买了C:
- 有2个交易同时购买了A和C(交易1, 3)。
- 总共有2个交易购买了A(交易1, 3)。
置信度:置信度({A}=>{C})=2/2=1
3、买C的支持度(Support)。C在所有交易中出现的频率:
- 有3个交易购买了C(交易1, 2, 3)。
- 总共有4个交易。
支持度:支持度({C})=3/4=0.75
4、提升度(Lift)。提升度表示A和C一起购买的概率与单独购买C的概率之比:
提升度:提升度=置信度({A}=>{C}) / 支持度({C})=1/0.75=4/3≈1.33
第三步 根据结果,做出总结
本文来自博客园,作者:1234roro 当你迷惘的时候,开始学习吧!当你目标清晰的时候,开始学习吧!转载请注明原文链接:https://www.cnblogs.com/1234roro/p/18298029
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构