【发布时间】:2016-02-09 11:09:47
【问题描述】:
我有一个 1750×1750 矩阵,Y。我想使用 k-means 将其聚类为 50 个聚类。我的代码是:
[idx,C] = kmeans(Y,50)
但是,我不断收到错误消息:
使用 kmeans 时出错(第 243 行)
X 的行数必须多于簇数。
为什么?怎么回事?
我减小了矩阵的大小,通过反复试验,我发现直到矩阵大小为 317×317 时才会出现错误。除此之外,从 318×318 及以上,它开始抛出错误。
【问题讨论】:
-
对于
kmeans,行数决定样本数,列数表示每个点的特征数。Y究竟代表什么? -
@rayryeng 你好。
Y是我通过一些不相关的计算得出的矩阵。它包含 1750 张图像之间的相似性。现在我想根据它们的相似性值(来自矩阵Y)将它们聚类成 50 个簇。 -
你检查过第318行第318列的值了吗?如果由于某种原因一列全部为
NaN,您将得到这个错误(以及警告:“警告:忽略缺少数据的X行。”),例如,A=rand(10);A(:,5)=NaN;kmeans(A,3)。 -
@horchler 啊,你一针见血。我应该想到检查这一点。确实如此。