同步於buracag的部落格
挖掘頻繁專案,專案集,子串行或其他子結構通常是分析大規模資料集的第一步,這是資料探勘多年來一直活躍的研究課題。 可以參考一下維基百科中關於關聯規則學習的基礎知識。
fp-growth演算法在han等人的文章中描述,挖掘頻繁模式而沒有候選生成,其中「fp」代表頻繁模式。 給定資料集,fp-growth的第一步是計算專案頻率並識別頻繁專案。 與為同一目的而設計的類似apriori的演算法不同,fp-growth的第二步使用字尾樹(fp-tree)結構來編碼事務而不顯式生成候選集,這通常很難生成。 在第二步之後,可以從fp-tree中提取頻繁項集。 在spark.mllib中,我們實現了稱為pfp的fp-growth的分布式版本,如li等人,在pfp:parallel fp-growth for query recommendation中所述。 pfp基於事務的字尾分配增長fp-tree的工作,因此比單機實現更具可擴充套件性。
spark.ml的fp-growth實現採用以下(超)引數:
fpgrowthmodel提供:
示例**如下:
# -*- coding: utf-8 -*-
# @time : 2019/8/9 10:40
# @author : buracagyang
# @file : fpgrowth_example.py
# @software : pycharm
"""describe:
"""from pyspark.ml.fpm import fpgrowth
from pyspark.sql import sparksession
if __name__ ==
"__main__"
:"fpgrowthexample"
).getorcreate(
) df = spark.createdataframe([(
0,[1
,2,5
]),(
1,[1
,2,3
,5])
,(2,
[1,2
])],
["id"
,"items"])
fpgrowth = fpgrowth(itemscol=
"items"
, minsupport=
0.5, minconfidence=
0.6)
model = fpgrowth.fit(df)
# 頻繁項集
model.freqitemsets.show(
)# 生成的關聯規則
model.associationrules.show(
)# transform根據所有關聯規則檢查輸入項,並將結果作為**
model.transform(df)
.show(
) spark.stop(
)
結果如下:
+---------+----+
| items|freq|
+---------+----+
|[1]
| 3|
|[2]
| 3|
|[2, 1]
| 3|
|[5]
| 2|
|[5, 2]
| 2|
|[5, 2, 1]
| 2|
|[5, 1]
| 2|
+---------+----+
+----------+----------+------------------+
|antecedent|consequent| confidence|
+----------+----------+------------------+
|[5, 2]
|[1]
| 1.0|
|[2, 1]
|[5]
|0.6666666666666666|
|[5, 1]
|[2]
| 1.0|
|[5]
|[2]
| 1.0|
|[5]
|[1]
| 1.0|
|[1]
|[2]
| 1.0|
|[1]
|[5]
|0.6666666666666666|
|[2]
|[1]
| 1.0|
|[2]
|[5]
|0.6666666666666666|
+----------+----------+------------------+
+---+------------+----------+|id
| items|prediction|
+---+------------+----------+
| 0|
[1, 2, 5]|[
]|| 1|
[1, 2, 3, 5]|[
]|| 2|
[1, 2]
|[5]
|+---+------------+----------+
【spark】pipelines
【spark】特徵工程1-extractors
【spark】特徵工程2-transformers
【spark】分類和回歸演算法-分類
【spark】分類和回歸演算法-回歸
【spark】聚類分析
【spark】協同過濾
【spark】頻繁項集挖掘
【spark】模型選擇和調優
商品頻繁二項集挖掘方法
一 頻繁二項集 現實中有許多關聯規則挖掘演算法,比如最著名的apriori演算法,以及fp 樹頻集演算法,本例介紹關於商品的頻繁二項集演算法。二 演算法設計思路 1 將每一筆訂單的商品按照兩兩分組 2 對每個分組的頻數進行統計 3 根據頻數計算支援度和置信度 4 設定支援度與置信度閾值,過濾不達標的...
頻繁模式(項集)挖掘新演算法
我們小組提出了基於模式樹節點集的新穎資料結構,並把這類結構應用到資料探勘核心任務 頻繁模式挖掘中,形成了一系列的演算法,其中包括2010年發表在 international journal of computational intelligence systems 的ppv演算法和2012年發表 s...
頻繁項集與關聯規則挖掘 1
我計畫整理資料探勘的基本概念和演算法,包括關聯規則挖掘 分類 聚類的常用演算法,敬請期待。今天講的是關聯規則挖掘的最基本的知識。關聯規則挖掘在電商 零售 大氣物理 生物醫學已經有了廣泛的應用,本篇文章將介紹一些基本知識和aprori演算法。啤酒與尿布的故事已經成為了關聯規則挖掘的經典案例,還有人專門...