MOA CluStream:在计算出 k 均值后,我们应该 "name" 不位于任何宏集群内的微集群是什么?
MOA CluStream: What should we "name" the micro clusters that do not lie inside any of the macro clusters after k means is computed?
我目前正在学习CluStream,我对结果有些怀疑。我将继续解释:
如果微簇聚类使用K均值,我们都知道每个微簇将属于最近的宏簇(计算中心之间的欧氏距离)。
现在,查看以下示例结果:
我们可以看到宏集群并没有将所有微集群分组......
这是什么意思?我们应该如何考虑不位于某个宏集群内的微集群?我是否应该找到每一个最接近宏集群的微集群来标记它们?
编辑:
查看MOA源代码on Github,我发现宏簇半径是计算出来的将偏差 AVG 乘以所谓的“半径因子”(该值固定为 1.8)。 然而,当我向宏集群询问它们的权重时, 如果使用了很大的时间 window 并且没有衰落的组件,我可以看到宏集群恢复了所有点的信息... 考虑了当前所有的微集群!因此,即使我们看到一些微星团远离宏星团球体,我们也知道它们属于最近的星团——毕竟是 K 均值!
所以,我还有一个疑问:为什么要这样计算宏簇半径?我的意思是,它代表什么? 算法不应该 return 标记微簇吗?
欢迎任何反馈。 TIA!
关键问题是:用户需要什么?
打上微集群的标签还行,但用户有什么用呢?
在大多数情况下,人们使用 k-means 结果的所有内容都是聚类中心。因为 k-means 的整个 objective 本质上是 "find the best k-point approximation to the data".
那么很可能CluStream的用户要使用的所有信息都是当前的k个聚类中心。也许每个人的体重,以及他们的年龄。
我目前正在学习CluStream,我对结果有些怀疑。我将继续解释:
如果微簇聚类使用K均值,我们都知道每个微簇将属于最近的宏簇(计算中心之间的欧氏距离)。
现在,查看以下示例结果:
我们可以看到宏集群并没有将所有微集群分组......
这是什么意思?我们应该如何考虑不位于某个宏集群内的微集群?我是否应该找到每一个最接近宏集群的微集群来标记它们?
编辑:
查看MOA源代码on Github,我发现宏簇半径是计算出来的将偏差 AVG 乘以所谓的“半径因子”(该值固定为 1.8)。 然而,当我向宏集群询问它们的权重时, 如果使用了很大的时间 window 并且没有衰落的组件,我可以看到宏集群恢复了所有点的信息... 考虑了当前所有的微集群!因此,即使我们看到一些微星团远离宏星团球体,我们也知道它们属于最近的星团——毕竟是 K 均值!
所以,我还有一个疑问:为什么要这样计算宏簇半径?我的意思是,它代表什么? 算法不应该 return 标记微簇吗?
欢迎任何反馈。 TIA!
关键问题是:用户需要什么?
打上微集群的标签还行,但用户有什么用呢?
在大多数情况下,人们使用 k-means 结果的所有内容都是聚类中心。因为 k-means 的整个 objective 本质上是 "find the best k-point approximation to the data".
那么很可能CluStream的用户要使用的所有信息都是当前的k个聚类中心。也许每个人的体重,以及他们的年龄。