spark mllib 聚类 快速迭代_weixin_34391445的博客-程序员秘密

技术标签: 人工智能  大数据  

运行代码如下

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

结果如下

转载于:https://my.oschina.net/sunmin/blog/723350

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34391445/article/details/91856971

智能推荐

《论文阅读》Multi-Granularity Reference-Aided Attentive Feature Aggregation for Video-based Person Re-iden_未知丶丶的博客-程序员秘密

留个笔记自用Multi-Granularity Reference-Aided Attentive Feature Aggregation for Video-based Person Re-identification做什么Person Re-identification行人重识别,给定一个查询图像(即源图像),行人重识别的目标是在多个不重叠的摄像机之间匹配人(即找到与源图像相同的人)做了什么怎么做总结...

PA2.2_lyh_lcz的博客-程序员秘密

1.diff-test       建议先完成讲义中“基础设施2”的部分。要运行通过的程序都是几十几百行,再加上有的有循环跳转等等,实际调试的时候常常都是si 50、si 100之类,所以当填写完某个程序所需的指令然后HIT A BAD TRAP的时候,你就会知道什么叫绝望——你只能从头开始,一行一行的自己演算一遍,有时候甚至整个程序都算完了都看不出问题...

十道SQL常见面试题_# Never Give up &的博客-程序员秘密

一共五张表tab_classtab_coursetab_scoretbl_studenttbl_teacher建表语句和数据CREATE TABLE `tbl_class` ( `class_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '班级ID', `caption` varchar(30) DEFAULT NULL...

jCasbin:支持MAC、RBAC、ABAC多种模型的Java权限管理框架_abac 权限控制 开源框架_Casbin开源社区的博客-程序员秘密

jCasbin是一个用Java语言打造的轻量级开源访问控制框架(https://github.com/casbin/jcasbin),目前在GitHub开源。jCasbin采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制RBAC、基于属性的访问控制ABAC等。jCasbin的主要特性包括:支持自定义请求的格式,默认的请求格式为{subject, objec...

HDU 1003 Max Sum (最大子序列的和)_hdu_1003:最大总和_zjy96的博客-程序员秘密

Problem DescriptionGiven a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14

Vue常用的钩子函数_vue中常用的3个钩子函数_蓝绿色~菠菜的博客-程序员秘密

初学Vue,对几个钩子函数还是比较模糊,有时候想在钩子函数中做一些事情,但什么时候做,在那个函数中做,还不是很清楚。于是,开始探索:生命周期函数:<body> <div id="app"> <h3 id="h3">{{msg}}</h3> <input type="button" value="修改msg" @click="msg='No'"> </div> <

随便推点

vmlinuz文件解压方法_vmlinuz解压_rayylee的博客-程序员秘密

[[email protected] boot]# od -t x1 -A d vmlinuz | grep “1f 8b 08”0013408 ff e0 1f 8b 08 00 ea 80 b9 52 02 03 ec 5b 7f 74[[email protected] boot]# dd if=vmlinuz bs=1 skip=0013410 | zcat > vmlinuxgzip: stdin: decompression OK, trailing garbage ignored记录了9195934+0

java.lang.ClassNotFoundException:org.slf4j.impl.StaticLoggerBinder_cyan20115的博客-程序员秘密

问题 启动Wicket Web应用程序时,它显示以下错误消息: java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223) at org.slf4j.LoggerFactory.bind(...

旅途如何连接无线 绝妙妙招 倾囊相授_weixin_34356310的博客-程序员秘密

为什么80%的码农都做不了架构师?>>> ...

cesm下载备注_撞强的博客-程序员秘密

新版使用svn下载。软件要求:The following are the external system and software requirements for installing and running CESM.UNIX style operating system such as CNL, AIX and Linux csh, sh, and per

linux deepin下 jdk安装_weixin_30449453的博客-程序员秘密

一、安装jdk8下载JDK的tar.gz包   官网下载最新的JDK: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html解压压缩包   进入下载目录   cd ~/Download   解压...

IntelliJ IDEA常用快捷键(非常实用)-提升你的编码速度_idea .var还有_默茉的博客-程序员秘密

目录 IDEA介绍 前言复制选择移动删除提示定位格式化 IDEA介绍 前言 百度百科:IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrai...

推荐文章

热门文章

相关标签