大向量的层次聚类

时间:2018-07-18 09:08:36

标签: matlab bigdata cluster-analysis hierarchical-clustering

我正在MATLAB中工作,我有一个400万个值的向量。我尝试使用DateTimeFormatter函数,但出现此错误:

  

使用链接时出错(第240行)请求的1x12072863584470(40017.6GB)阵列超出了最大阵列大小首选项。创建大于此限制的数组可能需要很长时间,并且会导致MATLAB变得无响应。有关更多信息,请参见数组大小限制或首选项面板。

我发现有些人使用timeZone函数避免了该错误,但是我想知道是否有办法避免这种错误,并且仍然使用linkage函数。

2 个答案:

答案 0 :(得分:0)

大多数分层群集需要 O(n²)内存。所以,不,您不想使用这些算法。

有一些例外,例如SLINK和CLINK。这些可以仅通过线性存储器来实现。我只是不知道Matlab是否有任何好的实现。

或者您使用kmeans或DBSCAN,它们也仅需要线性内存。

答案 1 :(得分:-2)

您是否完全确定这些4 million valuesstatistically correct?如果是,那么您是个幸运的人;如果不是,那么请做data pre-processing。您会看到这400万个值已大大减少为有意义的样本,可以轻松地将其放入内存(RAM)中进行分层聚类。