【第十三章:Sentosa_DSML社区版-机器学习之聚类】
目录
13.1 KMeans聚类
13.2 二分KMeans聚类
13.3 高斯混合聚类
13.4 模糊C均值聚类
13.5 Canopy聚类
13.6 Canopy-KMeans聚类
13.7 文档主题生成模型聚类
13.8 谱聚类
【第十三章:Sentosa_DSML社区版-机器学习之聚类】
13.1 KMeans聚类
1.算子介绍
KMeans聚类算子(k-means clustering algorithm:k均值聚类算法)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。
2.算子类型
机器学习/聚类算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
k | 聚类数目 | 必填 | Int | 2 | >=2 | k-means 聚类最终创建的簇的数目 |
max_iter | 最大迭代次数 | 必填 | Int | 20 | >0 | 最大迭代次数 |
tolerance | 收敛偏差 | 必填 | Double | 0.0001 | >0 | 收敛偏差 |
init_mode | 初始化算法 | 必选 | String | k-means|| | “random”,“k-means||”中的一个 | 初始化算法类型,可选“random”,“k-means||” |
init_steps | k-means||算法的步数 | 必填 | Int | 2 | >0 并且只在 init_mode 为“k-means||”时让用户设置 | “k-means||”算法的步数 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
KMeans算子属性界面如图所示
KMeans属性界面
聚类中心点有两种初始化方法:随机初始化和“k - means||”算法。当使用“k - means||”算法进行中心点初始化时,需要设置“k - means||”算法的步数参数。
(3)算子的运行
KMeans为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个KMeans算子,右击算子,点击运行,得到KMeans模型。
运行KMeans算子获得KMeans模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
KMeans模型算子流
右击模型,查看模型的模型信息
KMeans模型信息
模型的运行结果如图所示
KMeans模型运行结果
模型的评估结果如图所示
KMeans模型模型评估结果
13.2 二分KMeans聚类
1.算子介绍
二分KMeans(BuildBKMeansnode)算法是对K-means的改进,防止聚类陷入局部最优解。它的主要思想是:首先将所有点作为一个簇,然后将该簇一分为二。之后选择能最大限度降低聚类代价函数的簇划分为两个簇。以此进行下去,直到簇的数目等于用户给定的数目k为止。
2.算子类型
机器学习/聚类算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
k | 聚类数目 | 必填 | Int | 4 | >=2 | 聚类数目 |
max_iter | 最大迭代次数 | 必填 | Int | 20 | >0 | 最大迭代次数 |
min_divisible_cluster_size | 最小可分割簇数目 | 必填 | Double | 1.0 | >0.0 | 最小可试用集群大小,如果大于1则为最小点数,如果<1则为最小比例 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
二分KMeans算子属性界面如图所示
二分KMeans属性界面
(3)算子的运行
二分KMeans为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个二分KMeans算子,右击算子,点击运行,得到二分KMeans模型。
运行二分KMeans算子获得二分KMeans模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
二分KMeans模型算子流
右击模型,查看模型的模型信息,如图所示。
二分KMeans模型信息
模型的运行结果如图所示
二分KMeans模型运行结果
模型的评估结果如图所示
二分KMeans模型评估结果
13.3 高斯混合聚类
1.算子介绍
高斯混合模型(BuildGMNode)就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。高斯混合模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。
2.算子类型
机器学习/聚类算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
k | 高斯函数的数量 | 必填 | Int | 2 | >1 | 混合模型中独立高斯函数的个数。必须大于1。默认值:2。 |
max_iter | 最大迭代次数 | 必填 | Double | 100 | >0 | 最大迭代次数 |
tol | 收敛偏差 | 必填 | Double | 0.000001 | >0 | 收敛偏差 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
高斯混合模型属性界面如图所示
高斯混合模型属性界面
(3)算子的运行
高斯混合模型为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个高斯混合模型算子,右击算子,点击运行,得到高斯混合模型的模型。
运行高斯混合模型算子获得高斯混合模型的模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
高斯混合模型的模型算子流
右击模型,查看模型的模型信息
高斯混合模型的模型信息
模型的运行结果如图所示
高斯混合模型运行结果
模型的评估结果如图所示
高斯混合模型的模型评估结果
13.4 模糊C均值聚类
1.算子介绍
模糊C均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM)。它是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。它除了给出某一样本的具体分类,还可以给出它隶属于每一样本的隶属度。更方便用户对聚类结果有更深入的判断。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
clusters_num | 聚类数目 | 必选 | Integer | 3 | >2 | 聚类数目 |
max_iter | 最大迭代次数 | 必选 | Integer | 100 | >=1 | 最大迭代次数 |
epsilon | 迭代终止判定准则 | 必选 | Double | 0.1 | 0<x<1 | 迭代中止判定准则 |
fuzzyness_coefficient | 隶属度因子 | 必选 | Double | 2.0 | >=2.0 | 隶属度因子 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
模糊C均值模型属性界面如图所示
模糊C均值模型属性界面
其中迭代终止判定准则表示迭代后中心点坐标的改变量小于0.1时迭代终止。隶属度因子为代价函数中隶属度的加权指数。
(3)算子的运行
模糊C均值聚类模型为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个模糊C均值聚类模型算子,右击算子,点击运行,得到模糊C均值聚类的模型。
运行模糊C均值聚类算子获得模糊C均值聚类模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
模糊C均值聚类模型的算子流
右击模型,查看模型信息
模糊C均值聚类模型的模型信息
模型的运行结果如图所示
模糊C均值聚类模型的运行结果
模型的评估结果如图所示
模糊C均值聚类模型的评估结果
13.5 Canopy聚类
1.算子介绍
Canopy算法也是一种常用的聚类算法,它的一种快速粗聚类算法,优势是用户不用事先指定聚类数目。用户需要指定两个距离阈值,T1,T2,且T1>T2。可以认为T2为核心聚类范围,T1为外围聚类范围。每一个训练样本都属于一个确定的核心聚类范围,但可以属于多个外围聚类范围。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
T1 | T1值 | 必填 | Double | 100.0 | >0.0 且 >=T2 | Canopy算法T1值 |
T2 | T2值 | 必填 | Double | 1.0 | >0.0 且 <=T1 | Canopy算法T2值 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
Canopy聚类算子的属性界面如图所示
Canopy聚类算子属性界面
(3)算子的运行
Canopy聚类算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个Canopy聚类算子,右击算子,点击运行,得到Canopy聚类算子的模型。
运行Canopy聚类算子获得Canopy聚类模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
Canopy聚类模型的算子流
右击模型,查看模型信息
Canopy聚类模型信息
模型的运行结果如图所示。
Canopy聚类模型的运行结果
模型的评估结果如图所示
Canopy聚类模型的评估结果
常见问题解答
1. 分类结果过多(超过100种)
该算子建模后,生成过多的分类结果,造成算子报错。
13.6 Canopy-KMeans聚类
1.算子介绍
Canopy-Kmeans 是结合Canopy和Kmeans两种聚类算法的优势,首先利用Canopy聚类先对数据进行快速“粗”聚类,得到k值后再使用K-means进行进一步“细”聚类。这样既提高聚类算法性能,也不用用户提前指定聚类具体个数。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
T1 | T1值 | 必填 | Double | 100.0 | >0.0 且 >=T2 | Canopy算法T1值 |
T2 | T2值 | 必填 | Double | 1.0 | >0.0 且 <=T1 | Canopy算法T2值 |
max_iter | 最大迭代次数 | 必填 | Int | 20 | >0 | 最大迭代次数 |
tolerance | 收敛偏差 | 必填 | Double | 0.0001 | >0.0 | 收敛偏差 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
Canopy-KMeans聚类算子的属性界面如图所示
Canopy-KMeans聚类算子属性界面
Canopy-KMeans聚类算子用Canopy算法确定聚类的初始中心点,再用KMeans算法进行细聚类。
(3)算子的运行
Canopy-KMeans聚类算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个Canopy-KMeans聚类算子,右击算子,点击运行,得到Canopy-KMeans聚类算子的模型。
运行Canopy-KMeans聚类算子获得Canopy-KMeans聚类模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
Canopy-KMeans聚类模型的算子流
右击模型,查看模型信息
Canopy-KMeans聚类模型信息
模型的运行结果如图所示
Canopy-KMeans聚类模型的运行结果
模型的评估结果如图所示
Canopy-KMeans聚类模型的评估结果
13.7 文档主题生成模型聚类
1.算子介绍
文档主题生成模型聚类(BuildLDANode)也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
k | 主题数量 | 必填 | Int | 10 | >1 | 推断的主题(集群)的数量。一定是> 1。默认值:10。 |
max_iter | 最大迭代次数 | 必填 | Int | 20 | >0 | 最大迭代次数 |
sub_sampling_rate | 采样率 | 必填 | Double | 0.05 | optimizer=online 且(0,1) | 仅适用于优化器为online模式,在每次梯度下降迭代中被采样和使用的语料在(0,1)范围内的分数。 |
learning_decay | 学习速率 | 必填 | Double | 0.51 | optimizer=online 且(0.5,1.0] | 指数衰减速率,仅适用于优化器为online模式,这个值应该在(0.5,1.0]之间,已保证渐进收敛 |
learning_offset | 学习偏移量 | 必填 | Int | 1024 | optimizer=online且>0 | 仅适用于优化器online。(正)学习参数,降低早期迭代。 越大的值使早期迭代次数减少。 |
optimize_doc_concentration | 是否优化alpha | 必选 | Boolean | 是 | 单选:true false | 是否优化文档主题参数 |
checkpoint_interval | 检查点间隔 | 必填 | Int | 10 | >= 1或者=-1 | 设置检查点间隔(>= 1)或禁用检查点(-1)的参数。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
文档主题生成模型的属性界面如图所示
文档主题生成模型聚类属性界面
(3)算子的运行
文档主题生成模型为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个文档主题生成模型,右击算子,点击运行,得到文档主题生成模型的模型。
运行文档主题生成模型聚类算子获得模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
文档主题生成模型聚类的模型算子流
右击模型,查看模型信息
文档主题生成模型聚类的模型信息
模型的运行结果如图所示
文档主题生成模型聚类的模型运行结果
模型的评估结果如图所示
文档主题生成模型聚类的模型评估结果
12.8 DBSCAN聚类
1.算子介绍
DBSCAN (Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。该算法利用基于密度的聚类的概念,即要求聚类空间中的一定区域内(用Eps定义出的半径)所包含对象(点或其他空间对象)的数目不小于某一给定阈值(用MinPts定义的聚类点数)。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
maxDistance | 邻域半径R(>0) | 必填 | Double | 10 | >0 | 邻域半径R |
minPoints | 密度邻域的最小实例数(>0) | 必填 | Int | 10 | >0 | 密度邻域的最小实例数 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
show_pie_chart | 是否显示聚类大小饼状图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类大小饼状图 |
show_distribution_mpa | 是否显示聚类分布图 | 必填 | Boolean | 是 | 单选:是,否 | 是否显示聚类分布图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
DBSCAN算子属性界面如图所示
DBSCAN属性界面
(3)算子的运行
DBSCAN为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个DBSCAN算子,右击算子,点击运行,得到DBSCAN模型。
运行DBSCAN算子获得DBSCAN模型
得到模型后右击模型,可以查看模型信息。模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的聚类结果进行评估。
DBSCAN模型算子流
右击模型,查看模型的模型信息
DBSCAN模型信息
模型的运行结果如图所示
DBSCAN模型运行结果
模型的评估结果如图所示
DBSCAN模型模型评估结果
13.8 谱聚类
1.算子介绍
谱聚类是从图论中演化出来的算法,它将聚类问题转换成一个无向加权图的多路划分问题。主要思想是把所有数据点看做是一个无向加权图 G = ( V,E ) 的顶点 V ,E 表示两点间的权重,数据点之间的相似度越高权重值越大。然后根据划分准则对所有数据点组成的图进行切图,使切图后不同的子图间的边权重和尽可能低,而子图内的边权重和尽可能高,从而实现聚类的效果。
2.算子类型
机器学习/聚类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
Input_list | 需要计算的列 | 必填 | Array | 无 | 列名 | 需要参与计算的列名 |
Sigma | Sigma系数 | 必填 | Double | 0.05 | >0 | 相似度矩阵计算系数 |
K | 聚类个数 | 必填 | Int | 2 | >1 | 聚类的类别数 |
max_iter | 最大迭代次数 | 必填 | Int | 3 | >0 | 最大迭代次数 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
谱聚类算子属性界面如图所示
DBSCAN属性界面
(3)算子的运行
谱聚类算子对输入数据计算相似度,然后聚类,输出聚类类别
谱聚类算子执行流程
执行算子流得到结果
谱聚类算子流执行结果
为了非商业用途的科研学者、研究人员及开发者提供学习、交流及实践机器学习技术,推出了一款轻量化且完全免费的Sentosa_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用
Sentosa_DSML社区版
Sentosa_DSML算子流开发视频