Spark-MLlib的快速使用之十一(K-means 聚类)

K-means是最常用的聚类算法之一,它将数据点聚类为预定义数量的聚类。该spark.mllib实现包括一个名为kmeans ||k-means ++方法的并行变体 。实现中包含以下参数:spark.mllib

  • k是所需簇的数量。
  • maxIterations是要运行的最大迭代次数。
  • initializationMode指定随机初始化或通过k-means ||初始化。
  • runs是运行k-means算法的次数(k-means不保证找到全局最优解,并且当在给定数据集上多次运行时,算法返回最佳聚类结果)。
  • initializationSteps确定k-means ||中的步数 算法。
  • epsilon确定我们认为k-means已收敛的距离阈值。
  • initialModel是一组用于初始化的可选集群中心。如果提供此参数,则仅执行一次运行。

 

(1)训练数据

鸢尾花卉 

5.1 3.5 1.4 0.2

4.9 3.0 1.4 0.2

4.7 3.2 1.3 0.2

4.6 3.1 1.5 0.2

5.0 3.6 1.4 0.2

5.4 3.9 1.7 0.4

4.6 3.4 1.4 0.3

5.0 3.4 1.5 0.2

4.4 2.9 1.4 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K-means 算法是一种无监督学习算法,用于将数据集分成 K 个簇。Spark MLlib 实现K-means 算法,可以用于大规模数据的聚类。 以下是 Spark MLlib 实现 K-means 算法的基本步骤: 1. 加载数据集,将数据集转换为特征向量 2. 初始化 K 个簇的质心 3. 对每个样本,将其分配到距离最近的簇 4. 根据分配结果,重新计算每个簇的质心 5. 重复步骤 3 和 4,直到达到最大迭代次数或收敛 以下是一个简单的代码示例: ```python from pyspark.ml.clustering import KMeans from pyspark.ml.evaluation import ClusteringEvaluator from pyspark.ml.feature import VectorAssembler # 加载数据集 data = spark.read.format("csv").load("path/to/data.csv", header=True, inferSchema=True) # 转换数据集为特征向量 assembler = VectorAssembler(inputCols=data.columns, outputCol="features") dataset = assembler.transform(data) # 初始化 KMeans 模型 kmeans = KMeans().setK(2).setSeed(1) # 训练模型 model = kmeans.fit(dataset) # 输出簇心点 centers = model.clusterCenters() for center in centers: print(center) # 预测数据集每个样本所属的簇 predictions = model.transform(dataset) # 评估模型 evaluator = ClusteringEvaluator() silhouette = evaluator.evaluate(predictions) print("Silhouette with squared euclidean distance = " + str(silhouette)) ``` 这里假设数据集已经被加载并且包含两个特征。首先,使用 VectorAssembler 将数据集转换为特征向量。然后,初始化 KMeans 模型并训练它。最后,输出每个簇的心点和模型评估结果。需要注意的是,这里使用了默认的欧几里得距离作为距离度量。如果需要使用其他距离度量,可以通过设置 distanceMeasure 参数来实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值