" M1 d7 U( f9 O% K7 |: z5 T1 H5 A: `/ l1 B3 L2 f f6 P- A
par(family='STKaiti') #输出中文 @3 v: S5 l( {- t b
hotDrink1<- hotDrink[1:5,] 9 u) I' w+ G% \! NOthers.drk <- data.frame(Goods="其他", Num=sum(hotDrink$Num)-sum(hotDrink1$Num), Percent=1-sum(hotDrink1$Percent)), q7 l; ]$ y# q# `- V
hotDrink1 <- rbind(hotDrink1, Others.drk)/ U( B' c: P' F3 z' D
hotDrink1 <- hotDrink1[order(hotDrink1$Num, decreasing = F),] 2 {: S1 `: j% g1 G7 y8 e* LhotDrink1$Goods <- factor(hotDrink1$Goods ,levels =hotDrink1$Goods ,ordered = T)- o) h' P5 X+ J. Z; M
myLabel = as.vector(hotDrink1$Goods) 7 a' a1 e, B" ^8 D* f' g
myLabel = paste(myLabel, "(", round(hotDrink1$Percent * 100, 2), "%) ", sep = "") 5 A1 Y3 U3 |* \9 f; Xlibrary(RColorBrewer)9 [6 @* p3 t! l) `4 j7 F
p <- ggplot(hotDrink1, aes(x="", y=Percent, fill=Goods))+ " C$ k# j5 b3 E6 u4 s9 W geom_bar(stat = "identity")+6 t( ~* ^5 Y, ]" b1 @
coord_polar(theta = "y")+ 4 I2 N6 S# M t labs(x="", y="", title = "")+ - P/ u: M" r+ ] theme(axis.ticks = element_blank())+ # y& z6 m! s9 j$ j2 E& e5 \3 x theme(legend.title = element_blank(), legend.position = "top")+ 3 n* Q# ]* E0 b& B1 y2 S theme(axis.text.x = element_blank())$ M: n' M7 F+ T' j% P% R) j3 I
p+scale_fill_brewer(breaks = hotDrink1$Goods, labels = myLabel)+guides(fill=guide_legend(reverse = T)) W$ L3 ?2 L" e$ V9 k' G A0 Q$ e
) }4 V! ^3 l; j2 ^, _# m
6 ^/ U6 O, s" n2 H1 @7 u; N# 建模之前要转换数据格式list 然后才能使用apriori & L9 Q6 e$ U" J O* B3 h Adatalist <- list() * s9 _# J7 l- yfor(i in unique(GoodOrder$ID)){' |( T N6 P# P4 _
datalist[] <- GoodOrder[which(GoodOrder$ID == i), 2]0 e Y# k& z" u% Q/ r9 m% d8 [
}: |( e, P1 w- e/ M$ j) V& B
#datalist # 可以显示出所有的购物篮里面的 九千多条 4 m/ e) t. k# u7 t$ ~2 M" O4 P0 ~* i9 K% w' K6 n% }: o
# 以下才正式开始关联分析apriori ! }# E2 P6 M+ L2 ]% D# 导入到关联分析函数中 ( @, h) ?$ b& r5 ~0 \4 _TransRep <- as(datalist, "transactions") - a6 z s! k& R1 J8 [0 T; jRulesRep <- apriori(TransRep, parameter = list(support=0.02, confidence=0.25))( k2 ]* ~+ t7 o$ s R0 q4 E
inspect(sort(RulesRep, by="lift")[1:25]) #按提升度从高到低查看前25条规则 " L( B5 L0 K v( Y- T7 G2 q) I, k / [8 h ^4 [" p& E) u: n3 C2 X1 S6 Q) K7 \$ R
guides(fill=guide_legend(reverse = T)) ) ^+ \ t/ X4 r. I通过模型的规则得出在顾客购买商品的时候会同时购买全脂牛奶。因此,商场可以根据实际情况进行布置。0 }7 u$ E. {; a# G
1 ^" ~, U+ Q+ ?. f3 x" a
Ø将全脂牛奶放在顾客购买商品的必经之路,或者商场显眼位置,方便顾客拿取。 }! ]- Z( L s: k1 T% d* MØ其他蔬菜、根茎类蔬菜、酸奶油、猪肉、黄油、本地蛋类和多种水果同时购买的概率较高,可以考虑捆绑销售,或者适当调整商场布置,将这些商品的距离尽量拉近,提升购物体验。; u3 ~+ ^5 ~ U' Q
$ M& E' k. D+ @$ F D6 `$ P& T; {结论 $ A# e, q: a3 V8 m本案例主要结合商品零售购物篮的案例,重点介绍了关联规则算法中的Apriori算法在商品零售购物篮分析案例中的应用。过程中详细的分析了商品零售的现状与问题,同时给出某商场的商品零售数据,分析了商品的热销程度,最后通过Apriori算法构建相应模型,并根据模型结果制定销售策略。 ( [) l. ?1 }, T j" Z- G6 s ?& P7 k9 M( j; {. X
. n9 p1 _* z* \6 R7 b6 Q2 [3 [8 ~% x5 C; t/ i Y
2 m$ j5 b: M* H$ M8 G
; q; m3 q J/ P7 s. d