我的数据框:
number assignment_group short_description Issue LabelsReq123 Support TP issue Battery Failure
我的代码:
将数据框转换为列表
observations = []for i in range(len(df1)): observations.append([str(df1.values[i,j]) for j in range(0,10)])
将数据拟合到算法中
from apyori import aprioriassociations = apriori(observations, min_length = 2, min_support = 0.2, min_confidence = 0.2, min_lift = 3)
将关联转换为列表
associations = list(associations)print(associations)
返回时没有输出。
回答:
我不知道你的 df1.values
具体是什么,但是使用以下代码是可以工作的:
df1 = [ 'Aa', 'Aa', 'Aa', 'Aa', 'Aa', 'Bb', 'Cc', 'Dd', 'Ee', 'Ff',]observations = []for i in range(len(df1)): observations.append([str(df1[i][j]) for j in range(0, 2)])
下面的代码可以正常运行:
from apyori import aprioriassociations = apriori( observations, min_length = 2, min_support = 0.2, min_confidence = 0.2, min_lift = 2)associations = list(associations)print(associations)
输出结果是:
[ RelationRecord( items=frozenset({'a', 'b'}), support=0.5, ordered_statistics=[ OrderedStatistic( items_base=frozenset({'a'}), items_add=frozenset({'b'}), confidence=1.0, lift=2.0 ), OrderedStatistic( items_base=frozenset({'b'}), items_add=frozenset({'a'}), confidence=1.0, lift=2.0 ) ] )]
我只将 min_lift
从3改成了2。当它是3时,输出是空的。
Apriori算法用于寻找频繁项集作为各个集合之间的关联规则。项集的频繁程度和长度可以通过超参数进行调整。所以尝试不同的超参数,看看你会得到什么结果。