2017-07-02 5 views
0

私はcustomer_idとproduct_nameのRデータフレームを持っています。顧客は複数の製品を持つことができます。顧客の列には、複数の商品があるため、重複したcustomer_idがあります。データからArulesとArulesVizを使用する関連ルール

私は基本的な先験的分析を行い、一緒に購入した製品の関連ルールを決定しようとしています。私はこれを行うためにRでArulesとArulesVizパッケージを使いたいと思います。

私はこれを実行しようとしましたが、通常、0のルールまたはlhsの製品 - > rhs customer_idを取得します。だから私は、データを正しくロードして、単一の顧客に複数の製品を見て関連付けを導き出すとは思わない。

助けていただけたら幸いです!

基本データフレームの例

df <- data.frame(cust_id = as.factor(c('1aa2j', '1aa2j', '2b345', 
'2b345', 'g78a8', 'y67r3')), product = as.factor(c("Bat", "Sock", 
"Hat", "Shirt", "Ball", "Shorts"))) 

rules <- apriori(df) inspect(rules) 

lhs rhs support confidence lift 1 {product=Bat} => {cust_id=1aa2j} 0.167 1 3 
2 {product=Sock} => {cust_id=1aa2j} 0.167 1 3 
3 {product=Hat} => {cust_id=2b345} 0.167 1 3 
4 {product=Shirt} => {cust_id=2b345} 0.167 1 3 
5 {cust_id=g78a8} => {product=Ball} 0.167 1 6 
6 {product=Ball} => {cust_id=g78a8} 0.167 1 6 
7 {cust_id=y67r3} => {product=Shorts} 0.167 1 6 
8 {product=Shorts} => {cust_id=y67r3} 0.167 1 6 

答えて

1

これは(わずかに修正)transactionsのための例から取られる:

library(arules) 
df <- data.frame(cust_id = as.factor(c('1aa2j', '1aa2j', '2b345', 
'2b345', 'g78a8', 'y67r3')), product = as.factor(c("Bat", "Sock", 
"Hat", "Shirt", "Ball", "Shorts"))) 

trans <- as(split(df[,"product"], df[,"cust_id"]), "transactions") 
inspect(trans) 

    items  transactionID 
[1] {Bat,Sock} 1aa2j   
[2] {Hat,Shirt} 2b345   
[3] {Ball}  g78a8   
[4] {Shorts} y67r3 

今、あなたはtransaprioriを使用することができます。

+0

ありがとうございます! – Andre

関連する問題