apyori apriori 损坏的项目集输出

     2023-03-23     226

关键词:

【中文标题】apyori apriori 损坏的项目集输出【英文标题】:apyori apriori broken itemset output 【发布时间】:2020-06-08 19:00:21 【问题描述】:

我正在尝试使用 apyori 模块运行关联规则。 我的“项目”是各种手术(行 = 患者病例),正如您在下面的数据框示例中看到的那样。 Apyori 未能捕捉到正确的标签,它似乎正在用字母切割标签。我过去从未见过这样的行为。除非我遗漏了什么,否则我的数据集已正确格式化以供 apyori 使用。任何时候进行的手术不超过 2 次。

这是我得到的一个例子:

RelationRecord(items=frozenset('v', '_'), support=0.10309278350515463, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('v', '_'), confidence=0.10309278350515463, lift=1.0), OrderedStatistic(items_base=frozenset('_'), items_add=frozenset('v'), confidence=0.10638297872340426, lift=1.0319148936170213), OrderedStatistic(items_base=frozenset('v'), items_add=frozenset('_'), confidence=1.0, lift=1.0319148936170213)]) Support: 0.10309278350515463 Confidence: frozenset('v', '_') Lift:
0.10309278350515463

frozenset 坏了... 这是我的输入 dataframe.head():

   sm-to-sm_bowel_anastom  small_bowel_incision_nec  sm_bowel_exteriorization  \
0                       0                         0                         0   
1                       0                         0                         0   
2                       0                         0                         0   
3                       0                         0                         0   
4                       0                         0                         0   
5                       0                         0                         0   
6                       0                         0                         0   
7                       0                         0                         0   
8                       0                         0                         0   
9                       0                         0                         0   

   incisional_hernia_repair  colonoscopy  anal_anastomosis  \
0                         0            0                 0   
1                         0            0                 0   
2                         0            0                 0   
3                         0            0                 0   
4                         0            0                 0   
5                         0            0                 0   
6                         0            0                 0   
7                         0            0                 0   
8                         0            0                 0   
9                         0            0                 0   

   c.a.t._scan_of_abdomen  open_sigmoidectomy_nec  small_bowel_suture_nec  \
0                       0                       0                       0   
1                       0                       0                       0   
2                       0                       0                       0   
3                       0                       0                       0   
4                       0                       0                       0   
5                       0                       0                       0   
6                       0                       0                       0   
7                       0                       0                       0   
8                       0                       0                       0   
9                       0                       0                       0   

   lap_pt_ex_lrg_intest_nec  ...  abdperneal_res_rectm_nos  \
0                         0  ...                         0   
1                         0  ...                         0   
2                         0  ...                         0   
3                         0  ...                         0   
4                         0  ...                         0   
5                         0  ...                         0   
6                         0  ...                         0   
7                         0  ...                         0   
8                         0  ...                         0   
9                         0  ...                         0   

   ureteral_catheterization  cv_cath_plcmt_w_guidance  \
0                         0                         0   
1                         0                         0   
2                         0                         0   
3                         0                         0   
4                         0                         0   
5                         0                         0   
6                         0                         0   
7                         0                         0   
8                         0                         0   
9                         0                         0   

   clos_large_bowel_biopsy  lap_right_hemicolectomy  continent_ileostomy  \
0                        0                        0                    0   
1                        0                        0                    0   
2                        0                        0                    0   
3                        0                        0                    0   
4                        0                        0                    0   
5                        0                        0                    0   
6                        0                        0                    0   
7                        0                        0                    0   
8                        0                        0                    0   
9                        0                        0                    1   

   insert_endotracheal_tube  mult_seg_sm_bowel_excis  \
0                         0                        0   
1                         0                        0   
2                         0                        0   
3                         0                        0   
4                         0                        0   
5                         0                        0   
6                         0                        0   
7                         0                        0   
8                         0                        0   
9                         0                        0   

   small-to-large_bowel_nec  opn_lft_hemicolectmy_nec  
0                         1                         1  
1                         0                         0  
2                         0                         0  
3                         0                         0  
4                         0                         0  
5                         0                         0  
6                         1                         0  
7                         0                         0  
8                         0                         0  
9                         0                         0  

[10 rows x 97 columns]

我这样运行规则:

from apyori import apriori as ap
rulez = ap(ohe_df, min_support = 0.1, min_length = 2,use_colnames=True)

我只有 2 次手术同时进行,所以我不希望有 >2 项的组合。

frozenset 发生了什么?

谢谢

【问题讨论】:

【参考方案1】:

您需要将输入数据放在列表列表中,其中每个列表是一对组合在一起的事物。我编了一些数据:

# Replace 1's with the column name
df = df.replace(1, pd.Series(df.columns, df.columns))

# get a list of non-zero values per row into an array of lists
ops = df.apply(lambda x: [v for v in x.values if v!=0], axis=1).values

ops 变量现在看起来不错:

array([list(['small_bowel_incision_nec', 'colonoscopy']),
       list(['sm_bowel_exteriorization', 'colonoscopy']),
       list(['sm-to-sm_bowel_anastom', 'small_bowel_suture_nec']),
       list(['small_bowel_incision_nec', 'colonoscopy']),
       list(['anal_anastomosis', 'open_sigmoidectomy_nec']),
       list(['colonoscopy', 'c.a.t._scan_of_abdomen']),
       list(['sm-to-sm_bowel_anastom', 'open_sigmoidectomy_nec']),
       list(['c.a.t._scan_of_abdomen', 'small_bowel_suture_nec']),
       list(['incisional_hernia_repair', 'small_bowel_suture_nec']),
       list(['small_bowel_incision_nec', 'colonoscopy'])], dtype=object)

# Run apriori, getting them as a list
rulez = list(ap(ops, min_support = 0.1, min_length = 2,use_colnames=True))

样本输出

[RelationRecord(items=frozenset('anal_anastomosis'), support=0.1, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('anal_anastomosis'), confidence=0.1, lift=1.0)]),
 RelationRecord(items=frozenset('c.a.t._scan_of_abdomen'), support=0.2, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('c.a.t._scan_of_abdomen'), confidence=0.2, lift=1.0)]),
 RelationRecord(items=frozenset('colonoscopy'), support=0.5, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('colonoscopy'), confidence=0.5, lift=1.0)]),...]

【讨论】:

效果很好。这有点令人困惑,因为 MLXtend 库想要一个 1/0 的数据帧(单热编码),每一列都是项目......

Apyori相关性测量

...】:2018-05-2304:22:27【问题描述】:我正在使用Apyori库作为Apriori算法的实现。rules=apriori(trs,min_support=0.02,min_confidence=0.1,min_lift=3)rules是一个生成器,可以使用res=list(rules)转换为列表。对于大型数据集,list(rules 查看详情

Apriori 算法的数据集

】Apriori算法的数据集【英文标题】:DatasetforApriorialgorithm【发布时间】:2011-11-0806:43:09【问题描述】:我打算开发一个购物篮分析应用程序(使用apriori算法),我发现了一个包含90,000多条交易记录的数据集。问题是这个数据集... 查看详情

Apriori / Market Basket Analysis - 对特定长度项目集的限制分析

】Apriori/MarketBasketAnalysis-对特定长度项目集的限制分析【英文标题】:Apriori/MarketBasketAnalysis-limitanalysistoitemsetsofspecificlength【发布时间】:2019-09-3013:10:26【问题描述】:我正在尝试挖掘数据集中的频繁项集,该数据集中包含经常... 查看详情

为啥我的 Apriori 函数返回的是字母而不是项目? (错误的输出)

】为啥我的Apriori函数返回的是字母而不是项目?(错误的输出)【英文标题】:WhyismyApriorifunctionreturninglettersinsteadofitems??(wrongoutput)为什么我的Apriori函数返回的是字母而不是项目?(错误的输出)【发布时间】:2021-06-0816:55:58【... 查看详情

基于类别数据的 Apriori 算法

】基于类别数据的Apriori算法【英文标题】:Apriorialgorithmoncategoriesdata【发布时间】:2017-03-2313:25:22【问题描述】:我正在处理一个提供输入文件categories.txt的项目,它被要求首先输出所有长度为1的频繁类别,最小支持为0.01。然... 查看详情

高效生成 Apriori 频繁项集

】高效生成Apriori频繁项集【英文标题】:GenerateApriorifrequentitemsetsefficiently【发布时间】:2021-02-2517:48:58【问题描述】:我正在尝试使用Apriori原则有效地生成频繁项集。我目前的尝试是使用来自itertool的组合,但它生成了不必要... 查看详情

Apriori算法的超市数据集

】Apriori算法的超市数据集【英文标题】:SupermarketdatasetforApriorialgorithm【发布时间】:2012-04-0300:42:10【问题描述】:\'我要开发一款专为“FutureStores”超市业务分析师设计的软件,该软件对给定的超市销售交易的过渡数据进行关... 查看详情

apriori算法

Apriori原理说的是如果一个元素项不是频繁集,那么包含该元素项的超集也不是频繁集。 图1-1Apriori搜索频繁项集的原理Apriori算法是发现频繁项集的一种方法。过程如下:生成所有单个物品的项集列表。接着扫描交易记录来查看... 查看详情

Apriori 不适用于 0 和 1 数据集

】Apriori不适用于0和1数据集【英文标题】:Aprioridoesn\'tworkproperlywitha0and1dataset【发布时间】:2018-11-2017:06:06【问题描述】:我有一个如下所示的数据框:CusTCB1:C10112:C20103:C30104:C40105:C50106:C6011当我在这个确切的数据帧上使用apriori时... 查看详情

关联规则

...掘的目的是在数据项目中找出所有的并发关系,除了基本Aprioris算法,还有一些常用的改进算法,例如多最小支持度的关联规则挖掘,分类关联规则挖掘。Aprioris算法基于演绎原理(或称为向下封闭属性)来高效地产生所有频繁... 查看详情

关联规则——apriori算法

Apriori算法是基于Apriori定律:1、如果一个集合是频繁项集,则它的所有子集都是频繁项集。2、如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。Apriori是由apriori合并而来的,它的意思是后面的是在前面的基础上推出... 查看详情

使用apriori进行关联分析

  书接上文(使用Apriori进行关联分析(一)),介绍如何挖掘关联规则。发现关联规则  我们的目标是通过频繁项集挖掘到隐藏的关联规则,换句话说就是关联规则。  所谓关联规则,指通过某个元素集推导出另一个元... 查看详情

使用 msbuild (CLI) 编译时程序集引用损坏

】使用msbuild(CLI)编译时程序集引用损坏【英文标题】:Assemblyreferencesbrokenwhencompiledwithmsbuild(CLI)【发布时间】:2022-01-0506:14:36【问题描述】:背景我的总体目标是让Sonarqube在CI中为Unity项目运行。据我了解,要让声纳扫描仪工作,... 查看详情

使用 Apriori 算法没有输出

】使用Apriori算法没有输出【英文标题】:GettingnooutputusingAprioriAlgorithm【发布时间】:2021-01-2016:24:54【问题描述】:我的数据框:numberassignment_groupshort_descriptionIssueLabelsReq123SupportTPissueBatteryFailure我的代码:将数据框转换为列表obser... 查看详情

R中的Apriori算法

】R中的Apriori算法【英文标题】:AprioriAlgorithminR【发布时间】:2017-06-2116:03:05【问题描述】:我有一个我认为是精心准备的数据集。我想使用R中的Apriori算法来寻找关联并提出一些规则。我有大约16,000行(唯一客户)和179列代表... 查看详情

apriori算法

Apriori算法是一种最有影响的挖掘0-1布尔关联规则频繁项集的算法。这种算法利用了频繁项集性质的先验知识(因此叫做priori)。Apriori使用了自底向上的实现方式(如果集合I不是频繁项集,那么包含I的更大的集合也不可能是频... 查看详情

使用 R 中的 Apriori 算法预测多个输出

】使用R中的Apriori算法预测多个输出【英文标题】:PredictMultipleOutputusingAprioriAlgorithminR【发布时间】:2018-07-0510:41:54【问题描述】:目前我正在使用r开发基于item-item的推荐系统。我使用的包是arules。我已经完成了我的基本模型,... 查看详情

“apyori模块的RelationRecord对象”先验算法python

】“apyori模块的RelationRecord对象”先验算法python【英文标题】:"RelationRecordobjectofapyorimodule"apriorialgorithmpython【发布时间】:2018-07-1500:21:12【问题描述】:对不起,我的英语,我试图识别一组数据中经常出现的属性,以使... 查看详情