前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析

python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析

作者头像
拓端
发布2020-12-30 17:08:18
发布2020-12-30 17:08:18
75200
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

产品可以根据销售者进行分类

在Evolution上,有一些顶级类别(“药品”,“数字商品”,“欺诈相关”等)细分为特定于产品的页面。每个页面包含不同供应商的几个列表。

我根据供应商同现关系在产品之间建立了一个图表,即每个节点对应于一种产品,其边权重由同时出售两种事件产品的供应商数量定义。因此,举例来说,如果有3个供应商同时出售甲斯卡林和4-AcO-DMT,那么我的图在甲斯卡林和4-AcO-DMT节点之间的权重为3。我使用 基于随机块模型的分层边缘 实现来生成以下Evolution产品网络的可视化:

代码片段

代码语言:javascript
代码运行次数:0
复制



importimport  pandaspandas  asas  pdpd
importimport  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个供应商)。

代码片段:

代码语言:javascript
代码运行次数:0
复制

# coding: utf-8


from bs4 import BeautifulSoup
import re
import pandas as pd
import dateutil
import os


import logging




def 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行(每个供应商一个)):

供应商

产品

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 产品可以根据销售者进行分类
  • 91.7%的出售速度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档