1

このパッケージを使用して、arulesPOS 小売データで関連付けルールを見つけています。データベースからトランザクションの詳細を抽出し、transactionオブジェクトに配置しています。私は初めてで、トランザクション オブジェクトにデータ フレームをarules設定する方法を理解しようとしています。itemInfo今のところ、コンテキストをほとんど提供しないtransactionitem IDs (両方とも数値) を取り込んでいます。商品の説明と商品の階層レベルを追加できるようにしたいと考えています。

以下は、私が今日使用しているプロセスです。

  1. データは、次の形式でデータベースから取得されます。

    Transaction_ID     Item_ID
    --------------     ----------- 
    100                1
    100                2
    100                3
    101                2
    101                3
    102                1
    102                2
    
  2. transactionオブジェクトを作成するには、arulesドキュメントで説明されているように、次のコマンドを使用しています。

    txdata <- as(split(txdata[, "Item_ID"], txdata[, "Transaction_ID"]), "transactions")
    

    注: の数値が必要であることがわかりましたItem_ID。そうしないと、文字列を使用してパフォーマンスに重大な問題が発生します (因数分解された文字列を使用すると分割のパフォーマンスが低下するため)。

  3. アソシエーション ルールの作成と表示

    rules <- apriori(txdata, parameter = list(support=0.00015, confidence=0.5))
    inspect(head((sort(rules, by="confidence")), n=5))
    

ルールが戻ってくると、 によって一覧表示されItem_IDますが、これは役に立ちません。IDおよび/または説明でそれらを表示できるようにしたい。arulesまた、パッケージに組み込まれている集計機能も活用したいと考えています。

4

1 に答える 1

2

itemInfo を使用してアイテムの名前を変更できます。以下に例を示します。

R> df <- data.frame(
   TID = c(1,1,2,2,2,3), 
   item=c("a","b","a","b","c", "b")
 )
R> trans <- as(split(df[,"item"], df[,"TID"]), "transactions")

### this is how you replace item labels and set a hierachy (here level1)
R> myLabels <- c("milk", "butter", "beer")
R> myLevel1 <- c("dairy", "dairy", "beverage")
R> itemInfo(trans) <- data.frame(labels = myLabels, level1 = myLevel1)

R> inspect(trans)
     items    transactionID
  1 {milk,                
     butter}             1
  2 {milk,                
     butter,              
     beer}               2
  3 {butter}             3

 ### now you can use aggregate()
 R> inspect(aggregate(trans, itemInfo(trans)[["level1"]]))
     items      transactionID
  1 {dairy}                1
  2 {beverage,              
     dairy}                2
  3 {dairy}                3

class? transactionsおよびを使用して、詳細情報を見つけることができます? aggregate

これが役に立てば幸いです、マイケル

于 2015-03-22T23:04:52.933 に答える