基于无监督学习算法的滑坡易发性评价的实施(k聚类、谱聚类、Hier聚类)

2024-05-10 03:04

本文主要是介绍基于无监督学习算法的滑坡易发性评价的实施(k聚类、谱聚类、Hier聚类),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于无监督学习算法的滑坡易发性评价的实施

  • 1. k均值聚类
  • 2. 谱聚类
  • 3. Hier聚类
  • 4. 基于上述聚类方法的易发性实施

本研究中的数据集和代码可从以下链接下载:

  1. 数据集
  2. 实施代码

1. k均值聚类

K-Means 聚类是一种矢量量化方法,最初来自信号处理,旨在将 N 个观测值划分为 K 个聚类,其中每个观测值都属于具有最接近均值的聚类(聚类中心或聚类质心),作为聚类的原型。这导致将数据空间划分为 Voronoi 单元。k-means 聚类最小化了聚类内方差(欧几里得距离的平方),但不能最小化正则欧几里得距离,这将是更困难的韦伯问题:均值优化平方误差,而只有几何中位数最小化欧几里得距离。例如,使用 k 中位数和 k-中位数可以找到更好的欧几里得解。
在这里插入图片描述

2. 谱聚类

在多元统计中,谱聚类技术利用数据相似性矩阵的谱(特征值)在聚类到较少的维度之前执行降维。相似性矩阵作为输入提供,包括对数据集中每对点的相对相似度的定量评估。

在图像分割的应用中,光谱聚类被称为基于分割的对象分类。

聚类前
在这里插入图片描述
聚类后
在这里插入图片描述

3. Hier聚类

在数据挖掘和统计中,分层聚类(也称为分层聚类分析或 HCA)是一种聚类分析方法,旨在构建聚类层次结构。分层聚类的策略通常分为两类:

聚集:这是一种“自下而上”的方法:每个观测点从其自己的聚类开始,随着聚类的向上移动,成对的聚类会合并。
除法:这是一种“自上而下”的方法:所有观察值都从一个聚类开始,当一个聚类向下移动时,以递归方式执行拆分。
一般来说,合并和拆分是以贪婪的方式确定的。分层聚类[1]的结果通常以树状图的形式呈现。

分层聚类具有明显的优势,即可以使用任何有效的距离度量。事实上,观测本身并不是必需的:所使用的只是一个距离矩阵。另一方面,除了单联动距离的特殊情况外,其他算法可以保证找到最佳解决方案。

聚类前
在这里插入图片描述
聚类后
在这里插入图片描述

4. 基于上述聚类方法的易发性实施

数据集见链接:埕岛海域数据集

  1. 通过gis数据处理得到同一投影坐标系下的海底滑坡相关的因子
在这里插入代码片

因子——水深、坡度、坡向、沉积物类型、波致剪应力
在这里插入图片描述
2. 对数据进行重分类,采用Arcgis空间分析中的重分类工具

#数据探索
import rasterio
rs1=rasterio.open(r'Sea_mct_560_evaluate\Reclass_560\Rebathy.tif')
result1=rs1.read(masked=True)
rs2=rasterio.open(r'Sea_mct_560_evaluate\Reclass_560\Reslope.tif')
result2=rs2.read(masked=True)
rs3=rasterio.open(r'Sea_mct_560_evaluate\Reclass_560\Reaspect.tif')
result3=rs3.read(masked=True)
rs4=rasterio.open(r'Sea_mct_560_evaluate\Reclass_560\Resediment.tif')
result4=rs4.read(masked=True)
rs5=rasterio.open(r'Sea_mct_560_evaluate\Reclass_560\Reshear.tif')
result5=rs5.read(masked=True)
import matplotlib.pyplot as plt
from rasterio.plot import show
from matplotlib import colors,cm
fig,ax=plt

这篇关于基于无监督学习算法的滑坡易发性评价的实施(k聚类、谱聚类、Hier聚类)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975252

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert