Python Apyori Сортировка по Лифт - PullRequest
0 голосов
/ 07 октября 2018

Итак, я использовал Apyori для получения минимальной поддержки от набора данных выживших Титаников.

rules = apriori(titanic, min_support = 0.1, min_confidence = 1.0)
print(list(rules))

Вот пример одного из элементов, которые я получу в качестве вывода

[RelationRecord(items=frozenset({'Crew', 'Adult'}), 
support=0.4020899591094957, ordered_statistics= 
[OrderedStatistic(items_base=frozenset({'Crew'}), 
items_add=frozenset({'Adult'}), confidence=1.0, lift=1.0521032504780115)])

Тем не менее, я пытаюсь отсортировать по лифту, и я не уверен, как подойти к этой проблеме, так как элемент лифта, кажется, находится внутри кортежа, но я не уверен точно, как бы яиди сортируй.

Любая помощь очень ценится.

Спасибо.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете поместить свой вывод в Pandas DataFrame, а затем отсортировать по лифту

У вас есть это:

rules = apriori(titanic, min_support = 0.1, min_confidence = 1.0)

И давайте создадим результаты

results = list(rules)

Теперь мыхочу записать наш результат в Pandas DataFrame, а затем отсортировать по Lift

df = pd.DataFrame(columns=('Items','Antecedent','Consequent','Support','Confidence','Lift'))

Support =[]
Confidence = []
Lift = []
Items = []
Antecedent = []
Consequent=[]

for RelationRecord in results:
    for ordered_stat in RelationRecord.ordered_statistics:
        Support.append(RelationRecord.support)
        Items.append(RelationRecord.items)
        Antecedent.append(ordered_stat.items_base)
        Consequent.append(ordered_stat.items_add)
        Confidence.append(ordered_stat.confidence)
        Lift.append(ordered_stat.lift)

df['Items'] = list(map(set, Items))                                   
df['Antecedent'] = list(map(set, Antecedent))
df['Consequent'] = list(map(set, Consequent))
df['Support'] = Support
df['Confidence'] = Confidence
df['Lift']= Lift

Сортировать результирующий кадр данных по Lift

df.sort_values(by ='Lift', ascending = False, inplace = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...