温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spark mlilib 聚类 KMeans怎么用

发布时间:2021-12-16 14:39:17 来源:亿速云 阅读:133 作者:小新 栏目:云计算

这篇文章主要为大家展示了“spark mlilib 聚类 KMeans怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“spark mlilib 聚类 KMeans怎么用”这篇文章吧。

聚类使用场景 

数据聚类是对于静态数据分析的一门技术,在许多领域内都被广泛地应用,包括机器学习、数据挖掘、模式识别、图像分析、信息检索以及生物信息等

运行代码如下

package spark.clustering

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

/**
  * 一般来说,分类是指有监督的学习,即要分类的样本是有标记的,类别是已知的;
  * 聚类是指无监督的学习,样本没有标记,根据某种相似度度量,将样本聚为 K类.
  *
  * 聚类KMEANS
  * 基本思想和核心内容就是在算法开始时随机给定若干(k)个中心,按照距离原则将样本点分配到各个中心点,
  * 之后按照平均法计算聚类集的中心点位置,从而重新确定新的中心点位置.这样不断地迭代下去直至聚类集内的样本满足一定的阈值为止.
  *
  * Created by eric on 16-7-21.
  */
object Kmeans {
  val conf = new SparkConf()                                     //创建环境变量
    .setMaster("local")                                             //设置本地化处理
    .setAppName("KMeans")                              //设定名称
  val sc = new SparkContext(conf)

  def main(args: Array[String]) {
    val data = sc.textFile("./src/main/spark/clustering/kmeans.txt")
    val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble)))
      .cache()
    val numClusters = 2 //最大分类数
    val numIterations = 20 //迭代次数
    val model = KMeans.train(parsedData, numClusters, numIterations)

    model.clusterCenters.foreach(println)//分类中心点
    //[1.4000000000000001,2.0]
    //[3.6666666666666665,3.6666666666666665]
  }
}

kmeans.txt

1 2
1 1
1 3
2 2
3 4
4 3
2 2
4 4

结果如下

spark mlilib 聚类 KMeans怎么用

以上是“spark mlilib 聚类 KMeans怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI