Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Васильев Ю. - Python для data science (Библиотека программиста) - 2023.pdf
Скачиваний:
7
Добавлен:
07.04.2024
Размер:
7.21 Mб
Скачать

Алгоритм Apriori      233

Генерирование ассоциативных правил

Мы определили все наборы товаров, которые соответствуют желаемому пороговому значению метрики поддержки. Второй шаг алгоритма Apriori заключается в генерации ассоциативных правил для этих наборов. Для этого используется функция association_rules() из модуля mlxtend frequent_patterns:

from mlxtend.frequent_patterns import association_rules

rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.5)

Во фрагменте кода выше мы вызываем функцию association_rules(), передавая в нее датафрейм frequent_itemsets в качестве первого параметра. Кроме того, выбираем метрику для оценки значимости правил и устанавливаем ее пороговое значение. В нашем конкретном случае мы указываем, что функция должна возвращать только те ассоциативные правила, метрика доверия которых равна или больше 0.5. Как отмечалось в предыдущем разделе, функция автоматически пропускает генерацию правил для наборов с одним товаром.

Функция association_rules()возвращает правила в виде датафрейма, где каждая строка представляет одно ассоциативное правило. В датафрейме несколько колонок: для антецедентов, консеквентов и различных метрик, включая поддержку, доверие и лифт. Выводим на экран выбранные столбцы:

print(rules.iloc[:,0:7])

Вот что мы получаем:

 

antecedents

consequents

antecedent sup.

consequent sup.

support

confidence

lift

0

(bread)

(butter)

0.40

0.20

0.20

0.500000

2.500000

1

(butter)

(bread)

0.20

0.40

0.20

1.000000

2.500000

2

(cheese)

(bread)

0.25

0.40

0.15

0.600000

1.500000

3

(milk)

(bread)

0.15

0.40

0.10

0.666667

1.666667

4

(butter)

(cheese)

0.20

0.25

0.10

0.500000

2.000000

5

(pasta)

(cheese)

0.10

0.25

0.10

1.000000

4.000000

6

(sour cream)

(curd)

0.30

0.25

0.20

0.666667

2.666667

7

(curd)

(sour cream)

0.25

0.30

0.20

0.800000

2.666667

8

(milk)

(eggs)

0.15

0.10

0.10

0.666667

6.666667

9

(eggs)

(milk)

0.10

0.15

0.10

1.000000

6.666667

10

(bread, cheese)

(butter)

0.15

0.20

0.10

0.666667

3.333333

11

(bread, butter)

(cheese)

0.20

0.25

0.10

0.500000

2.000000

12

(cheese, butter)

(bread)

0.10

0.40

0.10

1.000000

2.500000

13

(butter)(bread, cheese)

0.20

0.15

0.10

0.500000

3.333333

[14 rows x 7 columns]