2017-08-16 70 views
0

我正在處理一個產生大量規則的巨大數據集。我只需要高升力低支持規則,但我越來越超過1500萬(這是設置min/maxlen和清理我的源數據後)在Arules中,返回來自很多規則的最小支持項目

我現在要做的是創建一個頭幾百萬,並從所有規則中減去。我的希望是,最終剩下的只是桶的底部。

代碼:

basket_rules2 <- apriori(ttk, parameter = list(sup = 0.03, conf = 0.25, target="rules", minlen=4, maxlen=4, maxtime=0), appearance = list(rhs = "Fail: Generator Boot-up", default ="lhs")) 

rules <- sort(basket_rules, by = "sup") 
head1 <- head(rules, 2000000) 
head2 <- rules[ !(rules %in% head1), ] 
> summary(head2) 
>set of 0 rules 

我也試過:

rules <- sort(basket_rules, by = "sup") 
head1 <- head(rules, 2000000) 
head2 <- rules[-head1,] 
>Error in -head1 : invalid argument to unary operator 

我用similiar語法,同時採樣,我不知道爲什麼這是行不通的。我真正需要的是達到低支持aprori規則,我覺得我可能使這種方式比它所需要的更復雜。關於爲什麼我的代碼無法正常工作,或者我如何才能得到真正低的sup/conf規則的任何建議?

回答

2

我希望我能正確理解你的問題。我認爲你可以這樣做

library(arules) 
data(Groceries) 

rules <- apriori(Groceries, parameter = list(support= 0.0002)) 

這產生了約200萬條規則。現在你可以使用tail最低支持100條規則:

low_support_rules <- tail(rules, by = "support", n = 100) 

現在你可以使用電梯低點支撐排序規則。

+0

不知道我怎麼沒有找到這個尾部功能,但是,這正是我需要的!謝謝!!! – Coopa