Метки Apriori отклонены, несмотря на то, что другие функциональные факторы записывают правила в R - PullRequest
0 голосов
/ 10 июня 2019

У меня большой набор данных (3,5 миллиона наблюдений и 185 переменных), по которому я делаю анализ рыночной корзины с использованием apriori(), у большинства столбцов результат да / нет.Я правильно преобразовал свой фрейм данных, но для некоторых столбцов да / нет один из факторов (обычно да) иногда не запускается и выдает Error in asMethod(object) : variable is an unknown item label в качестве выходных данных или не записывает никаких правил, в то время как другиебеги нормально.Так как мой файл настолько большой, мне нужно сузить правила, которые я запускаю с помощью спецификации lhs =, поэтому я обеспокоен спорадическим кодом.

Я проверил, что метка существует в моем фрейме данных, он делаети я зашел так далеко, чтобы снова учесть это на всякий случай.Когда я запускаю labels() для своих данных транзакций, я не могу найти записи с проблемной меткой, несмотря на то, что table() показывает, что некоторые существуют.Однако у меня нет эффективного способа поиска по всем данным транзакций, поэтому я искал только несколько сотен транзакций, чтобы они все еще могли быть там.

my csv - это фрейм данных, в котором есть строка для каждой транзакции и столбец для элементов корзины.Она не такая широкая, как могла бы быть, потому что значения Да / Нет находятся в одном столбце.Я также прикрепил имя столбца к ячейкам с помощью.сделать правила проще для чтения.df2 совпадает с ExportMD1.csv

Вот мое преобразование данных


tr <- read.transactions('ExportMD1.csv', format = 'basket', sep = ',', cols = 185, header = TRUE)

Я буду использовать isTreasuryBill в качестве примера, таблица показывает, что есть значения «да»

table(df2$isInterestBearing)

isInterestBearing.n 69745

isInterestBearing.y 276824

Я получаю один из двух выходов, когда запускаю следующий код:

rules <- apriori(tr, paramete = list(supp = 0.5, conf = 0.8, minlen = 2), appearance = list(lhs= "isInterestBearing"))

Опция 1

Error in asMethod(object) : isInterestBearing is an unknown item label
4. stop(paste(indicator[!indicator %in% from$labels], "is an unknown item label", collapse = ", "))
3. asMethod(object)
2. as(c(appearance, list(labels = itemLabels(data))), "APappearance")
1. apriori(tr, paramete = list(supp = 0.5, conf = 0.8, minlen = 2), appearance = list(lhs = "isInterestBearing")) 

Опция 2


Parameter specification:

Algorithmic control:

Absolute minimum support count: 173284 

set item appearances ...[1 item(s)] done [0.04s].
set transactions ...[430165 item(s), 346569 transaction(s)] done [24.73s].
sorting and recoding items ... [177 item(s)] done [0.97s].
creating transaction tree ... done [1.35s].
checking subsets of size 1 done [0.02s].
writing ... [0 rule(s)] done [0.04s].
creating S4 object  ... done [0.22s].

Нет разницы в кадре данных или read.transaction при возникновении этих проблем.

В идеале apriori() будет работатьпоследовательно без каких-либо ошибок.Я подозреваю, что причина, по которой я не получаю каких-либо правил для некоторых, заключается в том, что счетчик так низок, но я понятия не имею, почему ярлыки не распознаются надежно.

1 Ответ

0 голосов
/ 11 июня 2019

Я думаю, что вы просто не используете правильный ярлык элемента по внешнему виду. Проверьте, какие ярлыки товара у вас есть в ваших транзакциях с

itemlabels(tr)

Правильная метка элемента будет выглядеть примерно так: isInterestBearing=y.

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