gpt4 book ai didi

apache-spark - 如何在 Spark MLlib 中为 K-means 初始化聚类中心?

转载 作者:行者123 更新时间:2023-12-04 04:45:19 25 4
gpt4 key购买 nike

有没有办法在 Spark MLlib 中运行 K-Means 时初始化集群中心?

我试过以下:

model = KMeans.train(
sc.parallelize(data), 3, maxIterations=0,
initialModel = KMeansModel([(-1000.0,-1000.0),(5.0,5.0),(1000.0,1000.0)]))
initialModelsetInitialModel spark-mllib_2.10 中不存在

最佳答案

从 Spark 1.5+ 开始,可以使用 setInitialModel 在 Scala 中设置初始模型这需要 KMeansModel :

import org.apache.spark.mllib.clustering.{KMeans, KMeansModel}
import org.apache.spark.mllib.linalg.Vectors

val data = sc.parallelize(Seq(
"[0.0, 0.0]", "[1.0, 1.0]", "[9.0, 8.0]", "[8.0, 9.0]"
)).map(Vectors.parse(_))

val initialModel = new KMeansModel(
Array("[0.6, 0.6]", "[8.0, 8.0]").map(Vectors.parse(_))
)

val model = new KMeans()
.setInitialModel(initialModel)
.setK(2)
.run(data)

和 PySpark 1.6+ 使用 initialModel train 的参数方法:

from pyspark.mllib.clustering import KMeansModel, KMeans
from pyspark.mllib.linalg import Vectors

data = sc.parallelize([
"[0.0, 0.0]", "[1.0, 1.0]", "[9.0, 8.0]", "[8.0, 9.0]"
]).map(Vectors.parse)

initialModel = KMeansModel([
Vectors.parse(v) for v in ["[0.6, 0.6]", "[8.0, 8.0]"]])
model = KMeans.train(data, 2, initialModel=initialModel)

如果这些方法中的任何一个不起作用,则意味着您使用的是早期版本的 Spark。

关于apache-spark - 如何在 Spark MLlib 中为 K-means 初始化聚类中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35426240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com