了解 K 均值聚类中的一些术语

Understanding some terms in K-means clustering

我需要编写一个程序,为给定的数据集实现 kmeans 聚类(我大致了解 kmeans 算法的工作原理)。由于我希望我的程序是通用的,所以我想了解以下术语:

对于具有 100 行和 10 列的给定数据集(假设每列是一个特征),我如何识别以下参数:

  1. 维度:如何知道这个数据集的维度?
  2. 数据点:是说每个单元格[row][col]是一个数据点还是整行是一个数据点(点的向量)?

您必须从计算几何的角度来看您的数据集,其中数据集的每个元素都是 D 维中的一个点 space。

你的数据集看起来像这样,我猜:

row0.col0 row0.col1 ... row0.col9
...
row99.col0 row99.col1 ... row99.col9

的角度来看,我会将此数据集解释为 10 个维度的 100 个点。


Dimension

是列数,所以是10。从数学的角度来看,每一列都是一个坐标! ;)

Data point

是一个数据点!每一个cell就是这个点的一个坐标!


例如,检查我的 ,您会看到我在 64 个维度(这是您的情况下的列)中创建了 10000000 个点(这是您的情况下的行)。

视情况而定。

但大多数语言和文件格式(例如 CSV)每条记录使用一个 ,每个维度使用一个 。这种电子表格视图很常见。

例如在 Java 中,大多数人会将 double[100][10] 矩阵解读为 100 条记录,每条记录 10 个维度。

有些语言是不同的。 Matlab 和 Julia 是列优先的 IIRC,所以 (100,10) 的形状是 100 维,10 行。