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

ops/2024/11/15 0:52:55/

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

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

  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

http://www.ppmy.cn/ops/40738.html

相关文章

SpringCloud 集成 RocketMQ 及配置解析

文章目录 前言一、SpringCloud 集成 RocketMQ1. pom 依赖2. yml 配置3. 操作实体4. 生产消息4.1. 自动发送消息4.2. 手动发送消息 5. 消费消息 二、配置解析1. spring.cloud.stream.function.definition 前言 定义 Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力…

TCP及IP协议

TCP协议的传输是可靠的,而UDP协议的传输“尽力而为” TCP传输可靠性———确认,重传,排序,流控。 流控:滑动窗口机制 TTL--- 数据包每经过一个路由器的转发,他的TTL值将减1,当一个数据包中的T…

Android 右键 new AIDL 无法选择

提示 (AIDL File)Requires setting the buildFeatures.aidl to true in the build file) 解决方式: 在app的build.gradl中 adnroid{} 添加: buildFeatures{aidl true}

学习c#第26天 面向对象基础之类与对象

1.类 1.什么是类? 俗话说,“物以类聚,人以群分”。意思是同类的东西经常聚在一起,志同道合 的人相聚成群。前者说物,后者说人。这里以物来进行举例说明[见图]: 水果超市,所有同类的水果摆放在一起&#xf…

Django项目运行报错:ModuleNotFoundError: No module named ‘MySQLdb‘

解决方法: 在__init__.py文件下,新增下面这段代码 import pymysql pymysql.install_as_MySQLdb() 注意:确保你的 python 有下载 pymysql 库,没有的话可以使用 pip install pymysql安装 原理:用pymysql来代替mysqlL…

题目----力扣--移除链表元素

题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&…

pgbackrest 备份工具使用 postgresql

为啥我会使用pgbackrest进行备份?因为postgresql没有自带的差异备份工具。。。而我们在生产环境上,一般都需要用到差异备份或者增量备份。我们的备份策略基本是,1天1次完整备份,1个小时1次差异备份。如果只需要完整备份&#xff0…

【C++】异常

文章目录 1. C 语言传统的处理错误的方式2. C 异常概念3. 异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 4. 自定义异常体系5. C 标准库的异常体系6. 异常的优缺点 1. C 语言传统的处理错误的方式 传统的错误处理机制: 终止程序&…