组件名称

  K均值聚类-1版 [版本号:1] [更新时间:2018-05-08]

简介

  K均值算法组件是数据超市机器学习模块下的聚类算法组件。

1.1 K均值聚类算法

K均值聚类算法又叫K-means算法,是最为经典的基于划分的聚类方法。k-means 算法接受参数 k;然后将事先输入的n个数据对象划分为 k 个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。

1.2 基本思想

K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。 假设要把样本集分为c个类别,算法描述如下: (1)适当选择c个类的初始中心; (2)在第k次迭代中,对任意一个样本,求其到c各中心的距离,将该样本归到距离最短的中心所在的类; (3)利用均值等方法更新该类的中心值; (4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。 算法的关键在于初始中心的选择和距离公式。

1.3 kmeans++初始聚类中心选择

Kmeans算法的缺陷 聚类中心的个数k需要事先给定,但在实际中这个k值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适 Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。在K均值聚类算法组件中可以使用Kmeans++算法来解决这个问题。 kmeans++算法的主要工作体现在种子点的选择上,基本原则是使得各个种子点之间的距离尽可能的大,但是又得排除噪声的影响。 以下为基本思路: 1、从输入的数据点集合(要求有k个聚类)中随机选择一个点作为第一个聚类中心 2、对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x) 3、选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大 4、重复2和3直到k个聚类中心被选出来 5、利用这k个初始的聚类中心来运行标准的k-means算法 假定数据点集合X有n个数据点,依次用X(1)、X(2)、……、X(n)表示,那么,在第2步中依次计算每个数据点与最近的种子点(聚类中心)的距离,依次得到D(1)、D(2)、……、D(n)构成的集合D。在D中,为了避免噪声,不能直接选取值最大的元素,应该选择值较大的元素,然后将其对应的数据点作为种子点。 如何选择值较大的元素呢?把集合D中的每个元素D(x)想象为一根线L(x),线的长度就是元素的值。将这些线依次按照L(1)、L(2)、……、L(n)的顺序连接起来,组成长线L。L(1)、L(2)、……、L(n)称为L的子线。根据概率的相关知识,如果我们在L上随机选择一个点,那么这个点所在的子线很有可能是比较长的子线,而这个子线对应的数据点就可以作为种子点。

输入和输出

  输入端口个数:1

  输出端口个数:1

参数配置

参数名称 参数说明 参数默认值 是否必填
要聚类的簇的个数 2 必填
初始聚类中心选择 可以选择随机点作为初始聚类中心也可利用k-means++算法选择聚类中心 可选 k-means 必填
种子数 设置随机种子数值,大于0的整数. 默认是空 可选 必填
最小收敛误差 1e-06 必填
最大迭代次数(> = 0) 20 必填

字段配置

字段名称 字段说明 字段默认值 是否必配
特征列 输入模型的样本特征列 必选 支持Double/Int类型字段 必填

输出节点的字段配置说明

  运行后不生成新字段。后续节点可以直接选择字段。

results matching ""

    No results matching ""