У меня большой набор данных (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()
будет работатьпоследовательно без каких-либо ошибок.Я подозреваю, что причина, по которой я не получаю каких-либо правил для некоторых, заключается в том, что счетчик так низок, но я понятия не имею, почему ярлыки не распознаются надежно.