【问题标题】:Running kmeans function on matrix with NaN?用NaN在矩阵上运行kmeans函数?
【发布时间】:2012-05-09 06:28:05
【问题描述】:

我有一个 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。

【问题讨论】:

    标签: matlab nan k-means


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      1. Paper showing nearly exactly what you want to do.
      2. Code projects on Google code
      3. Another paper in an IEEE Journal

      【讨论】:

      • 我刚注意到第三个链接坏了。固定。
      猜你喜欢
      • 2014-07-01
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多