Spark 頻繁項集挖掘

2021-10-01 02:20:27 字數 2925 閱讀 6595

同步於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演算法。啤酒與尿布的故事已經成為了關聯規則挖掘的經典案例,還有人專門...