鲲鹏社区首页
EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

DBSCAN

模型接口类别

函数接口

ML API

def fitPredict(dataset: Dataset[_]): DataFrame

ML API

  • 功能描述

    传入Dataset格式的样本数据,调用fitPredict接口,输出聚类结果。

  • 输入输出
    1. 包名org.apache.spark.ml.clustering
    2. 类名:DBSCAN
    3. 方法名:fitPredict
    4. 输入:Dataset[_],训练样本数据,必须字段如下。

      参数名称

      取值类型

      缺省值

      描述

      featuresCol

      Vector

      features

      特征向量

    5. 基于原生算法优化的参数。
      1
      2
      3
      def setMinPoints(value: Int): DBSCAN.this.type
      def setEpsilon(value: Double): DBSCAN.this.type
      def setSampleRate(value: Double): DBSCAN.this.type
      
      1. epsilon为DBSCAN算法的近邻距离参数,取值范围大于0.0。
      2. minPoints为DBSCAN算法定义核心点的近邻点个数阈值参数,取值范围大于1。
      3. sampleRate为对输入数据的采样率,基于采样数据用来对全量输入数据进行空间划分,取值范围为(0.0, 1.0],缺省值为1.0,代表默认使用全量输入数据。

        代码接口示例:

        1
        2
        3
        4
         val model = new DBSCAN()
              .setEpsilon(params.epsilon)
              .setMinPoints(params.minPoints)
              .setSampleRate(params.sampleRate)
        
    6. 输出:聚类结果,字段如下。

      参数名称

      取值类型

      缺省值

      描述

      predictionCol

      Int

      prediction

      该样本所属类别:

      • 对于noise样本,其类别为-1。
      • 对于core样本,其类别为0。
      • 对于border样本,其类别为1。

      labelCol

      Int

      label

      该样本所属聚类编号:

      • 对于noise样本,其所属聚类编号默认为-1。
      • 对于core/border样本,其所属聚类编号≥0。
  • 使用样例
    1
    2
    3
    4
    5
    val dbscan = new DBSCAN()
          .setEpsilon(0.2)
          .setMinPoints(3)
          .setSampleRate(1.0)
    val result = dbscan.fitPredict(trainData)