#r #dataframe #arules
#r #фрейм данных #правила
Вопрос:
Я использую apriori
функцию из arules
пакета для выполнения анализа на предмет ассоциации элементов. После принудительного преобразования результатов в datframe я замечаю, что в некоторых случаях выходные данные могут быть сгруппированы следующим образом:
LHS RHS Support Confidence Lift Count
{Item1, Item2} {Item3} .84 0.99 12.3 6
Есть ли способ заставить функцию выполнять анализ только между двумя элементами в каждой транзакции и получать соответствующую поддержку, уверенность и т.д.? Другими словами, могу ли я принудительно apriori
разделить приведенный выше результат на что-то вроде:
LHS RHS Support Confidence Lift Count
{Item1} {Item3} a b c d
{Item2} {Item3} e f g h
Комментарии:
1. Два результата, которые вы показываете, не эквивалентны. Первый вариант (с {Item1, Item2}) означает, что если присутствуют оба элемента 1 и Item2, то, скорее всего, будет присутствовать элемент 3, вторая (двухстрочная) версия будет означать, что если присутствует элемент 1 или элемент 2, то, скорее всего, будет присутствовать элемент 3. Вы пытаетесь преобразовать полученные вами правила или вы хотите заставить apriori предоставлять только правила с одним элементом в LHS?
2. @G5W Я знаю, что мог бы передать
maxlen
параметр вapriori
, но, если я не ошибаюсь, это больше работает как фильтр после завершения анализа. Я предполагаю, что то, о чем я спрашиваю, больше относится к стороне преобразования правил, которая можетapriori
определить правило только для 2 элементов, даже если оно может определить правило для этих 2 одинаковых элементов вместе с другими, потенциально?
Ответ №1:
maxlen
в apriori не действует как фильтр после интеллектуального анализа данных. apriori создает часто используемые наборы элементов, начинающиеся с длины 1, затем 2, 3, … и maxlen
останавливает процесс интеллектуального анализа данных.
minlen
с другой стороны, это фильтр, потому что сначала должны быть найдены все более короткие наборы элементов.
Если вы спрашиваете, можете ли вы определить поддержку и уверенность в
{Item1} -> {Item3}
{Item2} -> {Item3}
просто используя поддержку и уверенность
{Item1, Item2} -> {Item3}
тогда ответ отрицательный. Однако из свойства apriori мы знаем, по крайней мере, следующее:
supp({Item1} -> {Item3}) >= supp({Item1, Item2} -> {Item3})
supp({Item2} -> {Item3}) >= supp({Item1, Item2} -> {Item3})