数据见附件
name Num control power wisdom political charm loyalty coutry origin status
1 夏侯惇 1 94 96 62 56 78 99 1 1 1
2 许褚 2 83 97 26 16 68 89 1 1 1
3 荀攸 3 60 38 94 91 80 86 1 1 4
4 荀彧 4 64 35 97 90 84 80 1 1 4
5 张合 5 88 93 61 54 62 85 1 1 1
6 程昱 6 82 25 91 80 74 89 1 1 4
7 张辽 7 91 90 82 69 85 88 1 1 1
8 于禁 8 77 74 51 48 60 85 1 1 1
9 曹仁 9 79 83 61 58 68 95 1 1 1
10 曹洪 10 76 75 45 42 70 92 1 1 1
转换后的数据:kingdom3
items transactionID
1 {name=夏侯惇,
control=统帅,
power=超级,
wisdom=普通,
political=普通,
charm=喜欢,
loyalty=死士} 1
2 {name=许褚,
control=将军,
power=超级,
wisdom=弱智,
political=普通,
charm=普通,
loyalty=死士} 2
函数具体使用见文档。
name Num control power wisdom political charm loyalty coutry origin status
1 夏侯惇 1 94 96 62 56 78 99 1 1 1
2 许褚 2 83 97 26 16 68 89 1 1 1
3 荀攸 3 60 38 94 91 80 86 1 1 4
4 荀彧 4 64 35 97 90 84 80 1 1 4
5 张合 5 88 93 61 54 62 85 1 1 1
6 程昱 6 82 25 91 80 74 89 1 1 4
7 张辽 7 91 90 82 69 85 88 1 1 1
8 于禁 8 77 74 51 48 60 85 1 1 1
9 曹仁 9 79 83 61 58 68 95 1 1 1
10 曹洪 10 76 75 45 42 70 92 1 1 1
转换后的数据:kingdom3
items transactionID
1 {name=夏侯惇,
control=统帅,
power=超级,
wisdom=普通,
political=普通,
charm=喜欢,
loyalty=死士} 1
2 {name=许褚,
control=将军,
power=超级,
wisdom=弱智,
political=普通,
charm=普通,
loyalty=死士} 2
函数具体使用见文档。
<br />
library(arules)<br />
<br />
# 转换数值类型数据<br />
king[["power"]]<-ordered(cut(king[["power"]],c(0,60,80,95,110)),label=c("普通","强悍","高手","超级"))<br />
king[["wisdom"]]<-ordered(cut(king[["wisdom"]],c(0,50,75,90,100)),label=c("弱智","普通","聪明","智慧"))<br />
king[["control"]]<-ordered(cut(king[["control"]],c(0,50,75,90,100)),label=c("小兵","校尉","将军","统帅"))<br />
king[["political"]]<-ordered(cut(king[["political"]],c(0,60,78,90,105)),label=c("普通","战术家","政治家","战略家"))<br />
king[["charm"]]<-ordered(cut(king[["charm"]],c(0,55,75,90,100)),label=c("讨厌","普通","喜欢","吸引"))<br />
king[["loyalty"]]<-ordered(cut(king[["loyalty"]],c(-1,55,71,85,101)),label=c("奸贼","普通","忠臣","死士"))<br />
<br />
kingdom<-data.frame(name=king[,1],king[,3:8])<br />
<br />
#转换为transactions结构<br />
kingdom3<- as(kingdom, "transactions")<br />
<br />
itemFrequencyPlot(kingdom3, support = 0.5, cex.names = 0.8)<br />
<br />
image(kingdom3)<br />
itemFrequency(kingdom3, type = "relative")<br />
itemFrequency(kingdom3, type = "absolute")<br />
#分别用apriori、eclat函数<br />
rules <- apriori(kingdom3, parameter = list(support = 0.01,confidence = 0.6))<br />
fsets <- eclat(kingdom3, parameter = list(support = 0.05), control = list(verbose = FALSE))<br />
<br />
summary(rules)<br />
summary(fsets)<br />
<br />
rulesControl <- subset(rules, subset = rhs %in% "control=统帅" & lift > 1.2)<br />
rulesWisdom <- subset(rules, subset = rhs %in% "wisdom=智慧" &lift > 2.2)<br />
inspect(rulesControl)<br />
inspect(rulesWisdom)<br />
inspect(head(SORT(rulesControl, by = "confidence"), n = 3))<br />
<br />
singleItems <- fsets[size(items(fsets)) == 4]<br />
inspect(singleItems)<br />
<br />
<br />
WRITE(rulesControl, file = "data.csv", sep = ",", col.names = NA)<br />
<br />
<br />