【问题标题】:Getting no output using Apriori Algorithm使用 Apriori 算法没有输出
【发布时间】:2021-01-20 16:24:54
【问题描述】:

我的数据框:

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?我可以假设它们是用字符串编写的项目吗?
  • 更新了数据框,它是数字和字符串数据
  • 它们在numpy 数组中吗?
  • 数据在pandas dataframe中,主要有ticket数据
  • 正如我所回答的,尝试降低超参数。

标签: python machine-learning apriori


【解决方案1】:

但是,我不知道你的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 算法是寻找频繁项集作为每个集合之间的关联规则。超参数调整项目集的频率和长度。所以尝试不同的超参数,看看你会得到什么。

【讨论】:

  • 我们能否以表格/数据框的方式获得输出?
猜你喜欢
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2020-04-29
相关资源
最近更新 更多