Правило ассоциации в R - удаление избыточного правила (arules)

Предположим, у нас есть 3 правила:

[1] {A,B,D} -> {C}

[2] {A,B} -> {C}

[3] Whatever it is

правило[2] это подмножество правил[1] (потому что правило[1] содержит все элементы в правиле[2]), так правило[1] должны быть устранены (потому что правило[1] является слишком конкретным, и его информация включена в правило[2] )

Я искал в Интернете, и все используют этот код для удаления лишних правил:

subset.matrix <- is.subset(rules.sorted, rules.sorted)
subset.matrix[lower.tri(subset.matrix, diag=T)] <- NA
redundant <- colSums(subset.matrix, na.rm=T) >= 1
which(redundant)
rules.pruned <- rules.sorted[!redundant]

Я не понимаю, как работает код.

После строки 2 кода subset.matrix станет:

      [,1] [,2] [,3]
[1,]   NA    1    0
[2,]   NA   NA    0
[3,]   NA   NA   NA

Ячейки в нижнем треугольнике установлены как NA и, поскольку правило[2] это подмножество правил[1]соответствующая ячейка установлена ​​на 1. Итак, у меня есть 2 вопроса:

Почему мы должны установить нижний треугольник как NA? Если мы сделаем это, то как мы можем проверить, является ли правило[2] это подмножество правил[3] или нет? (ячейка была установлена ​​как NA)

В нашем случае правило[1] должен быть исключен, но этот код исключает правило[2] вместо правила[1], (Поскольку первая ячейка в столбце 2 равна 1, и в соответствии со строкой 3 кода суммы столбцов столбца 2> = 1 будут рассматриваться как избыточные)

Любая помощь будет оценена !!

Ответы на вопрос(3)

Ваш ответ на вопрос