Код IT
← Каталог

Алгоритмы ИИ — Пример реализации на Python

Фрагмент из «Алгоритмы ИИ»: Пример реализации на Python.

python aiencyclopedia6-02-mashinnoe-obuchenie-2 embed URL статья в энциклопедии
Python main.py
from mlxtend.frequent_patterns import apriori, association_rules
from mlxtend.preprocessing import TransactionEncoder

import pandas as pd

# Создание набора транзакций
transactions = [
    ['хлеб', 'молоко', 'яйца'],
    ['хлеб', 'молоко', 'сыр'],
    ['хлеб', 'яйца', 'сыр'],
    ['молоко', 'яйца', 'сыр'],
    ['хлеб', 'молоко', 'яйца', 'сыр'],
    ['хлеб', 'молоко'],
    ['молоко', 'сыр'],
    ['хлеб', 'сыр'],
    ['хлеб', 'молоко', 'яйца', 'масло'],
    ['хлеб', 'яйца', 'масло']
]

# Кодирование транзакций в двоичную матрицу
te = TransactionEncoder()
te_ary = te.fit(transactions).transform(transactions)
df = pd.DataFrame(te_ary, columns=te.columns_)

# Поиск частых наборов с минимальной поддержкой 0.3
frequent_itemsets = apriori(df, min_support=0.3, use_colnames=True)

# Генерация правил с минимальной достоверностью 0.7
rules = association_rules(
    frequent_itemsets, 
    metric="confidence", 
    min_threshold=0.7
)

# Сортировка правил по подъёму
rules_sorted = rules.sort_values('lift', ascending=False)

# Вывод значимых правил
print("Частые наборы элементов:")
print(frequent_itemsets)
print("\nАссоциативные правила:")
print(rules_sorted[['antecedents', 'consequents', 'support', 'confidence', 'lift']])
from mlxtend.frequent_patterns import apriori, association_rules
from mlxtend.preprocessing import TransactionEncoder

import pandas as pd

# Создание набора транзакций
transactions = [
    ['хлеб', 'молоко', 'яйца'],
    ['хлеб', 'молоко', 'сыр'],
    ['хлеб', 'яйца', 'сыр'],
    ['молоко', 'яйца', 'сыр'],
    ['хлеб', 'молоко', 'яйца', 'сыр'],
    ['хлеб', 'молоко'],
    ['молоко', 'сыр'],
    ['хлеб', 'сыр'],
    ['хлеб', 'молоко', 'яйца', 'масло'],
    ['хлеб', 'яйца', 'масло']
]

# Кодирование транзакций в двоичную матрицу
te = TransactionEncoder()
te_ary = te.fit(transactions).transform(transactions)
df = pd.DataFrame(te_ary, columns=te.columns_)

# Поиск частых наборов с минимальной поддержкой 0.3
frequent_itemsets = apriori(df, min_support=0.3, use_colnames=True)

# Генерация правил с минимальной достоверностью 0.7
rules = association_rules(
    frequent_itemsets, 
    metric="confidence", 
    min_threshold=0.7
)

# Сортировка правил по подъёму
rules_sorted = rules.sort_values('lift', ascending=False)

# Вывод значимых правил
print("Частые наборы элементов:")
print(frequent_itemsets)
print("\nАссоциативные правила:")
print(rules_sorted[['antecedents', 'consequents', 'support', 'confidence', 'lift']])