本文简要介绍
pyspark.ml.fpm.FPGrowth
的用法。用法:
class pyspark.ml.fpm.FPGrowth(*, minSupport=0.3, minConfidence=0.8, itemsCol='items', predictionCol='prediction', numPartitions=None)
用于挖掘频繁项集的并行FP-growth算法。
2.2.0 版中的新函数。
注意:
Li 等人的 PFP: Parallel FP-Growth for QueryRecommendation [1] 中说明了该算法。 PFP 以这样的方式分配计算,即每个工作人员执行一组独立的挖掘任务。 Han 等人在无需生成候选的情况下挖掘频繁模式 [2] 中说明了 FP-Growth 算法
fit()
期间忽略特征列中的 NULL 值。内部
transform
collects
和broadcasts
关联规则。Haoyuan Li、Yi Wang、Dong Zhang、Ming Zhang 和 Edward Y. Chang。 2008. Pfp:用于查询推荐的并行fp-growth。在 2008 年 ACM 推荐系统会议论文集中 (RecSys ‘08)。计算机协会,纽约,纽约,美国,107-114。 DOI:https://doi.org/10.1145/1454008.1454027
韩嘉伟、简培、尹伊文。 2000. 在没有候选生成的情况下挖掘频繁模式。 SIGMOD 推荐29,2(2000 年 6 月),1-12。 DOI:https://doi.org/10.1145/335191.335372
1:
2:
例子:
>>> from pyspark.sql.functions import split >>> data = (spark.read ... .text("data/mllib/sample_fpgrowth.txt") ... .select(split("value", "\s+").alias("items"))) >>> data.show(truncate=False) +------------------------+ |items | +------------------------+ |[r, z, h, k, p] | |[z, y, x, w, v, u, t, s]| |[s, x, o, n, r] | |[x, z, y, m, t, s, q, e]| |[z] | |[x, z, y, r, q, t, p] | +------------------------+ ... >>> fp = FPGrowth(minSupport=0.2, minConfidence=0.7) >>> fpm = fp.fit(data) >>> fpm.setPredictionCol("newPrediction") FPGrowthModel... >>> fpm.freqItemsets.show(5) +---------+----+ | items|freq| +---------+----+ | [s]| 3| | [s, x]| 3| |[s, x, z]| 2| | [s, z]| 2| | [r]| 3| +---------+----+ only showing top 5 rows ... >>> fpm.associationRules.show(5) +----------+----------+----------+----+------------------+ |antecedent|consequent|confidence|lift| support| +----------+----------+----------+----+------------------+ | [t, s]| [y]| 1.0| 2.0|0.3333333333333333| | [t, s]| [x]| 1.0| 1.5|0.3333333333333333| | [t, s]| [z]| 1.0| 1.2|0.3333333333333333| | [p]| [r]| 1.0| 2.0|0.3333333333333333| | [p]| [z]| 1.0| 1.2|0.3333333333333333| +----------+----------+----------+----+------------------+ only showing top 5 rows ... >>> new_data = spark.createDataFrame([(["t", "s"], )], ["items"]) >>> sorted(fpm.transform(new_data).first().newPrediction) ['x', 'y', 'z'] >>> model_path = temp_path + "/fpm_model" >>> fpm.save(model_path) >>> model2 = FPGrowthModel.load(model_path) >>> fpm.transform(data).take(1) == model2.transform(data).take(1) True
相关用法
- Python pyspark FPGrowthModel用法及代码示例
- Python pyspark FMRegressor用法及代码示例
- Python pyspark Float64Index用法及代码示例
- Python pyspark FeatureHasher用法及代码示例
- Python pyspark FMClassifier用法及代码示例
- Python pyspark create_map用法及代码示例
- Python pyspark date_add用法及代码示例
- Python pyspark DataFrame.to_latex用法及代码示例
- Python pyspark DataStreamReader.schema用法及代码示例
- Python pyspark MultiIndex.size用法及代码示例
- Python pyspark arrays_overlap用法及代码示例
- Python pyspark Series.asof用法及代码示例
- Python pyspark DataFrame.align用法及代码示例
- Python pyspark Index.is_monotonic_decreasing用法及代码示例
- Python pyspark IsotonicRegression用法及代码示例
- Python pyspark DataFrame.plot.bar用法及代码示例
- Python pyspark DataFrame.to_delta用法及代码示例
- Python pyspark element_at用法及代码示例
- Python pyspark explode用法及代码示例
- Python pyspark MultiIndex.hasnans用法及代码示例
- Python pyspark Series.to_frame用法及代码示例
- Python pyspark DataFrame.quantile用法及代码示例
- Python pyspark Column.withField用法及代码示例
- Python pyspark Index.values用法及代码示例
- Python pyspark Index.drop_duplicates用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.ml.fpm.FPGrowth。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。