查看: 217|回复: 1

spark ml 聚类源码

[复制链接]
新浪微博达人勋 xenron  实名认证
论坛徽章:
251
股票徽章
日期:2019-09-12 14:42:59spark徽章
日期:2019-09-19 15:44:06人工智能徽章
日期:2019-09-19 15:47:00区块链徽章
日期:2019-09-19 15:47:29python徽章
日期:2019-09-19 15:47:56
发表于 2019-6-8 23:22 | 显示全部楼层 |阅读模式

算法 源码 方法

首先是参数

k : 聚类数,默认2

initMode : 初始化算法的参数,可以是RANDOM或K_MEANS_PARALLEL,RANDOM是随机选择初始聚类中心,K_MEANS_PARALLEL是使用算法选择初始聚类中心,也是默认情况

initSteps : K_MEANS_PARALLEL方法迭代步数,默认5

接下来是一些重要的方法

private[clustering] def predict(features: Vector): Int = parentModel.predict(features)//predict预测新的属性属于哪个类

def clusterCenters: Array[Vector] = parentModel.clusterCenters//列出最终的聚类中心

  def computeCost(dataset: DataFrame): Double = {//计算距离平方的总和
    SchemaUtils.checkColumnType(dataset.schema, $(featuresCol), new VectorUDT)
    val data = dataset.select(col($(featuresCol))).map { case Row(point: Vector) => point }
    parentModel.computeCost(data)//主要是调用computeCost方法
  }

回复

使用道具 举报

论坛徽章:
36
树莓派
日期:2015-04-10 15:20:01python徽章
日期:2017-08-17 17:09:36python徽章
日期:2017-10-20 16:37:41区块链徽章
日期:2018-01-18 18:02:56金融徽章
日期:2018-03-01 16:43:15Hadoop研习者初级
日期:2018-03-29 16:08:43R研习者中级
日期:2018-04-26 15:27:36python徽章
日期:2018-06-21 17:15:38股票徽章
日期:2018-08-24 10:51:37计算徽章
日期:2018-09-21 16:51:47股票徽章
日期:2018-11-01 14:04:25股票徽章
日期:2019-01-10 14:04:57
发表于 2019-6-15 15:29 | 显示全部楼层
private[clustering] def predict(features: Vector): Int = parentModel.predict(features)//predict预测新的属性属于哪个类

def clusterCenters: Array[Vector] = parentModel.clusterCenters//列出最终的聚类中心

  def computeCost(dataset: DataFrame): Double = {//计算距离平方的总和
    SchemaUtils.checkColumnType(dataset.schema, $(featuresCol), new VectorUDT)
    val data = dataset.select(col($(featuresCol))).map { case Row(point: Vector) => point }
    parentModel.computeCost(data)//主要是调用computeCost方法
  }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-9-20 16:17 , Processed in 0.118089 second(s), 31 queries .

关闭

扫一扫加入
本版微信群