使用 Apriori 算法没有输出

Getting no output using Apriori Algorithm

我的数据框:

number  assignment_group    short_description   Issue Labels
Req123  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 apriori
associations = 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 apriori
associations = 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算法就是寻找频繁项集作为各个集合之间的关联规则。超参数调整项目集的频率和长度。所以尝试不同的超参数,看看你得到了什么。