跳到主要内容

凝聚层次聚类(AgglomerativeClustering)

组件名称凝聚层次聚类(AgglomerativeClustering)
工具集机器学习/聚类/凝聚层次聚类(AgglomerativeClustering)
组件作者雪浪云-燕青
文档版本1.0
功能凝聚层次聚类(AgglomerativeClustering)算法
镜像名称ml_components:3
开发语言Python

组件原理

平面聚类是高效且概念上简单的,但它有许多缺点。 算法返回平坦的非结构化簇集合,需要预先指定的簇数目作为输入并且这个数目是不确定的。 分层聚类(或分层聚类)输出层次结构,这种结构比平面聚类返回的非结构化聚类集更具信息性。 分层聚类不需要我们预先指定聚类的数量,并且在IR(Information Retrieval)中使用的大多数分层算法是确定性的。 分层聚类的这些优点以降低效率为代价。 与K-means和EM的线性复杂度相比,最常见的层次聚类算法具有至少二次的文档数量的复杂性。

平面和层次聚类在信息检索中的应用差异很小。 特别是,分层聚类适用于该文章中Table1中所示的任何应用程序。 实际上,我们为collection clustering提供的示例是分层的。 一般来说,当考虑聚类效率时,我们选择平面聚类,当平面聚类的潜在问题(不够结构化,预定数量的聚类,非确定性)成为关注点时,我们选择层次聚类。 此外,许多研究人员认为,层次聚类比平面聚类产生更好的聚类。

分层聚类算法可以是自上而下的,也可以是自下而上的。 自下而上算法在开始时将每个文档视为单个簇,然后连续地合并(或聚合)簇对,直到所有簇已合并到包含所有文档的单个簇中。 因此,自下而上的层次聚类称为凝聚分层聚类或HAC。在介绍HAC中使用的特定相似性度量之前,我们首先介绍一种以图形方式描述层次聚类的方法,讨论HAC的一些关键属性,并提出一种计算HAC的简单算法。

HAC聚类通常可视化为树状图(Dendrogram), 每个合并由水平线表示。 水平线的y坐标是合并的两个聚类的相似度(cosine similarity: 1为完全相似,0为完全不一样),其中文档被视为单个聚类。 我们将这种相似性称为合并簇的组合相似性(combination similarity)。

组件

  • 组件图

输入桩

支持单个csv文件输入。

输入端子1

  • 端口名称:训练数据
  • 输入类型:Csv文件
  • 功能描述: 输入用于训练的数据

输出桩

支持sklearn模型输出。

输出端子1

  • 端口名称:输出模型
  • 输出类型:sklearn模型
  • 功能描述: 输出训练好的模型用于预测

输出端子2

  • 端口名称:输出数据
  • 输出类型:Csv文件
  • 功能描述: 聚类后的数据

参数配置

类别数目

  • 功能描述:需要找到的类别的数目
  • 必选参数:是
  • 默认值:2

链接度量

  • 功能描述:用于计算链接的度量
  • 必选参数:是
  • 默认值:euclidean

计算完整的树

  • 功能描述:在n_clusters时提前停止树的构建
  • 必选参数:否
  • 默认值:(无)

链接标准

  • 功能描述:链接标准
  • 必选参数:是
  • 默认值:ward

距离阈值

  • 功能描述:链接距离阈值
  • 必选参数:是
  • 默认值:(无)

需要训练

  • 功能描述:该模型是否需要训练,默认为需要训练。
  • 必选参数:是
  • 默认值:true

特征字段

  • 功能描述:特征字段
  • 必选参数:是
  • 默认值:(无)

类别字段

  • 功能描述:类别字段
  • 必选参数:是
  • 默认值:(无)

使用方法

  • 将组件拖入到项目中
  • 与前一个组件输出的端口连接(必须是csv类型)
  • 点击运行该节点

测试用例

模板

右面板配置

  • 参数设置:

  • 字段设置:

输入的数据:

输出的结果:

  • 输出模型:

  • 输出数据: