sparkmllib如何实现快速迭代聚类

小编给大家分享一下spark mllib如何实现快速迭代聚类,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

成都创新互联公司是一家专业提供敦化企业网站建设,专注与网站建设、成都网站建设H5场景定制、小程序制作等业务。10年已为敦化众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

运行代码如下

package spark.clustering

import org.apache.spark.mllib.clustering.{PowerIterationClustering}
import org.apache.spark.{SparkConf, SparkContext}

/**
  * 快速迭代聚类
  * 基本原理:使用含有权重的无向线将样本数据连接在一张无向图中,之后按照相似度划分,
  * 使得划分后的子图内部具有最大的相似度二不同的子图具有最小的相似度从而达到聚类的效果.
  * 数据源要求  RDD[(Long), (Long), (Double)]
  * 第一个参数和第二个参数是第一个点和第二个点的编号,即其之间 ID,第三个参数是相似度计算值.
  * Created by eric on 16-7-21.
  */
object PIC {
  val conf = new SparkConf()                                     //创建环境变量
    .setMaster("local")                                             //设置本地化处理
    .setAppName("pic")                              //设定名称
  val sc = new SparkContext(conf)

  def main(args: Array[String]) {
    val data = sc.textFile("./src/main/spark/clustering/pic.txt")
    val similarities = data.map { line =>
      val parts = line.split(" ")
      (parts(0).toLong, parts(1).toLong, parts(2).toDouble)
    }
    val pic = new PowerIterationClustering()
      .setK(2) //设置聚类数
      .setMaxIterations(10) //设置迭代次数
    val model = pic.run(similarities)

    model.assignments.foreach {a =>
      println(s"${a.id} -> ${a.cluster}")
    }
  }
}

pic.txt

0 1 1.0
0 2 1.0
0 3 1.0
1 2 1.0
1 3 1.0
2 3 1.0
3 4 0.1
4 5 1.0
4 15 1.0
5 6 1.0
6 7 1.0
7 8 1.0
8 9 1.0
9 10 1.0
10 11 1.0
11 12 1.0
12 13 1.0
13 14 1.0
14 15 1.0

结果如下

spark mllib如何实现快速迭代聚类

看完了这篇文章,相信你对“spark mllib如何实现快速迭代聚类”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

分享题目:sparkmllib如何实现快速迭代聚类
当前URL:https://www.cdcxhl.com/article8/psciip.html

成都网站建设公司_创新互联,为您提供网站设计网站维护关键词优化外贸建站微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计