たぶん私は愚かですが、それでも参考になるコメントをいただければ幸いです。
ID、記事、および記事の属性 (つまり、グループ化) を含むデータセットがあります。を使用RODBC
して、SQL Server データベースからテーブルをフェッチします ( を使用sqlFetch
)。したがって、read.transactions
arules-package から使用する方法が見つかりませんでした。フォーマットは、各行が ID と記事 + グループの組み合わせになるように構成されています。テーブルには、約 1,100 万の一意の ID を持つ 2,200 万の行があります。記事ベースは約 500,000 記事です。説明のために、このようなサンプル データ フレームを作成しました
dat <- data.frame(id <- rep(paste0("id", 1:5),1, each=3),
article <- rep(paste0("A", sample(1051:1069,15,T))),
groupA <- paste0(sample(LETTERS[1:3],15,TRUE), sample(1:3, 15,T))
)
colnames(dat) <- c("id", "article", "groupA")
dat$groupB[dat$groupA == "A1"|dat$groupA == "A2"|dat$groupA =="A3"] <- 1
dat$groupB[dat$groupA == "B1"|dat$groupA == "B2"|dat$groupA =="B3"] <- 2
dat$groupB[dat$groupA == "C1"|dat$groupA == "C2"|dat$groupA =="C3"] <- 3
これに似たdata.frameになります
id article groupA groupB
1 id1 A1053 B3 2
2 id1 A1051 B1 2
3 id1 A1067 B2 2
4 id2 A1054 B1 2
5 id2 A1069 B1 2
6 id2 A1068 A3 1
7 id3 A1053 C3 3
8 id3 A1066 B3 2
9 id3 A1057 A2 1
10 id4 A1056 B1 2
11 id4 A1065 C1 3
12 id4 A1069 A3 1
13 id5 A1066 A3 1
14 id5 A1062 A3 1
15 id5 A1059 B2 2
マーケット バスケット分析にルール パッケージを使用したいと考えています。ただし、data.frame をトランザクション オブジェクトに転送すると、txn <- as(dat, "transactions")
すべての行が 1 つのバスケットとして識別されます。id 変数を識別子としてルールに指定する可能性はありますか? 基本的に、私は-transformationの関数"single"
からオプションを探しています。関連する 2 番目の質問は次のとおりです。ルール パッケージで属性を使用できますか? 記事レベルだけでなく、グルーピングレベルでもアルゴリズムを使って分析する必要があると思いました。たとえば、商品 A1053 を購入すると、グループ A B3 を推奨するルールが見つかります。これは可能ですか?read.transactions
as
apriori