我是python编码的新手。 我有一个关于在python中使用遗传算法进行聚类的问题。
我想不仅基于距离而且基于群集的其他索引来对站进行聚类。我想最大化所有集群的总指数 我有900个自行车站的GPS坐标数据。
我已经创建了[所有电台] x [所有电台]的距离矩阵。单位是[km]。
如果我想在50个集群中进行集群,那么代码应该生成50个不同的集群圈。圈子 n 内的工作站,将在群集 n 中标记 子>。示例如下图所示
生成圈子有一些限制,
在我们成功生成随机不重叠的50个群集圈之后,我想找到可以最大化我自己的索引的圈子的最佳组合。
gene
:{ x1, y1, r1, x2, y2, r2, x3, y3, r3, ... x50, y50, r50 }
[ xn, yn ]
是圆圈的中心, rn
是圆的半径。
群集的中心应该是一个站而不是地图中的一个点。这意味着每个50个聚类中心点应该是一个站点。
rn
在边界内随机生成。
例如,如果我想制作群集1km < rn < 4km
,则可以在100 [m]的间隔内随机生成 r
。
因此, r
可以获得{ 1.1km, 1.2km, ... 3.9km, 4km }
分工点将是:
{ x1, y1, r1,/ x2, y2, r2,/ x3, y3, r3,/ ... / x50, y50, r50 }
Fitness函数是我自己提到的集群索引。
我已经有了一个计算索引的代码。如果站点由簇号标记,那么我可以使用预先构建的代码进行计算。
标签表格应该像下面的csv文件:
很抱歉很长的解释,谢谢!!!!