2017-08-08 29 views
0
fpGrowth = FPGrowth(itemsCol="items", minSupport=0.5, minConfidence=0.6) 
model = fpGrowth.fit(df) 
model.associationRules.show() 

使用上面的代碼,我只能得到每個關聯規則的置信度。但是我怎樣才能得到'lift'使用Spark FP-growth在Pyspark中的每個關聯規則的價值?如何在Pyspark中使用Spark FP增長獲得關聯規則的升降價值?

的情況下

,我只有這兩個dataframes,我怎麼可以添加在第一數據幀信心背後的價值是提升值自動(不添加人工

+----------+----------+------------------+ 
|antecedent|consequent|  confidence| 
+----------+----------+------------------+ 
| [2, 1]|  [5]|0.6666666666666666| 
| [5, 1]|  [2]|    1.0| 
|  [2]|  [1]|    1.0| 
|  [2]|  [5]|0.6666666666666666| 
|  [5]|  [2]|    1.0| 
|  [5]|  [1]|    1.0| 
| [5, 2]|  [1]|    1.0| 
|  [1]|  [2]|    1.0| 
|  [1]|  [5]|0.6666666666666666| 
+----------+----------+------------------+ 

+---------+----+------------------+ 
| items|freq|   support| 
+---------+----+------------------+ 
|  [1]| 3|    1.0| 
|  [2]| 3|    1.0| 
| [2, 1]| 3|    1.0| 
|  [5]| 2|0.6666666666666666| 
| [5, 2]| 2|0.6666666666666666| 
|[5, 2, 1]| 2|0.6666666666666666| 
| [5, 1]| 2|0.6666666666666666| 
+---------+----+------------------+ 

回答

1

這是很容易計算:電梯是信心C商因此電梯的規則是信心C(a->b)/C(b)例如如果bread -> cheese的信心1.2-> cheese的信心1.1,那麼電梯1.2/1.1

here

+0

謝謝,但我該如何使用'[2,1] - > [5]的信心:0.6666666666666666'得到的支持[5],然後使用這種信心/支獲得提升,即我如何才能得到[5]的信心,如果我只有每個規則的信心。是否有一個Spark的變量來存儲每個頻繁項目的支持值? – Oak

+0

0.66意味着在2,1的情況的2/3中,該集合還包含5.因此5的支持是所有集合中的5的部分。 – Roelant

+0

我改變了我的問題,你能回答這個新問題嗎? – Oak

0
df1.join(df2,df2.items==df1.consequent, 'left').select("antecedent","consequent","confidence","support").show() 

+----------+----------+------------------+------------------+ 
|antecedent|consequent|  confidence|   support| 
+----------+----------+------------------+------------------+ 
| [2, 1]|  [5]|0.6666666666666666|0.6666666666666666| 
|  [2]|  [5]|0.6666666666666666|0.6666666666666666| 
|  [1]|  [5]|0.6666666666666666|0.6666666666666666| 
|  [2]|  [1]|    1.0|    1.0| 
|  [5]|  [1]|    1.0|    1.0| 
| [5, 2]|  [1]|    1.0|    1.0| 
| [5, 1]|  [2]|    1.0|    1.0| 
|  [5]|  [2]|    1.0|    1.0| 
|  [1]|  [2]|    1.0|    1.0| 
+----------+----------+------------------+------------------+