Java 地理位置聚类

Java 地理位置聚类,java,algorithm,machine-learning,cluster-analysis,mahout,Java,Algorithm,Machine Learning,Cluster Analysis,Mahout,问题: 需要识别IMEI编号的主位置(用户的主位置) 我有一套lat和long,imei和它被记录的时间 注: 所以我计划的是,使用聚类算法 如果我们对lat和long位置进行聚类,意味着我们可以得到一组聚类。在其中我将集中两个聚类。白天记录了大部分latlong的聚类和夜间记录了大部分latlong点的聚类。然后如果在夜间记录了大部分latlong的聚类,将被视为母国所在地 我所期望的是哪种聚类算法最适合这个聚类工作,以及如何在java中使用算法 任何人都可以对此提出建议……?关于动物的这一想

问题: 需要识别IMEI编号的主位置(用户的主位置)

我有一套lat和long,imei和它被记录的时间

注:

所以我计划的是,使用聚类算法

如果我们对lat和long位置进行聚类,意味着我们可以得到一组聚类。在其中我将集中两个聚类。白天记录了大部分latlong的聚类和夜间记录了大部分latlong点的聚类。然后如果在夜间记录了大部分latlong的聚类,将被视为母国所在地

我所期望的是哪种聚类算法最适合这个聚类工作,以及如何在java中使用算法


任何人都可以对此提出建议……?

关于动物的这一想法,似乎有很多工作要做——请参阅,其中列出了各种地理集群的衡量标准。另见

您的聚类方法在很大程度上取决于数据的外观-您可以在X-Y图或地图上绘制与给定用户关联的位置,以查看预期的聚类类型-事实上,可以为多个用户这样做

我的猜测是,对于大多数用户来说,有一个紧密的集群,那就是他们的家,还有一个非常分散的云,在工作和度假时远离家。在这种情况下,我希望找到一个点,使得到这个点的X%最小距离之和尽可能小,其中X可能是80-90。您可以通过修改通常的k-means代码来实现这一点,在此代码中,您可以在为选定的X%观测值寻找最佳拟合点和选择最接近您刚才选择的点的X%观测值之间反复交替进行

K-means需要一个合适的起点——事实上,尝试几个。理想情况下,您需要一个不受外部云中任何点污染的起点。若你们通过将数据分成11个部分并取每个部分的空间中值来生成一个起始点,那个么这就给出了11个起始点,若云中只有10个污染点,那个么这些起始点中至少有一个是从完全未污染的点集合中派生出来的


我希望找到一些拥有两个或两个以上紧密集群(而不是一个)以及外部云的用户。这些用户中的一些人会觉得泄露二级集群是严重侵犯隐私的行为。

集群算法:1。将(纬度、经度)转换为标准化(x、y、z),2。平均所有(x,y,z),3。转换回(纬度,经度)我做了一个类似的事情,我使用了DBSCAN(哈弗森距离)。当你找到一组好的参数时,它是相当可靠的(稍后我用GA算法对它们进行了调整)。
1.Recorded IMEI locations are not periodic.
2.Recorded IMEI locations doesn't has any pattern
3.Lat long locations are may not be recorded on every day.