使用apriori来挖掘关联规则

1、apriori最重要的三个概念:
在这里插入图片描述
1、支持度
支持度 (Support):指某个商品组合出现的次数与总订单数之间的比例。
在这个例子中,我们可以看到“牛奶”出现了 4 次,那么这 5 笔订单中“牛奶”的支持度就是 4/5=0.8。

2、置信度
置信度 (Confidence):指的就是当你购买了商品 A,会有多大的概率购买商品 B,在包含A的子集中,B的支持度,也就是包含B的订单的比例。

置信度(牛奶→啤酒)= 3/4=0.75,代表购买了牛奶的订单中,还有多少订单购买了啤酒

3、提升度

提升度 (Lift):我们在做商品推荐或者风控策略的时候,重点考虑的是提升度,因为提升度代表的是A 的出现,对B的出现概率提升的程度。

提升度 (A→B) = 置信度 (A→B)/ 支持度 (B)

所以提升度有三种可能:

提升度 (A→B)>1:代表有提升;
提升度 (A→B)=1:代表有没有提升,也没有下降;
提升度 (A→B)<1:代表有下降。

提升度 (啤酒→尿不湿) =置信度 (啤酒→尿不湿) /支持度 (尿不湿) = 1.0/0.8 = 1.25,可见啤酒对尿不湿是有提升的,提升度为1.25,大于1。

可以简单理解为:在全集的情况下,尿不湿的概率为80%,而在包含啤酒这个子集中,尿不湿的概率为100%,因此,子集的限定,提高了尿不湿的概率,啤酒的出现,提高了尿不湿的概率。

2、风控策略自动化挖掘

在电商的聊天对话中,有大量的欺诈消息和垃圾消息,挖掘看看哪些是高风险的词汇,可以当成违禁词库,直接进行屏蔽了。下面数据集包含欺诈消息文本:
示例:

我是做涮.单的,提高店铺等.级,排.名,权.重,好.评,成交率,让顾客进店更信任,从而快速下单,提高成交率全网最低价+V咨.询,免费送100粉丝,提高店铺活跃度:Rreeww6
安全提醒:支付完成已冻结 商户未提升额度《收款超额》导致您购买的商品资金冻结,双方无法查到交易详情,请商家复制以下订单编号至手机浏览器恢复出售。 36.xxx.com
系统提醒:商铺暂停交易,由于【店铺收款累计额度超出】导致,请等待商户设置完成后再试。商户复制以下链接至手机浏览器打开!4s.shanghu872.cc
系统通知:已停止支付,检测到该商户存在风险,【收银上限】导致,请商家复制网址联系专员解开上限!237.xx.cc
警告⚠️通知:拒绝❌支付,当前店铺存在风险《店铺流水未重新认证》请商家及时复制链接到浏览器联系专员重新认证。237.xxx.cc
系统提示:支付已拦截,商铺未授权收款上限导致,请等待店主设置完成再试,店主复制以下链接至手机浏览器打开恢复!xx-5l.com

安装python包

pip install mlxtend -i https://pypi.tuna.tsinghua.edu.cn/simple

代码:

import jieba
from mlxtend.frequent_patterns import apriori
from mlxtend.preprocessing import TransactionEncoder
import pandas as pd

dataset = []
for line in open("im_cheat_msg.csv"):
    ll = line.strip()
    words = jieba.cut(ll)
    cut_words = list(words)
    dataset.append(cut_words)

# 将数据集转换为二进制矩阵
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)

# 使用Apriori算法查找频繁项集
frequent_itemsets = apriori(df, min_support=0.4, use_colnames=True)

frequent_itemsets_df = pd.DataFrame(frequent_itemsets)
# 打印频繁项集
frequent_itemsets_df.to_csv("im_msg_cheat_apriori_res.csv", sep = "\t")

结果:

	support	itemsets
0	0.9655172413793104	frozenset({'.'})
1	0.43103448275862066	frozenset({':'})
2	0.5344827586206896	frozenset({'cc'})
3	0.5172413793103449	frozenset({'商家'})
4	0.6724137931034483	frozenset({'复制'})
5	0.4482758620689655	frozenset({'导致'})
6	0.41379310344827586	frozenset({'已'})
8	0.4482758620689655	frozenset({'您'})
9	0.46551724137931033	frozenset({'未'})
10	0.5517241379310345	frozenset({'浏览器'})
11	0.43103448275862066	frozenset({'订单'})
12	0.6379310344827587	frozenset({'请'})
。。。
54	0.3258426966292135	frozenset({'!', '请', '.'})
55	0.3146067415730337	frozenset({'复制', '链接', 'cc'})
56	0.3146067415730337	frozenset({'请', '浏览器', '复制'})
57	0.3146067415730337	frozenset({'浏览器', '链接', '复制'})
58	0.3146067415730337	frozenset({'.', '复制', '链接', 'cc'})
59	0.3146067415730337	frozenset({'.', '请', '浏览器', '复制'})
60	0.3146067415730337	frozenset({'.', '浏览器', '链接', '复制'})

进一步的

import jieba
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import fpgrowth
from mlxtend.frequent_patterns import association_rules
import pandas as pd



dataset = []
for line in open("im_cheat_msg.csv"):
    ll = line.strip().replace(",","")
    words = jieba.cut(ll)
    cut_words = list(words)
    dataset.append(cut_words)

# 将数据集转换为二进制矩阵
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)

# 使用Apriori算法查找频繁项集
frequent_itemsets = apriori(df, min_support=0.3, use_colnames=True)
# frequent_itemsets_df = pd.DataFrame(frequent_itemsets)
# # 打印频繁项集
# frequent_itemsets_df.to_csv("im_msg_cheat_apriori_res_2.csv", sep = "\t")


#求关联规则,设置最小置信度为0.3
rules = association_rules(frequent_itemsets,
                          metric = 'confidence',
                          min_threshold = 0.3
                          )

rules.rename(columns = {'antecedents':'from','consequents':'to','support':'sup',
                        'confidence':'conf'},inplace = True)

rules = rules[['from','to','sup','conf','lift']]

print(rules)

# rules = rules[rules['to']==frozenset({'Risk'})]

rules['from'] = rules['from'].apply(lambda x:set(x))
rules['to']   = rules['to'].apply(lambda x:set(x))
rules.to_csv('rules_1.csv',header=True,index=False)
         from             to       sup      conf      lift
0        (cc)            (.)  0.370787  1.000000  1.483333
1         (.)           (cc)  0.370787  0.550000  1.483333
2        (商家)            (.)  0.337079  1.000000  1.483333
3         (.)           (商家)  0.337079  0.500000  1.483333
4         (.)           (复制)  0.483146  0.716667  1.483333
..        ...            ...       ...       ...       ...
185  (链接, 复制)       (浏览器, .)  0.314607  0.848485  2.097643
186     (浏览器)    (链接, ., 复制)  0.314607  0.777778  2.097643
187       (.)  (浏览器, 链接, 复制)  0.314607  0.466667  1.483333
188      (链接)   (浏览器, ., 复制)  0.314607  0.848485  2.097643
189      (复制)   (浏览器, ., 链接)  0.314607  0.651163  2.069767

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/244409.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win10错误代码0x80070005的解决方法

在Win10电脑操作过程中&#xff0c;用户可能会遇到各种各样的问题&#xff0c;从而影响到自己正常使用电脑办公。现在&#xff0c;就有用户遇到了错误码0x80070005的提示&#xff0c;但不清楚具体的解决方法。下面小编给大家分享不同的解决方法&#xff0c;解决后Win10电脑就能…

IP属地变化背后的原因

随着互联网的普及和技术的不断发展&#xff0c;IP属地变化的现象越来越受到人们的关注。近日&#xff0c;有网友发现自己的IP属地发生了变化&#xff0c;引发了广泛讨论。那么&#xff0c;IP属地为什么会发生变化呢&#xff1f; 首先&#xff0c;网络环境的变化是导致IP属地变化…

如何设置自动通过好友申请+自动回复?

1. 提供即时服务 当用户发送微信消息时&#xff0c;微信可以自动回复相应的内容&#xff0c;如欢迎语、订单确认、问题解答等&#xff0c;提供即时服务&#xff0c;不需要用户等待或反复发送消息。这种自动回复可以在特定的时间内自动通过好友请求&#xff0c;发送预先设置的…

PFA气体吸收瓶耐强酸PFA洗气瓶PFA鼓泡瓶特点分析

洗气瓶的别称有多种&#xff0c;取决于不同的地区和行业。以下是一些常见的别称&#xff1a; 1. 清洗瓶&#xff1a;因其主要用途是清洗气体样品而得名。 2. 干燥瓶&#xff1a;用于干燥气体样品的容器。 3. 气体净化瓶&#xff1a;用于净化气体样品的设备。 4. 气体清洗器…

性能测试 —— 认识 jmeter (性能测试流程 性能测试通过标准)

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 1 性能测试技能树   性能测试是一项综合性的工作&#xff0c;致力于暴露性能问题&#xff0c;评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户来验证系统…

docker-harbor的私有仓库

仓库 保存镜像 私有&#xff0c;自定义用户的形式登录仓库&#xff0c;拉取或者上传镜像&#xff08;内部管理的用户&#xff09; harbor:VMware公司开发的&#xff0c;开源的企业级的docker registry项目 帮助用户快速的搭建一个企业级的docker仓库的服务 支持中文 harbor…

磁盘空间分析工具你知道几个!8个易学易用的磁盘分析工具,让你对硬盘知根知底

以下是我对可用磁盘空间分析工具(有时称为存储分析器)的首选列表。在我的电脑上试用了其中几个应用程序后,我可以确认这里列出的应用程序是100%免费使用的,并且在弄清楚是什么填满了硬盘、闪存驱动器或外部驱动器中做了很多工作,其中一些甚至允许你直接从程序中删除文件。…

曹操出行集成:无代码API连接广告推广与用户运营

曹操出行集成的必要性 随着科技的不断进步&#xff0c;无代码API集成已经成为企业提升效率、优化营销策略的重要手段。对于新能源汽车共享服务领导者曹操出行而言&#xff0c;将其服务集成至企业营销系统中&#xff0c;不仅可以提升客户体验&#xff0c;还能加强品牌的市场竞争…

智慧工地防盗新手段:TSINGSEE青犀工地智能监控防盗系统方案

工地监控大家都很了解&#xff0c;主要是利用视频监控摄像头全方位无死角地对工地场所进行监控&#xff0c;并在汇聚平台&#xff08;如&#xff1a;安防监控系统EasyCVR平台&#xff09;上进行统一汇聚与分发。不过随着科技的发展&#xff0c;智能视频监控在工地监管方面又有了…

2023iEnglish学习成长营结营 助力自主阅读习惯养成

iEnglish智能英语学习解决方案日前消息,2023年最新一期的365天和1000天“iEnglish学习成长营”顺利结营。据悉,截至今年12月,完成365天和1000天每天坚持不低于30分钟的英语原版阅读人数分别累计突破15万人和2万人。而当前,21天、100天、365天以及1000天四种不同目标和意义的iEn…

Service Intelligence重磅来袭!AI驱动服务云更智能

11月中旬&#xff0c;Salesforce宣布推出了Service Intelligence &#xff0c;这是一款适用于Service Cloud的全新分析应用程序&#xff0c;旨在提高座席工作效率、削减成本并提高客户满意度。 Service Intelligence由Salesforce的实时超大规模数据引擎Data Cloud提供支持&am…

【设计模式--行为型--状态模式】

设计模式--行为型--状态模式 状态模式定义结构案例优缺点使用场景 状态模式 定义 对有状态的对象&#xff0c;把复杂的判断逻辑提取到不同的状态对象中&#xff0c;允许状态对象在其内部状态发生改变时改变其行为。 结构 环境角色&#xff08;Context&#xff09;&#xff…

定位某个类是在哪个JAR的什么版本开始出现的

背景 我们在依赖第三方JAR时&#xff0c;同时也会间接的依赖第三方JAR引用的依赖&#xff0c;而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时&#xff0c;可能会导致第三方JAR的在运行时无法找到某些方法或类&#xff0c;从而无法正常使用。 如我正在开发的一个…

华为配置策略路由(基于IP地址)示例

组网需求 如图1所示&#xff0c;汇聚层Switch做三层转发设备&#xff0c;接入层设备LSW做用户网关&#xff0c;接入层LSW和汇聚层Switch之间路由可达。汇聚层Switch通过两条链路连接到两个核心路由器上&#xff0c;一条是高速链路&#xff0c;网关为10.1.20.1/24&#xff1b;另…

YOLOv8使用SAHI切片辅助推理:《SAHI切片辅助推理解析》推理教程(附推理源代码)

💡该教程为改进RT-DETR指南,属于《芒果书》📚系列,包含大量的原创改进方式🚀 💡🚀🚀🚀内含改进源代码 按步骤操作运行改进后的代码即可💡更方便的统计更多实验数据,方便写作 YOLOv8使用SAHI切片辅助推理:《SAHI切片辅助推理解析》推理教程(附推理源代码…

家委会的职责

家委会&#xff0c;起着至关重要的作用。然而&#xff0c;而很多人对家委会的职责并不清楚。 家委会是家长与学校之间的沟通桥梁。家委会成员需要积极与学校沟通&#xff0c;了解学校的各项政策和规定&#xff0c;并及时向家长传达。同时&#xff0c;家委会也需要收集家长的意见…

构建外卖小程序:技术实践与代码示例

外卖小程序的开发涉及前后端的多个技术领域&#xff0c;从用户界面设计到数据库管理&#xff0c;都需要巧妙的技术方案。在本文中&#xff0c;我们将以微信小程序平台为例&#xff0c;通过简单的代码示例&#xff0c;介绍如何搭建一个基本的外卖小程序。 1. 准备工作 首先&a…

量子计算挑战赛启动!空中客车公司和宝马集团联手发起

&#xff08;图片来源&#xff1a;网络&#xff09; 空中客车公司&#xff08;Airbus&#xff09;和宝马集团&#xff08;BMW&#xff09;共同发起了一项名为“探索量子迁移率”的全球量子计算挑战赛&#xff0c;旨在解决航空和汽车领域仍未克服的紧迫难题。 此次挑战赛汇聚了…

微信小程序uniapp记住密码

记住密码功能 在请求登录接口成功后&#xff0c;我们需要判断用户是否勾选记住密码&#xff0c;如果是&#xff0c;则将记住密码状态、账号信息存入本地。 下次登录时&#xff0c;获取本地的记住密码状态&#xff0c;如果为true则获取本地存储的账号信息&#xff0c;将信息回填…

Google为什么它还没有开发出ChatGPT,如何反超,小公司创新的产品如何反超巨头 行业巨头如何防止被小公司或创新型公司的产品超越

Google虽然收购了Geoffrey Hinton及其在多伦多大学的两名研究生组成的公司DNNresearch Inc.&#xff0c;但为什么它还没有开发出类似ChatGPT的产品&#xff0c;可能有以下几个原因&#xff1a; 不同的研发方向&#xff1a;Google在人工智能领域的研发方向可能与OpenAI&#xff…