聚类算法

最近更新时间:2019-07-23 15:22:49

KMeans

KMeans 是一种常用的聚类算法,将无标签的数据聚成 K 个类。平台提供的 KMeans 算法实现了并行的 k-means++ 的初始化算法。

输入

  • 数据形式:Dense 或 Libsvm。
  • 格式:| 参与计算的 features | 不参与计算的 features |
  • 参与计算的 features:可通过算法参数选择特征列指定。
  • 不参与计算的 features:如果存在则保留在输出中,对于 Libsvm 格式的数据,也包括了 label 列,该 label 仅用于标识样本 ID。

输出

  • 格式:| 不参与计算的features | cluster_id |
  • cluster_id:样本对应的簇 ID。

算法参数

  • 选择特征列:从0开始计数,以类似“1-12,15”的方式选择特征,表示取特征在表中的1到12列,15列。
  • 并行数:训练数据的分区数、Spark 的并行数。
  • 抽样率:输入数据的采样率。
  • 聚类个数 K:期望将数据聚成 K 类。
  • 聚类中心初始化方式:k-means|| 或者 random。
  • 聚类重复次数:默认为1。
  • 最大迭代次数:默认为20。
  • 算法终止误差:聚类中心位置更新小于该值时,迭代终止,默认为 1e - 4。

DBSCAN

DBSCAN 算法是一种基于密度的聚类算法。该算法可将具有足够高密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇。

  • 鉴于目前对空间密度定义的限制,本算法仅对二维数据进行聚类。用户需要选择对应 x 与 y 轴的两个特征。
  • 输入数据尽量只包含 x 与 y 轴对应的特征,其他不参与聚类的特征也可以包括,但为了提高运行速度,尽量避免引入过多不参与聚类的特征。
  • 所有识别出的噪音点的簇 ID 均为0,非噪音点的簇 ID 从1开始计数。

输入

  • 数据形式:Dense。
  • 格式:| 参与计算的 features | 不参与计算的 features |
  • 参与计算的 features:可通过算法参数对应x轴的特征列对应y轴的特征列指定。
  • 不参与计算的 features:为了运行效率,尽量避免引入。

输出

  • 格式:| x 轴对应特征 | y 轴对应特征 | 不参与计算的 features | 所属的簇 ID |
  • 聚类的簇 ID:噪音点的簇 ID 均为0,非噪音点的簇 ID 从1开始计数。

算法参数

  • 对应 x 轴的特征列:从0开始计数。
  • 对应 y 轴的特征列:从0开始计数。
  • 并行数:训练数据的分区数、Spark 的并行数。
  • 抽样率:输入数据的采样率。
  • 邻域半径:确定邻域的半径。
  • 邻域内最少点数:在邻域内形成簇的最少点数,注意该点数包括某点本身。
  • 分区内最大点数:每个分区内的最大点数,建议该值取小点,以提高并行度。