【机器学习笔记五】聚类 - k均值聚类
参考资料:
【1】Spark Mlib 机器学习实践
【2】机器学习
【3】深入浅出K-means算法 http://www.csdn.net/article/2012-07-03/2807073-k-means
一、概念
K-means聚类是在无监督的情况下,将样本数据进行聚类。以2均值聚类的算法为例:
1、在样本中选择两个初始化中心点;
2、计算所有样本到这两个中心点的距离,并以此为基准将样本分为两类;
3、将中心点移到这类样本的新中心点;
4、重复2、3步骤直到满足要求;
K-means也提供一种k维的one-hot编码,即当x属于聚类i时,那么对应的编码向量为1,否则为0
二、距离
K-means的计算依赖样本之间的距离计算,通常有如下几种:
三、Spark Mlib下例子
package kmean import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.{SparkContext, SparkConf} /*-
* kmean聚类
* Fredric 2017
*/
object kmean {
def main(args:Array[String]): Unit ={ val conf = new SparkConf().setMaster("local").setAppName("kmean")
val sc = new SparkContext(conf) //每一个向量代表特征空间中的一个点
val v0 = Vectors.dense(1)
val v1 = Vectors.dense(2)
val v2 = Vectors.dense(3)
val v3 = Vectors.dense(4) val v4 = Vectors.dense(11)
val v5 = Vectors.dense(25)
val v6 = Vectors.dense(31) val data = sc.parallelize(Seq(v0, v1, v2, v3, v4, v5, v6)) //setK表示最后聚类的分组数量是2,分成2组
val model = new KMeans().setMaxIterations(20).setK(2).run(data) /*
输出的两个中心点如下:
[4.2]
[28.0]*/
model.clusterCenters.foreach(println)
}
}
【机器学习笔记五】聚类 - k均值聚类的更多相关文章
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 探索sklearn | K均值聚类
1 K均值聚类 K均值聚类是一种非监督机器学习算法,只需要输入样本的特征 ,而无需标记. K均值聚类首先需要随机初始化K个聚类中心,然后遍历每一个样本,将样本归类到最近的一个聚类中,一个聚类中样本特征 ...
- 机器学习算法与Python实践之(六)二分k均值聚类
http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...
- 机器学习实战---K均值聚类算法
一:一般K均值聚类算法实现 (一)导入数据 import numpy as np import matplotlib.pyplot as plt def loadDataSet(filename): ...
- 5-Spark高级数据分析-第五章 基于K均值聚类的网络流量异常检测
据我们所知,有‘已知的已知’,有些事,我们知道我们知道:我们也知道,有 ‘已知的未知’,也就是说,有些事,我们现在知道我们不知道.但是,同样存在‘不知的不知’——有些事,我们不知道我们不知道. 上一章 ...
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...
- 机器学习之路:python k均值聚类 KMeans 手写数字
python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: ...
- 机器学习之K均值聚类
聚类的核心概念是相似度或距离,有很多相似度或距离的方法,比如欧式距离.马氏距离.相关系数.余弦定理.层次聚类和K均值聚类等 1. K均值聚类思想 K均值聚类的基本思想是,通过迭代的方法寻找K个 ...
- 100天搞定机器学习|day44 k均值聚类数学推导与python实现
[如何正确使用「K均值聚类」? 1.k均值聚类模型 给定样本,每个样本都是m为特征向量,模型目标是将n个样本分到k个不停的类或簇中,每个样本到其所属类的中心的距离最小,每个样本只能属于一个类.用C表示 ...
随机推荐
- SSM-SpringMVC-27:SpringMVC类型转换之日期类型初步
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本案例是上面的异常和日期类型转换结合的一个小小的Demo 案例开始 1.自定义处理器和处理方法: packag ...
- DCGAN 论文简单解读
DCGAN的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络).是2014年Ian J.Goodfellow 的那篇开创性的 ...
- MATCH_PARENT和FILL_PARENT之间的区别?
很多人表示对于很多工程中的MATCH_PARENT出现在layout中感到不明白,过去只有FILL_PARENT和WRAP_CONTENT那么 match_parent到底是什么类型呢? 其实从And ...
- Fedora Linux安装deb包
前言: 我们知道,在Linux系统上有两种主要的软件包格式,分别是RPM和deb. RPM是"RPM Package Manager(RPM软件包管理器)"的递归缩写.RPM是一种 ...
- 微机原理基础(五)—— MSP430
一.MSP430组成 1.结构简图 2.具体组成框图
- 你不知道的JavaScript--Item26 异步的脚本加载
先来看这行代码: <script src = "allMyClientSideCode.js"></script> 这有点儿--不怎么样."这该放 ...
- 超实用的JavaScript代码段 Item3 --图片轮播效果
图片轮播效果 图片尺寸 统一设置成:490*170px; 一.页面加载.获取整个容器.所有放数字索引的li及放图片列表的ul.定义放定时器的变量.存放当前索引的变量index 二.添加定时器,每隔2秒 ...
- HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/32964301 首先说明一下创意的出处:http://www.zhangxinxu ...
- 纯CSS打造进度条
进度条效果如下: CSS部分 body { background-color: white; } .progress-bar { display: flex; flex-direction: row; ...
- forwardPort.go
packagemain import( "encoding/json" "flag" "fmt" " ...