3

我有一个 0、1、2 的 161X911 数据矩阵,然后整个矩阵中有一些 NaN。我尝试在数据上运行内置函数 kmeans,每当我的 K(簇数)值大于 5 时,它都会返回这个

Warning: Ignoring rows of X with missing data. 
> In kmeans at 128
??? Error using ==> kmeans at 284
X must have more rows than the number of clusters.

有没有解决的办法?我猜只有 5 行没有任何 NaN。

4

2 回答 2

7

这个问题的核心超出了关于NaNs 的简单编程问题。这是一个关于在存在缺失数据的情况下进行聚类的更基本的问题。

以下是一些链接,显示了在这些情况下的操作示例。哪种方法最好取决于您的具体情况。

  1. 论文几乎准确地显示了您想要做什么。
  2. Google 代码上的代码项目
  3. IEEE 期刊上的另一篇论文
于 2012-04-29T01:14:44.810 回答
1

如果你想使用 K-Means,你将不得不把数字放在那些不是数字的地方。一种方法是,对于每一列,取非 NaN 值的平均值,并用该值替换该列中的 NaN。

于 2012-04-29T00:40:41.753 回答