Java 簇的质心-KMedoids

Java 簇的质心-KMedoids,java,machine-learning,k-means,Java,Machine Learning,K Means,我正在使用以下JavaML库,具体地说,我正在使用KMedoids()类来集群对象 我可以对数据进行聚类,但我想在每个聚类中提取质心对象,我该如何做到这一点?关键是你需要在任何聚类中找到中值。你可以通过排序找到中间值,然后取中点,需要O(n lg n)时间。如果需要在每次插入对象时找到中间值,则需要执行以下操作:保持两个堆,对于小于中间值的所有对象,保持maxheap,对于大于中间值的所有对象,保持minheap。对象插入时间为O(lg n).计算每个簇的平均值,并查找距离该平均值最近的点。KM

我正在使用以下JavaML库,具体地说,我正在使用KMedoids()类来集群对象


我可以对数据进行聚类,但我想在每个聚类中提取质心对象,我该如何做到这一点?

关键是你需要在任何聚类中找到中值。你可以通过排序找到中间值,然后取中点,需要O(n lg n)时间。如果需要在每次插入对象时找到中间值,则需要执行以下操作:保持两个堆,对于小于中间值的所有对象,保持maxheap,对于大于中间值的所有对象,保持minheap。对象插入时间为O(lg n).

计算每个簇的平均值,并查找距离该平均值最近的点。KMedoids的整个点是质心是一个对象。因此,必须遍历所有对象才能找到质心并找到最近的质心是很糟糕的,但如果这是唯一的选择,我想这就是我必须要做的。