我使用Mclust包中的Mclust函数将大约27000个条目的向量分为两个集群:
Mclust(data_vector, G=2)
另一个使用opencv进行EM聚类的软件比Mclust快大约3倍(即使我将Mclust中的最大迭代次数减少到例如4)。在mclust源代码中,该函数似乎是在fortran中实现的。
它怎么会比opencv的实现慢呢?
尝试使用完全相同的同时运行
- 初始条件
- 模型(有/无协方差等)
我认为Mclust
进行了一次相当昂贵的初始化。如果openCV以一个随机样本作为初始化开始,难怪它会更快。
因此,对于一个启动器,给出两个完全相同的向量。