93R推奨アルゴリズム-アソシエーションルール

1初期準備

環境を整える

 clean up
rm(list=ls())

# load package arules to find rules
library(arules)

2ファイルを読みます

ファイルを読み、ファイルの内容を確認すると、指定する必要のある3つのテーブルは、トランザクション情報テーブル、商品リスト、および商品注文テーブルです
。PAフィールドによると、トランザクション情報テーブルと商品注文です。テーブルは互いに接続されています。

アイテムレベルで購入データを読み取る

trans <- read.csv('purchase.csv',header = TRUE,stringsAsFactors = FALSE )
RA_desc <- read.csv('RA_desc.csv',header = TRUE,stringsAsFactors = FALSE )
PA_desc <- read.csv('PA_desc.csv',header = TRUE,stringsAsFactors = FALSE )
dim(trans)
head(trans)
head(PA_desc)
names(trans) <- c("card","transaction_place","transaction_time","pos_id","transaction_number","invo_num","amt_aft","amt_bft","quantity","PA","RA","product_code")

# merge with descriptions

trans2 <- merge(trans,PA_desc, by="PA", all.x=TRUE)

ここに画像の説明を挿入
ここに画像の説明を挿入
#writetrans_isとアイテム

trans2$trans_id = paste(trans2$card, trans2$transaction_place, trans2$transaction_time,
                        trans2$pos_id, trans2$transaction_number, sep='_')
View(head(trans2))



write.csv(subset(trans2,select=c("trans_id","PA_desc")), file = 'purchase2.csv', row.names = F)

trans3 = read.transactions('purchase2.csv', format = "single", sep = ",",
                           cols = c("trans_id", "PA_desc"), rm.duplicates=TRUE,header = TRUE)

最後に、情報を注文番号とショッピングアイテムの詳細に整理します

ここに画像の説明を挿入
trans3 = read.transactions('purchase2.csv'、format = "single"、sep = "、"、
cols = c( "trans_id"、 "PA_desc")、rm.duplicates = TRUE、header = TRUE)
このステップはアルゴリズム処理を容易にするために、データをトランザクションオーダー形式に変換します

3アプリオリアルゴリズム生成ルール

信頼水準の低いルールを見つける

rules.all = apriori(trans3,
                   parameter = list(minlen=2,
                                    supp=0.008,
                                    conf=0.5,
                                    target = "rules"))
inspect(rules.all)



# find rules with reasonable confidence level
rules = apriori(trans3,
               parameter = list(minlen=2,
                                supp=0.005,
                                conf=0.05,
                                target = "rules"))
inspect(rules)

write(rules,"rules.csv",row.names=FALSE,sep="|")

以前の関連付けアルゴリズムルールは、冗長なルールの可能性を処理していたため、ルールはプルーニングされます

結果の形式を調整する

quality(rules.all) <- round(quality(rules.all), digits=3)
rules.sorted <- sort(rules.all, by ='lift')
inspect(rules.sorted)

reules.pruned = rules.sorted
inspect(reules.pruned[1])

ターゲット:
マイニングされた関連付けのタイプを示す文字列。
「頻繁なアイテムセット」
「最大頻度のアイテムセット」
閉じた頻繁なアイテムセット」
「ルール」(Aprioriでのみ使用可能。eclatにはruleInductionを使用)
「ハイパーエッジセット」(Aprioriでのみ使用可能。関連付けハイパーエッジセットの定義については、リファレンスを参照してください。 )。

4相関ルールの描画

散布図

# plot rules.all
png(file="rules_all.png", bg="white", width=1200, height=900)
plot(rules.all)
dev.off()

ここに画像の説明を挿入
さまざまなルールの描画

plot(reules.pruned)
plot(reules.pruned, measure=c("support", "lift"), shading="confidence")

plot(reules.pruned, shading="order", control=list(main = "Two-key plot"))

inspect(reules.pruned)

他の図面

# sel <- plot(rules, measure=c("support", "lift"), shading="confidence", interactive=TRUE)

### matrix plots
plot(reules.pruned, method="matrix", measure="lift")
plot(reules.pruned, method="matrix", measure="lift", control=list(reorder=TRUE))

plot(reules.pruned, method="matrix", measure=c("lift", "confidence"))
plot(reules.pruned, method="matrix", measure=c("lift", "confidence"),control=list(reorder=TRUE))


### grouped matrix plots
# sel <- plot(reules.pruned, method="white", interactive=TRUE)
png(file="grouped_matrix.png", bg="transparent", width=1200, height=900)
plot(reules.pruned, method='grouped')
dev.off()

plot(reules.pruned, method='grouped',control=list(k=25))

### graph plots
subrules2 <- head(sort(reules.pruned, by="lift"), 25)

inspect(subrules2)
plot(subrules2, method="graph")
plot(subrules2, method="graph", control=list(type="items"))
plot(subrules2, method='graph', control = list(type="itemsets"))

ここに画像の説明を挿入

平行座標

plot(subrules2、method ='paracoord'、control = list(reorder = T))

subrules3 <-head(sort(reules.pruned、by =“lift”)、3)
plot(subrules3、method ='paracoord'、control = list(reorder = T))
inspect(subrules3)

おすすめ

転載: blog.csdn.net/weixin_44498127/article/details/124430189