Spark MLlib FPGrowth 运行 但不显示频繁项集
Spark MLlib FPGrowth running but not displaying frequent item sets
我正在尝试使用 MLlib 的 FPGrowth 对交易数据进行基本的市场篮子分析。我已将交易编码为类似格式:
transactions.take(3)
res632: Array[Array[String]] = Array(Array(7976503128), Array(68113132893, 1800000725, 3120027015, 4850030414, 2100061223, 5150055538, 60538871457), Array(68113174202))
其中数组中的单个数字是我的产品 ID,被视为字符串(如 68113132893、7976503128 等)。
现在当我是 运行 FPGrowth 模型时,它是 运行 没有任何错误:
val fpg = new FPGrowth()
.setMinSupport(0.5)
.setNumPartitions(10)
val modelBuild = fpg.run(transactions)
fpg: org.apache.spark.mllib.fpm.FPGrowth = org.apache.spark.mllib.fpm.FPGrowth@74a103be
modelBuild: org.apache.spark.mllib.fpm.FPGrowthModel[String] = org.apache.spark.mllib.fpm.FPGrowthModel@391b111a
但是当我试图获取频繁项集时,它显示空白数组
modelBuild.freqItemsets.collect().foreach { itemset =>
println(itemset.freq)
}
res660: Array[org.apache.spark.mllib.fpm.FPGrowth.FreqItemset[String]] = Array()
找不到问题所在。请帮忙!
将 minSupport 降低到 0.00001,所有集合都将被打印。来自 Spark 文档:
minSupport:一个项集被识别为频繁的最小支持度。例如,如果一个项目在 5 次交易中出现 3 次,则它的支持度为 3/5=0.6。
我正在尝试使用 MLlib 的 FPGrowth 对交易数据进行基本的市场篮子分析。我已将交易编码为类似格式:
transactions.take(3)
res632: Array[Array[String]] = Array(Array(7976503128), Array(68113132893, 1800000725, 3120027015, 4850030414, 2100061223, 5150055538, 60538871457), Array(68113174202))
其中数组中的单个数字是我的产品 ID,被视为字符串(如 68113132893、7976503128 等)。
现在当我是 运行 FPGrowth 模型时,它是 运行 没有任何错误:
val fpg = new FPGrowth()
.setMinSupport(0.5)
.setNumPartitions(10)
val modelBuild = fpg.run(transactions)
fpg: org.apache.spark.mllib.fpm.FPGrowth = org.apache.spark.mllib.fpm.FPGrowth@74a103be
modelBuild: org.apache.spark.mllib.fpm.FPGrowthModel[String] = org.apache.spark.mllib.fpm.FPGrowthModel@391b111a
但是当我试图获取频繁项集时,它显示空白数组
modelBuild.freqItemsets.collect().foreach { itemset =>
println(itemset.freq)
}
res660: Array[org.apache.spark.mllib.fpm.FPGrowth.FreqItemset[String]] = Array()
找不到问题所在。请帮忙!
将 minSupport 降低到 0.00001,所有集合都将被打印。来自 Spark 文档:
minSupport:一个项集被识别为频繁的最小支持度。例如,如果一个项目在 5 次交易中出现 3 次,则它的支持度为 3/5=0.6。