PrefixSpan

class pyspark.ml.fpm. PrefixSpan ( * , minSupport : float = 0.1 , maxPatternLength : int = 10 , maxLocalProjDBSize : int = 32000000 , sequenceCol : str = 'sequence' ) [source]

一种并行的 PrefixSpan 算法,用于挖掘频繁的序列模式。 PrefixSpan 算法在 J. Pei 等人的论文中描述,PrefixSpan: 通过前缀投影模式增长高效挖掘序列模式 (参见 这里 )。 此类尚未成为 Estimator/Transformer,使用 findFrequentSequentialPatterns() 方法来运行 PrefixSpan 算法。

新增于版本 2.4.0。

注释

参见 顺序模式挖掘 (Wikipedia)

示例

>>> from pyspark.ml.fpm import PrefixSpan
>>> from pyspark.sql import Row
>>> df = sc.parallelize([Row(sequence=[[1, 2], [3]]),
...                      Row(sequence=[[1], [3, 2], [1, 2]]),
...                      Row(sequence=[[1, 2], [5]]),
...                      Row(sequence=[[6]])]).toDF()
>>> prefixSpan = PrefixSpan()
>>> prefixSpan.getMaxLocalProjDBSize()
32000000
>>> prefixSpan.getSequenceCol()
'sequence'
>>> prefixSpan.setMinSupport(0.5)
PrefixSpan...
>>> prefixSpan.setMaxPatternLength(5)
PrefixSpan...
>>> prefixSpan.findFrequentSequentialPatterns(df).sort("sequence").show(truncate=False)
+----------+----+
|sequence  |freq|
+----------+----+
|[[1]]     |3   |
|[[1], [3]]|2   |
|[[2]]     |3   |
|[[2, 1]]  |3   |
|[[3]]     |2   |
+----------+----+
...

方法

clear (参数)

如果参数已明确设置,则从参数映射中清除该参数。

copy ([extra])

创建此实例的副本,具有相同的uid和一些额外的参数。

explainParam (参数)

解释单个参数并返回其名称、文档以及可选的默认值和用户提供的值的字符串。

explainParams ()

返回所有参数的文档,包括它们可选的默认值和用户提供的值。

extractParamMap ([extra])

提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。

findFrequentSequentialPatterns (数据集)

在输入的项集序列中找到完整的频繁序列模式集。

getMaxLocalProjDBSize ()

获取 maxLocalProjDBSize 的值或其默认值。

getMaxPatternLength ()

获取 maxPatternLength 的值或其默认值。

getMinSupport ()

获取minSupport的值或其默认值。

getOrDefault (参数)

获取用户提供的参数映射中的参数值或其默认值。

getParam (参数名称)

根据名称获取参数。

getSequenceCol ()

获取sequenceCol的值或其默认值。

hasDefault (参数)

检查参数是否具有默认值。

hasParam (paramName)

测试此实例是否包含具有给定(字符串)名称的参数。

isDefined (参数)

检查参数是否由用户显式设置或具有默认值。

isSet (参数)

检查参数是否被用户显式设置。

set (参数, 值)

在嵌入的参数映射中设置一个参数。

setMaxLocalProjDBSize (值)

设置 maxLocalProjDBSize 的值。

setMaxPatternLength (值)

设置 maxPatternLength 的值。

setMinSupport (值)

设置 minSupport 的值。

setParams (self, \*[, 最小支持度, …])

新增于版本 2.4.0。

setSequenceCol (值)

设置 sequenceCol 的值。

属性

maxLocalProjDBSize

maxPatternLength

minSupport

参数

返回按名称排序的所有参数。

sequenceCol

方法文档

clear ( param : pyspark.ml.param.Param ) → None

如果参数已明确设置,则从参数映射中清除该参数。

copy ( extra : Optional [ ParamMap ] = None ) → JP

创建此实例的副本,具有相同的uid和一些额外的参数。此实现首先调用Params.copy,然后使用额外参数复制伴随的Java管道组件。因此,Python包装器和Java管道组件都会被复制。

Parameters
extra dict, optional

复制到新实例的额外参数

Returns
JavaParams

此实例的副本

explainParam ( param : Union [ str , pyspark.ml.param.Param ] ) → str

解释单个参数并返回其名称、文档以及可选的默认值和用户提供的值的字符串。

explainParams ( ) → str

返回所有参数的文档,包括它们可选的默认值和用户提供的值。

extractParamMap ( extra : Optional [ ParamMap ] = None ) → ParamMap

提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。

Parameters
extra dict, optional

额外参数值

Returns
dict

合并的参数映射

findFrequentSequentialPatterns ( dataset : pyspark.sql.dataframe.DataFrame ) → pyspark.sql.dataframe.DataFrame [source]

在输入的项集序列中找到完整的频繁序列模式集。

新增于版本 2.4.0。

Parameters
dataset pyspark.sql.DataFrame

一个包含序列列的数据框,该列的类型为 ArrayType(ArrayType(T)) ,其中T是输入数据集的项类型。

Returns
pyspark.sql.DataFrame

一个包含序列列和相应频率列的 DataFrame 。其模式将是:

  • sequence: ArrayType(ArrayType(T)) (T 是项类型)

  • freq: Long

getMaxLocalProjDBSize ( ) → int [source]

获取 maxLocalProjDBSize 的值或其默认值。

新增于版本 3.0.0。

getMaxPatternLength ( ) → int [source]

获取 maxPatternLength 的值或其默认值。

新增于版本 3.0.0。

getMinSupport ( ) → float [source]

获取minSupport的值或其默认值。

新增于版本 3.0.0。

getOrDefault ( param : Union [ str , pyspark.ml.param.Param [ T ] ] ) → Union [ Any , T ]

获取用户提供的参数映射中的参数值或其默认值。如果两者都未设置,则引发错误。

getParam ( paramName : str ) pyspark.ml.param.Param

根据名称获取参数。

getSequenceCol ( ) → str [source]

获取sequenceCol的值或其默认值。

新增于版本 3.0.0。

hasDefault ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否具有默认值。

hasParam ( paramName : str ) → bool

测试此实例是否包含具有给定(字符串)名称的参数。

isDefined ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否由用户显式设置或具有默认值。

isSet ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否被用户显式设置。

set ( param : pyspark.ml.param.Param , value : Any ) → None

在嵌入的参数映射中设置一个参数。

setMaxLocalProjDBSize ( value : int ) pyspark.ml.fpm.PrefixSpan [source]

设置 maxLocalProjDBSize 的值。

新增于版本 3.0.0。

setMaxPatternLength ( value : int ) pyspark.ml.fpm.PrefixSpan [source]

设置 maxPatternLength 的值。

新增于版本 3.0.0。

setMinSupport ( value : float ) pyspark.ml.fpm.PrefixSpan [source]

设置 minSupport 的值。

新增于版本 3.0.0。

setParams ( self , \* , minSupport=0.1 , maxPatternLength=10 , maxLocalProjDBSize=32000000 , sequenceCol="sequence" ) [source]

新增于版本 2.4.0。

setSequenceCol ( value : str ) pyspark.ml.fpm.PrefixSpan [source]

设置 sequenceCol 的值。

新增于版本 3.0.0。

属性文档

maxLocalProjDBSize : pyspark.ml.param.Param[int] = Param(parent='undefined', name='maxLocalProjDBSize', doc='The maximum number of items (including delimiters used in the internal storage format) allowed in a projected database before local processing. If a projected database exceeds this size, another iteration of distributed prefix growth is run. Must be > 0.')
maxPatternLength : pyspark.ml.param.Param[int] = Param(parent='undefined', name='maxPatternLength', doc='The maximal length of the sequential pattern. Must be > 0.')
minSupport : pyspark.ml.param.Param[float] = Param(parent='undefined', name='minSupport', doc='The minimal support level of the sequential pattern. Sequential pattern that appears more than (minSupport * size-of-the-dataset) times will be output. Must be >= 0.')
params

返回按名称排序的所有参数。默认实现使用 dir() 获取所有类型为 Param 的属性。

sequenceCol : pyspark.ml.param.Param[str] = Param(parent='undefined', name='sequenceCol', doc='The name of the sequence column in dataset, rows with nulls in this column are ignored.')