Алгоритм Apriori - выбор списка транзакций - PullRequest
1 голос
/ 08 марта 2011

Я пытаюсь определить ошибки, возникающие в учетной записи клиента, используя алгоритм apriori. Итак, у меня есть таблица ошибок, например:

error_id    error_code    cust_id  
1           M015          100  
2           M020          101  
3           M016          100  
4           M019          100  
5           M015          102

...

И я хочу установить, какие ошибки следует ожидать при наличии M015.
(например, M015 -> ??)

Проблема в том, что таблица ошибок содержит сотни тысяч позиций, и существуют сотни возможных кодов ошибок. Итак, я запускаю свой алгоритм с очень низкой достоверностью, чтобы получить как можно больше возможных правил? Или мне сузить базу данных ошибок, включив в нее только «транзакции», которые включают в себя интересующую меня ошибку?

(Например, в этом примере, если я ищу правила M015, должен ли я ограничить таблицу транзакций только позициями для cust_id 100 и 102?)

1 Ответ

0 голосов
/ 23 октября 2011

Для минимальных доверительных и поддерживающих порогов лучше начинать с высоких значений, а затем понижать их, если вы не получили достаточно результатов.

Но я думаю, что вы должны поддерживать уверенность на высоком уровне, потому что в противном случае результат не будет полезным. Например, может быть, вы хотели бы иметь уверенность не менее 50%.

Да, для оптимизации вы можете изменить алгоритм, чтобы искать только те правила, которые содержат интересующий вас элемент. Это позволило бы алгоритму не генерировать очень большое количество правил.

Но не забывайте, что ассоциация не является причинно-следственной связью. Если вы хотите сделать какой-то прогноз в зависимости от времени, вы можете использовать, например, алгоритм последовательного анализа правил или алгоритм последовательного анализа шаблонов вместо алгоритма анализа правил ассоциации.

...