2017-06-12 59 views
0

我想運行使用Spark Scala的關聯規則。我首先創建一個FPGrowth樹並將其傳遞給關聯規則方法。最大模式長度fpgrowth apache spark

但是,我想添加一個最大模式長度參數,以限制我想要的LHS和RHS項目的數量。我只想要項目之間的一對一關聯。

val model = new FPGrowth() 
     .setMinSupport(0.1) 
     .setNumPartitions(10) 
     .run(transactions) 

    // Generate association rules based on the frequent sets generated by FPgrowth 
    val ar = new AssociationRules().setMinConfidence(0.6) 
    val results = ar.run(model.freqItemsets) 

產生的關聯規則是:

ItemA => ItemB, {confidence} 

ItemB => ItemC, {confidence} 

ItemA,ItemB => ItemC, {confidence} 

ItemA,ItemD => ItemE, {confidence} 

但我只希望它返回兩邊有一個項目的結果,即:

ItemA => ItemB, {confidence} 

ItemB => ItemC, {confidence} 

基本上,我要找用於指定Spark Scala/Spark Java中的最大長度參數的方法

有什麼建議嗎?

回答

0

可以filter結果:

val ar = new AssociationRules().setMinConfidence(0.6) 
val results = ar.run(model.freqItemsets) 
       .filter(rule => rule.antecedent.size == 1 && rule.consequent.size == 1) 
+0

感謝您的幫助。這對我有用! –

+0

一個很大的缺點是,它實際上仍在搜索它們......所以我們花費時間和有問題的內存來記錄這些我們不感興趣的關聯。 – Roelant