基於Spark的FPGrowth(關聯規則算法)
關聯規則
關聯規則:用於表示數據內隱含的關聯性,例如:購買尿布的人往往會購買啤酒。
支持度(support)
支持度:{X, Y}同時出現的概率,例如:{尿布,啤酒}同時出現的概率
{尿布,啤酒}的支持度 = 800 / 10000 = 0.08
{尿布,麪包}的支持度 = 100 / 10000 = 0.01
注意:{尿布,啤酒}的支持度等於{啤酒,尿布}的支持度,支持度沒有先後順序之分
置信度(confidence)
置信度:購買X的人,同時購買Y的概率,例如:購買尿布的人,同時購買啤酒的概率,而這個概率就是購買尿布時購買啤酒的置信度
( 尿布 -> 啤酒 ) 的置信度 = 800 / 1000 = 0.8
( 啤酒 -> 尿布 ) 的置信度 = 800 / 2000 = 0.4
參數
val fpgroth=new FPGrowth().setItemsCol("int_arr") //設置字段 .setMinSupport(0.5) //支持度 .setMinConfidence(0.6) //自信度
# 頻繁項集
model.freqItemsets.show()
# 生成的關聯規則
model.associationRules.show()
# transform根據所有關聯規則檢查輸入項,並將結果作爲預測
model.transform(df).show()