拓端tecdat|python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
原文链接:http://tecdat.cn/?p=7318
原文出处:拓端数据部落公众号
产品可以根据销售者进行分类
在Evolution上,有一些顶级类别(“药品”,“数字商品”,“欺诈相关”等)细分为特定于产品的页面。每个页面包含不同供应商的几个列表。
我根据供应商同现关系在产品之间建立了一个图表,即每个节点对应于一种产品,其边权重由同时出售两种事件产品的供应商数量定义。因此,举例来说,如果有3个供应商同时出售甲斯卡林和4-AcO-DMT,那么我的图在甲斯卡林和4-AcO-DMT节点之间的权重为3。我使用 基于随机块模型的分层边缘 实现来生成以下Evolution产品网络的可视化:
代码片段
importimport pandaspandas asas pdpdimportimport graph_toolgraph_t as gt
import graph_tool.draw
import graph_tool.community
import itertools
import collections
import matplotlib
import math
In [2]:gt.draw.graph_draw(g, pos=pos, vertex_fill_color=b,edge_control_points=cts,vertex_size=20,vertex_text=g.vertex_properties['label'],vertex_text_rotation=g.vertex_properties['text_rot'],vertex_text_position=1,vertex_font_size=20,vertex_font_family='mono',vertex_anchor=0,vertex_color=b,vcmap=matplotlib.cm.Spectral,ecmap=matplotlib.cm.Spectral,edge_color=g.edge_properties['color'],bg_color=[0,0,0,1],output_size=[1024*2,1024*2],output='/home/aahu/Desktop/evo_nvends={0}.png'.format(MIN_SHARED_VENDORS))
saving to disk...
它包含73个节点和2,219个边缘(我在数据中找到了3,785个供应商)。
代码片段:
# coding: utf-8from bs4 import BeautifulSoup
import re
import pandas as pd
import dateutil
import osimport loggingdef main():for datestr in os.listdir(DATA_DIR):d1 = os.path.join(DATA_DIR, datestr)fdate = dateutil.parser.parse(datestr)catdir = os.path.join(d1,'category')if os.path.exists(catdir):logger.info(catdir)df = catdir_to_df(catdir, fdate)outname ='category_df_'+datestr+'.tsv'df.to_csv(os.path.join(DATA_DIR,outname),'\t',index=False)if __name__=='__main__':main()
权重较高的边缘绘制得更明亮。节点使用随机块模型进行聚类,并且同一聚类中的节点被分配相同的颜色。图的上半部分(对应于毒品)和下半部分(对应于非毒品,即武器/黑客/信用卡/等)之间有明显的分界。这表明销售毒品的供应商销售非毒品的可能性较小,反之亦然。
91.7%的出售速度
关联规则学习是解决市场篮子分析问题的一种直接且流行的方法。传统的应用是根据其他顾客的购物车向购物者推荐商品。由于某些原因,典型的例子是“购买尿布的顾客也购买啤酒”。
我们没有来自Evolution上公开帖子的抓取的客户数据。但是,我们确实拥有每个供应商所销售产品的数据,可以帮助我们量化上述视觉分析所建议的结果。
这是我们的数据库的示例(完整的文件有3,785行(每个供应商一个)):
Vendor | Products |
---|---|
MrHolland | [‘Cocaine’, ‘Cannabis’, ‘Stimulants’, ‘Hash’] |
Packstation24 | [‘Accounts’, ‘Benzos’, ‘IDs & Passports’, ‘SIM Cards’, ‘Fraud’] |
Spinifex | [‘Benzos’, ‘Cannabis’, ‘Cocaine’, ‘Stimulants’, ‘Prescription’, ‘Sildenafil Citrate’] |
OzVendor | [‘Software’, ‘Erotica’, ‘Dumps’, ‘E-Books’, ‘Fraud’] |
OzzyDealsDirect | [‘Cannabis’, ‘Seeds’, ‘MDMA’, ‘Weed’] |
TatyThai | [‘Accounts’, ‘Documents & Data’, ‘IDs & Passports’, ‘Paypal’, ‘CC & CVV’] |
PEA_King | [‘Mescaline’, ‘Stimulants’, ‘Meth’, ‘Psychedelics’] |
PROAMFETAMINE | [‘MDMA’, ‘Speed’, ‘Stimulants’, ‘Ecstasy’, ‘Pills’] |
ParrotFish | [‘Weight Loss’, ‘Stimulants’, ‘Prescription’, ‘Ecstasy’] |
关联规则挖掘是计算机科学中的一个巨大领域–在过去的二十年中,已经发表了数百篇论文。
我运行的FP-Growth算法的最小允许支持为40,最小允许置信度为0.1。该算法学习了12,364条规则。
规则前项 | 后项 | 支持度 | 置信度 |
---|---|---|---|
[‘Speed’, ‘MDMA’] | [‘Ecstasy’] | 155 | 0.91716 |
[‘Ecstasy’, ‘Stimulants’] | [‘MDMA’] | 310 | 0.768 |
[‘Speed’, ‘Weed’, ‘Stimulants’] | [‘Cannabis’, ‘Ecstasy’] | 68 | 0.623 |
[‘Fraud’, ‘Hacking’] | [‘Accounts’] | 53 | 0.623 |
[‘Fraud’, ‘CC & CVV’, ‘Accounts’] | [‘Paypal’] | 43 | 0.492 |
[‘Documents & Data’] | [‘Accounts’] | 139 | 0.492 |
[‘Guns’] | [‘Weapons’] | 72 | 0.98 |
[‘Weapons’] | [‘Guns’] | 72 | 0.40 |
拓端tecdat|python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析相关推荐
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- MapReduce框架下的FP Growth算法概述
转载自:http://blog.sina.com.cn/s/blog_68ffc7a40100uebi.html 前面的博客分析了关联分析中非常重要的一个算法-FP Growth.该算法根据数据库在内 ...
- Frequent Pattern 挖掘之二(FP Growth算法)(转)
FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对.为了达到这样的效果,它采用了一种简洁的数据结 ...
- FP Growth算法
转载自:http://blog.sina.com.cn/s/blog_68ffc7a40100uebg.html FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法 ...
- MapReduce框架下的FP Growth算法详解
转载自:http://blog.sina.com.cn/s/blog_68ffc7a40100uebk.html Sharding 这一步没什么好讲的,将数据库分成连续的大小相等的几个块,放置在不同的 ...
- FP Growth算法详解
看了n多资料,就这篇说的比较详细,适合初学者 FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对 ...
- 拓端tecdat|bilibili视频流量数据潜望镜
最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
最新文章
- 学习笔记--zabbix
- 一致性哈希算法——算法解决的核心问题是当slot数发生变化时,能够尽量少的移动数据
- Windows - CMD窗口UTF8编码乱码问题的解决!
- MongodDB数据库安装和简单使用
- 吴恩达《机器学习》学习笔记一——初识机器学习
- 腾讯Light·公益创新挑战赛圆满收官,郎朗担任公益传播大使
- mysql function 参数默认值_MySQL参数log_bin_trust_function_creators介绍
- [解决] term.js 记录遇到的问题
- python信息安全书籍_信息安全从业者书单推荐
- 语音情感识别的优选方法与流程
- 《嵌入式设备驱动开发精解》——1.1 本书内容的组织
- c#参数修饰符-ref
- Android中实现Activity的透明背景效果
- 异步流程控制 java_Javascript异步流程控制之串行执行详解
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者
- Web前端开发技术概述
- org.dom4j.io.SAXReader解析xml
- GNSS基本概述——GPS,BD,GLONASS,Galileo
- python turtle setheading_Python turtle.right与turtle.setheading的区别
- Mint-Ui安装及使用办法