Apriori не работает должным образом с набором данных 0 и 1

У меня есть датафрейм, который выглядит так:

   Cus T C B
1:  C1 0 1 1
2:  C2 0 1 0
3:  C3 0 1 0
4:  C4 0 1 0
5:  C5 0 1 0
6:  C6 0 1 1

Когда я использую apriori на этом точном кадре данных, он дает такие результаты, как

    lhs    rhs                           support confidence lift  count
[1] {}  => {c=0}                       0.8360112  0.8360112    1 616223
[2] {}  => {t=0}                       0.8765905  0.8765905    1 646134
[3] {}  => {a=0}                       0.8953804  0.8953804    1 659984
[4] {}  => {b=0}                       0.9103811  0.9103811    1 671041
[5] {}  => {d=0}                       0.9441812  0.9441812    1 695955

Я попытался преобразовать этот фрейм данных в транзакции BB, а затем исключить результаты, которые показывают 0 с помощью

excluded <- grep("=0", itemLabels(bb), value = TRUE)
rules = apriori(bb, appearance = list(none = excluded))

который оставляет только вывод с 0 правилами.

Как я могу получить некоторые полезные результаты, которые имеют только значение признака =1 в выводе apriori?

2 ответа

Я думаю, что вы хотите, чтобы столбцы T, B и C были логичными с

data$T <- as.logical(data$T)
data$B <- as.logical(data$B)
data$C <- as.logical(data$C)

а затем преобразовать в transactions,

Вы можете преобразовать свои данные в транзакции, а затем использовать их в apriori алгоритм:

library(arules)
library(reshape2)
library(dplyr)

trans <-
melt(data,id ='Cus') %>%   # long format
filter(value > 0) %>%      # filter value > 0
select(-value)             # remove the numbers

# as transactions
trans <- as(split(trans[,"variable"], trans[,"Cus"]), "transactions")
inspect(trans)
    items transactionID
[1] {C,B} C1           
[2] {C}   C2           
[3] {C}   C3           
[4] {C}   C4           
[5] {C}   C5           
[6] {C,B} C6      

# here the apriori
 rules <- apriori(trans, parameter = list(supp = 0.3, conf = 0.3, target="rules", minlen=2))

inspect(rules)
    lhs    rhs support   confidence lift count
[1] {B} => {C} 0.3333333 1.0000000  1    2    
[2] {C} => {B} 0.3333333 0.3333333  1    2    
Другие вопросы по тегам