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