无法将R中的数据离散化以用于关联规则(apriori)

时间:2016-10-15 08:59:55

标签: r associations discretization

美好的一天,

我一直试图在R中使用arules和apriori来获取我的数据,但无济于事。

例如,我的数据来自excel(csv格式),它有1000个实验,1和0。

enter image description here

正如你所看到的,离散化似乎破坏了该列的数据,我一直在谷歌搜索解决方案,但我真的找不到合适的解决方案。

这是什么解决方案?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

的静脉中尝试
library(arules)
data("iris")
head(iris, 3)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
for(i in 1:4) iris[,i] <- discretize(iris[,i],  "frequency", categories=3)
head(iris, 3)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1    [4.3,5.5)   [3.3,4.4]      [1,3.0)   [0.1,1.0)  setosa
# 2    [4.3,5.5)   [3.0,3.3)      [1,3.0)   [0.1,1.0)  setosa
# 3    [4.3,5.5)   [3.0,3.3)      [1,3.0)   [0.1,1.0)  setosa
trans <- as(iris, "transactions")
rules <- apriori(trans, appearance = list(rhs = paste("Species",levels(iris$Species), sep="="), default = "lhs")) 
inspect(rules)
#    lhs                         rhs                    support confidence     lift
# 1  {Petal.Length=[5,6.9]}   => {Species=virginica}  0.2933333  0.9565217 2.869565
# 2  {Petal.Width=[1.7,2.5]}  => {Species=virginica}  0.3066667  0.9583333 2.875000
# 3  {Petal.Width=[1.0,1.7)}  => {Species=versicolor} 0.3200000  0.9230769 2.769231
# 4  {Petal.Length=[3,5.0)}   => {Species=versicolor} 0.3200000  0.8888889 2.666667
# 5  {Petal.Length=[1,3.0)}   => {Species=setosa}     0.3333333  1.0000000 3.000000
# 6  {Petal.Width=[0.1,1.0)}  => {Species=setosa}     0.3333333  1.0000000 3.000000