2017-11-23 9 views
0

私は、テキストファイルがあります:私はfrequent itemsetsを見つけたいRでaprioriを使って頻出アイテムセットを見つけるには?

 items        
[1] {542931}       
[2] {542380}       
[3] {81387,542448,360015,542613,542931} 
[4] {546845,542614}      
[5] {1123614}       
[6] {542931}       
[7] {1014660}       
[8] {1088953}       
[9] {1138035}       

:このitemsetsMyData.txtを。ここに私のコードです:

tr <- read.transactions("MyData.txt",format = "basket", cols = NULL) 
freq_is <- apriori(tr, parameter = list(target = "frequent itemsets", support = 0.00001)) 

が、私はfreq_isを検査する際、{542931}のカウントが間違っている2、である(3 itemsetsは542931を持っているがあります)。実際には、Aprioriitems [1]items [6]とカウントされ、items [3]は無視されます。どうすればこの問題を解決できますか?

+0

データの場合は、dput()を使用してください。 – jsb

答えて

0

MyData.txt','を区切り記号として使用していますが、デフォルトの空白で分割するread.transactions()には指定しないでください。

あなたがあなたのコードを変更するのであれば:

summary(tr) 
transactions as itemMatrix in sparse format with 
9 rows (elements/itemsets/transactions) and 
12 columns (items) and a density of 0.1296296 

most frequent items: 
542931 1014660 1088953 1123614 1138035 (Other) 
     3  1  1  1  1  7 

apriori()を使用して高頻度項目セットを作成します:

freq_is <- apriori(tr, 
        parameter = list(target = "frequent itemsets", 
            support = 0.00001)) 

tr <- read.transactions("MyData.txt", 
         format = "basket", 
         sep = ",", 
         cols = NULL) 

あなたは542931のカウントが実際に3であることがわかります

freq_isを調べると、カウントi sアイテムセットの3つ:

inspect(freq_is) 
    items        support count 
[1] {542380}       0.1111111 1  
[2] {1123614}       0.1111111 1  
[3] {1014660}       0.1111111 1  
[4] {1088953}       0.1111111 1  
[5] {1138035}       0.1111111 1  
[6] {542614}       0.1111111 1  
[7] {546845}       0.1111111 1  
[8] {81387}        0.1111111 1  
[9] {360015}       0.1111111 1  
[10] {542448}       0.1111111 1  
[11] {542613}       0.1111111 1  
[12] {542931}       0.3333333 3 
. 
. 
. 
[39] {81387,360015,542448,542613,542931} 0.1111111 1 
関連する問題