【GIS人必学】多维度KMeans聚类分析算法在GIS数据中的实现及分类应用,以矢量面层数据为例~

 前面一篇文章给大家详细介绍了KMeans聚类分析算法的原理及代码实现逻辑。

 文章链接为:【GIS人必学】GIS+K-Means聚类分析算法实现对数据集的最优分类-CSDN博客

         由于文章中进行聚类分析的例子仅是对离散的矢量点数据基于空间距离进行了聚类分析,而实际的数据结构可能不单纯是基于空间位置或点数据进行聚类分析,比如基于一些线数据或面数据,此外这些数据还会具有多维的属性结构,比如人口密度、区域面积、平均降雨量、人均GDP等属性信息。

        针对这个带有多种属性的面状数据,现在我们有一个需求,对这个面状数据进行聚类分析,假定要基于【人均GDP、人口密度、平均降雨量、区域面积】这四个属性分为五类。可能很多初学者看到这里就会有点懵逼了,在学习KMeans聚类分析的时候,大部分案例和算法都是基于空间距离进行讲解的,而空间距离意味着我们是基于X和Y坐标进行计算(假定我们这里的数据是基于二维的空间数据结构),比如每个点的空间位置属性为(X,Y),那么我们在进行聚类分析的时候会不断迭代计算所有点之间的几何距离,根据欧式距离,两点距离如下:

                            

                                       d=\sqrt{(x1-x2)^{2}+(y1-y2)^{2}}

       其中X、Y分别代表空间某点的横纵坐标,转换为GIS数据坐标可能代表着投影坐标,也可能是经纬度坐标。但是我们的数据结构是面状数据的四个属性进行聚类分析,这时候该怎么用算法来做分析呢?

      其实,你只要清楚了空间距离上的聚类分析逻辑,哪怕我们的数据结构非常复杂,需要进行分析的维度非常多,所谓换汤不换药,这时候,我们只需要把每个数据的数据结构由(X,Y)变为(属性1,属性2,属性3,属性四,......)即可。基于我们的现实需求,这时候每个面的数据结构变为(人均GDP,人口密度,平均降雨量,区域面积),虽然结构复杂了,但是计算方法还是一样,使用欧式距离即可,只不过此时的欧式距离D如下:

\sqrt{(GDP1-GDP2)^{2}+(PeoMD1-PeoMD2)^{2}+(RainV1-RainV2)^{2}+(MJ1-MJ2)^{2}}

        我们仍旧把上述公式计算的结果等同于一个距离,然后就可以带入到KMeans算法中进行聚类了。经过聚类后,得到的属性表中增加了一个分类字段见下图:

然后我们在ArcGIS中对该字段进行分类渲染,得到下面的图:

接下来,我们就可以进一步制作GIS专题图了。接下来,通过视频给大家详细展示下我J基于ArcGIS Engine及ArcGIS Python技术开发的多维聚类分析工具~

【GIS人必备】最强KMeans聚类分析工具-数据挖掘、科研分析必备!

  • 20
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值