Spark Mlib(二)k

阅读: 评论:0

Spark Mlib(二)k

Spark Mlib(二)k

一 算法思想

K-MEANS算法是输入聚类个数k,以及包含 n个数据对象的数据库,输出满足方差最小标准k个聚类的一种算法。k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。
基本步骤
(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;
(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
(3) 重新计算每个(有变化)聚类的均值(中心对象);
(4) 计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则回到步骤(2)。

二 使用领域

可以用来进行聚类,元素的相似度计算等

三 spark实现

spark官网给出的k-means的实现方式,原地址.html

package alg
import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.ml.evaluation.ClusteringEvaluator
import org.apache.spark.sql.SparkSession
object k_means {def main(args:Array[String]):Unit={val spark: SparkSession = SparkSession.builder.appName("My").master("local[*]").getOrCreate()// Loads data.val dataset = ad.format("libsvm").load("data/mllib/sample_")// Trains a k-means model.val kmeans = new KMeans().setK(2).setSeed(1L)val model = kmeans.fit(dataset)// Make predictionsval predictions = ansform(dataset)// Evaluate clustering by computing Silhouette scoreval evaluator = new ClusteringEvaluator()val silhouette = evaluator.evaluate(predictions)println(s"Silhouette with squared euclidean distance = $silhouette")// Shows the result.println("Cluster Centers: ")model.clusterCenters.foreach(println)}}

本文发布于:2024-01-28 19:38:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064418879788.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Spark   Mlib
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23