背景信息:我想创建一个交互式热图,其中的区域由邮政编码分隔。我发现无法直接显示它(即使用谷歌地图或OSM),所以我想创建分隔这些区域的曲线或线条,并在地图中将其可视化。
我有一组积分,由坐标和相应的等级(邮政编码)表示。我想得到一条将它们分开的曲线。问题是这些点不是线性可分的。
我尝试使用softmax回归,但这对非线性可分离类不起作用。我所知道的唯一能够非线性分离的方法是最近邻和神经网络。但是这样的分类器只能分类,它们不会告诉我类之间的边界 有办法以某种方式获得边界吗?
答案 0 :(得分:3)
如果每个邮政编码中有一个密集的已知点云,坐标为[纬度]。经度,邮政编码],使用机器学习找到包围这些点的边界听起来有点矫枉过正。
你可以通过使用计算几何来获得边界的良好近似,例如使用Matlab convhull函数找到每个Zip代码点集的2D凸包
K = convhull(X,Y)
结果K是包含输入X,Y矢量点的点矢量,可用于绘制多边形。
唯一的复杂因素是要使用的坐标系,你可能需要在(lat,lon)和map(x,y)坐标之间做一些工作。如果您没有Matlab Mapping Toolbox,您可以查看第三方库M_Map M_Map home page,它提供了一些相同的功能。
编辑:如果Zip代码的点云具有非凸的边界区域,则可能需要更通用的计算几何技术来找到对边界区域的更好近似。正如评论中所建议的那样,对该地区进行Voronoi测试就是这样一种可能性。