zoukankan      html  css  js  c++  java
  • 基于MLlib的机器学习--聚类

    《Spark快速大数据分析》
     
    11.5.4 聚类
    聚类算法是一种无监督学习任务,用于将对象分到具有高度相似性的聚类中。
    监督式学习中的数据都是带标签的,而聚类可以用于无标签的数据。
    该算法主要用于数据探索(查看一个数据集是什么样子)以及异常检测(识别
    与任意聚类都相距较远的点)。
     
    KMeans
    MLlib包含聚类中流行的K-Means算法,以及一个叫做K-Means||的变种,可以为
    并行环境提供更好的初始化策略。 K-Means||的初始化与K-Means++在配置单节点时
    所进行的初始化过程非常相似。
     
    k-Means中最重要的参数是生成的聚类中心的目标数量K。事实上,几乎不可能提前知道
    聚类的真实数量,所以最佳实践是尝试几个不同的K值,直到聚类内部平均距离不再显著下降为止。
    然而算法一次只能接受一个K值。除了K值外,MLlib中的K-means还接收以下几个参数:
      initializationMode
         用来初始化聚类中心的方法,可以是"k-means||"或者"random",默认k-means||,一般会
         带来更好的结果,但是开销也会稍高一些。
       maxIterations
         运行的最大迭代次数,默认值100
       runs
         算法并发运行的数目。MLlib的K-means算法支持从多个起点并发执行,然后选择最佳结果,
         这也是获取较好的整体模型的一种不错的方法.
    和其他算法一样,当要调用K-means算法时,需要创建mllib.clustering.KMeans对象或者调用
    KMeans.train。它接收一个Vector组成的RDD作为参数。K-Means返回一个KMeansModel对象,
    该对象运行访问其clusterCenters属性(聚类中心,是一个向量的数组)或者调用predict()来对一个新的
    向量返回它所属的聚类。perdict()总是返回和该点距离最近的聚类中心。
     
  • 相关阅读:
    Pascal Analyzer 4 代码分析使用简要说明
    界面动态配置:持久化反持久化
    (Sql Server)数据的拆分和合并
    javascript中的promise和deferred:实践(二)
    对面向接口编程、按分层建项目的反思和新的分层结构思路
    revel框架教程之权限控制
    等待与通知机制
    实现代码编辑器
    自定义html标签
    javascript生成自定义的arcgis simpletoolbar
  • 原文地址:https://www.cnblogs.com/ihongyan/p/5017242.html
Copyright © 2011-2022 走看看