spark MLlib
2016-03-01 20:00
477 查看
1. kmeans
kmeans++ 解决kmeans的初值点个数设置,点位置初始化问题,具体:
利用区间采样的方法=> 在一组数据中怎么随机选取值较大的数,例如选取若干个学习好的学生?
kmeans++步骤:
从输入的数据点集合中随机选择一个点作为第一个聚类中
对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x) => (x,D(x))
选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
a.于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,把这些距离加起来得到Sum(D(x))
b.然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其小于等于0,此时的点就是下一个“种子点”。假设A、B、C、D的D(x)如上图所示,当算法取值Sum(D(x))*random时,该值会以较大的概率落入D(x)较大的区间内
重复2和3直到k个聚类中心被选出来
用这k个初始的聚类中心来运行标准的k-means算法
kmeans++ 解决kmeans的初值点个数设置,点位置初始化问题,具体:
利用区间采样的方法=> 在一组数据中怎么随机选取值较大的数,例如选取若干个学习好的学生?
kmeans++步骤:
从输入的数据点集合中随机选择一个点作为第一个聚类中
对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x) => (x,D(x))
选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
a.于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,把这些距离加起来得到Sum(D(x))
b.然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其小于等于0,此时的点就是下一个“种子点”。假设A、B、C、D的D(x)如上图所示,当算法取值Sum(D(x))*random时,该值会以较大的概率落入D(x)较大的区间内
重复2和3直到k个聚类中心被选出来
用这k个初始的聚类中心来运行标准的k-means算法
相关文章推荐
- 文件下载导致的 Broken pipe
- 用service还是thread?
- ArcGIS之二工程以及图层的建立
- StringBuffer StringBuilder线程安全的理解
- Hive 累积和的计算
- 欢迎使用CSDN-markdown编辑器
- 透过ATS缓存配置看如何判断HTTP资源是否可缓存方法论
- Poj 3320 Jessica's Reading Problem【动态尺取法】
- <iframe>内联框架
- log4j:ERROR Could not find value for key log4j.appender.Console 报错解决方法
- 51nod--贪心入门
- redis 与 jedis
- 把ResultSet对象转变成List对象
- 把ResultSet对象转变成List对象
- Leetcode:linked_list_cycle
- sessionStorage、localStorage、cookie和IE User Data(一)
- linux网络文件系统挂载配置
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- VS中的项目使用bat脚本进行构建
- Linux文件系统基础(2)