u=10=u k-中心点

Running k-medoids algorithm in ELKI

我正在尝试 运行 ELKI 以 arff 文件的形式(使用 ELKI 中的 ARFFParser)在数据集上实现 k-medoids(对于 k=3):

数据集是7维的,但是我得到的聚类结果只显示了一个维度的聚类,并且只对3个属性进行了聚类,忽略了其余的。像这样:

谁能帮助我如何获得所有维度的聚类可视化?

ELKI 主要用于 数值 数据。

目前,ELKI 没有 "mixed" 数据类型,很遗憾。

ARFF 解析器会将您的数据集拆分为多个关系:

  1. 包含age
  2. 的一维数值关系
  3. 一个 LabelList 关系存储 sexregion
  4. 包含salary
  5. 的一维数值关系
  6. 一个标签列表关系存储married
  7. 一维数值关系存储children
  8. 一个标签列表关系存储car

不过,显然它弄乱了关系标签。但除此之外,这种方法非常适用于由数字数据 + class 标签组成的 arff 数据集,例如 - 这个解析器是为用例编写的。这是一种定义明确且一致的行为,尽管不是您期望的那样。

算法然后 运行 它可以处理的第一个关系,即仅 age

所以这是您需要做的:

  1. 实现一种高效的数据类型来存储混合类型数据。
  2. 修改 ARFF 解析器以生成混合类型数据的单一关系。
  3. 为此类型实现一个距离函数,因为缺少混合类型数据表示意味着我们也没有距离。
  4. 在 k-Medoids 中选择这个新的距离函数。
  5. 把代码分享出来,其他人就不用重复了。 ;-)

或者,您可以编写一个脚本将您的数据编码为数字数据集,这样就可以正常工作了。但是在我看来,one-hot-encoding等的结果通常都不是很有说服力。