我刚刚完成了一个包含 2 个变量(X 和 Y)的简单练习,以了解 K-Means 聚类的工作原理。结果看起来像这样,

我的问题是,如果我有另一列 Z,应该如何绘制散点图以包含新变量 Z?是否需要 3 维散点图?
以及如何计算 X、Y 和 Z 坐标之间的欧几里得距离?
澄清一下,我不是在寻找像 R 或 Weka 这样的软件来解决问题,而是更多地了解细节和计算的工作原理。
我刚刚完成了一个包含 2 个变量(X 和 Y)的简单练习,以了解 K-Means 聚类的工作原理。结果看起来像这样,

我的问题是,如果我有另一列 Z,应该如何绘制散点图以包含新变量 Z?是否需要 3 维散点图?
以及如何计算 X、Y 和 Z 坐标之间的欧几里得距离?
澄清一下,我不是在寻找像 R 或 Weka 这样的软件来解决问题,而是更多地了解细节和计算的工作原理。
你在这里谈论两个不同的问题
第二个比第一个更容易回答。
当您有 X、Y 和 Z 时,要计算欧几里得距离,您只需将平方和平方根相加即可。这适用于任意数量的维度
第一部分,可视化,要困难得多,但也没有正确的答案——它只是一个工具,用于检查它是否在做你认为的事情,并了解正在发生的事情。如果 N 变得非常大,则没有简单的方法可以做到这一点。
对于三个维度,有几种常见的方法,各有优缺点:
对于更高的维度,您必须求助于更近似的技术:
特定于 K-Means,并且在 K 较低(例如 2)时特别有用,您可以在一对簇之间的投影上绘制距离上的点的密度。
例如,假设我们回到 2D 并有一个像这样的散点图:

两个大斑点是 KMeans 中心,我添加了穿过这两个点的线。如果将每个点垂直投影到该线上,则可以查看每个中心周围的点分布,如下所示:

我在哪里用粗线标记了手段的位置。无论您使用多少维,都可以绘制第二张图,这是一种查看集群分离程度的方法。
不要计算欧几里得距离。
K-means 最小化集群内方差,又名:WCSS。
http://en.wikipedia.org/wiki/K-means_clustering
那么你的问题应该很明显了。偏差平方和,所有维度的总和。
将 k-means 视为“最小化平方距离”是等效的,但具有误导性。问题是k-means 不能优化任意距离。平均值与任意距离不兼容,但它是最小二乘估计(在每个单一维度中)。
所以首先不要使用欧几里得距离;使用 Within-Cluster-Sum-of-Squares (这也会更快,因为您不计算平方根)
一般来说,Kmeans 算法可以适用于任何维度,只要确保您在计算距离时考虑到所有 N 个特征。您仍然可以使用欧几里得距离作为相似性度量,看看 n 维方程http://en.wikipedia.org/wiki/Euclidean_distance。
为了可视化结果,我建议使用主成分分析进行降维,最佳结果(准确性)来自在聚类后执行 PCA,因此您不会丢失任何信息,尽管您可以使用 PCA 将其预处理到较小的集合维度和聚类数据,该聚类将花费更少的时间来完成,因为它们在距离函数中处理的维度更少。此外,如果您计划对其进行预处理,则不会丢失太多信息,因为大部分信息都在第一个派生组件中。它们应该是 R 中的库以执行 PCA。https://stat.ethz.ch/R-manual/R-patched/library/stats/html/princomp.html