を冗長ルールを削除するには、我々は3つのルールを持っていると仮定:(ルール[1]
ルール[2]
内のすべての項目が含まれているため)アソシエーションルール - (arules)
[1] {A,B,D} -> {C}
[2] {A,B} -> {C}
[3] Whatever it is
ルール[2]
ルール[1]
のサブセットであるので、ルール[1]
が除去されなければならない(規則[1]
も特異的であり、その情報は、ルール[2]
に含まれているため)
Iは、インターネットを介して検索し、誰もが冗長ルールを削除するために、これらのコードを使用している:
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になるだろう:ルール[2]
ルール[1]
のサブセットは、対応するセルであるので、下三角で
[,1] [,2] [,3]
[1,] NA 1 0
[2,] NA NA 0
[3,] NA NA NA
細胞をNAとなるように設定されていますだから私は2つの質問があります:
なぜ私たちは下の三角形をNAとして設定する必要がありますか?そうであれば、ルール
[2]
がルール[3]
のサブセットであるかどうかをどのように確認できますか? 、私たちの場合(セルがNAとして設定されている)
[1]
を排除するものでなければならないルールが、これらのコードではなく、ルール[1]
のルール[2]
を排除します。任意の助けが理解されるであろう
(カラム2の最初のセルが1であり、コードの行3によれば、列2> = 1の列和は、従って冗長なものとして扱われるため)! !
誰も助けることができますか? – BigData