【GEE笔记】随机森林特征重要性计算并排序

随机森林是一种基于多个决策树的集成学习方法,可以用于分类和回归问题。在gee中可以使用ee.Classifier.smileRandomForest()函数来创建一个随机森林分类器,并用它来对影像进行分类。

随机森林分类器有一个重要的属性,就是可以计算每个特征(或者说波段)的重要性,即该特征对分类结果的贡献程度。特征重要性可以帮助我们选择最有效的特征,从而提高分类的准确性和效率。

在本文中,将使用gee平台上的哨兵二号影像(COPERNICUS/S2)作为数据源,对区域内的土地覆盖进行分类,并计算并排序每个波段的重要性。具体分类过程可见:
【GEE笔记】在线分类流程,标注样本点、分类和精度评价

代码如下:

var geometry = ee.Geometry.Polygon([[[121.81940156260009, 40.92383488850036],[121.81940156260009, 40.73887826797227],[121.99998933115478, 40.73887826797227],[121.99998933115478, 40.92383488850036]]], null, false)// 定义年份和波段列表
var year=2020
var bandlist=['B2','B3','B4','B8','B11','B12']// 定义时间范围
var start = ee.Date(year+'-4-1');
var finish = ee.Date(year+'-7-1');// 从gee平台上加载哨兵二号影像,并按照时间、空间和云量进行过滤
var dataset = ee.ImageCollection('COPERNICUS/S2').filterDate(start, finish).filterBounds(geometry).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))// 从影像集中选择需要的波段                  
dataset=dataset.select(bandlist);            
// 定义RGB波段和显示范围
var rgbVis = {min: 0.0,max: 3000,bands: ['B4', 'B3', 'B2'],
};// 将地图中心定位
Map.centerObject(geometry)
// 打印影像集的信息
print(dataset)// 对影像集进行中值合成,并裁剪到西城区范围
var image=dataset.median().clip(geometry)
// 在地图上显示合成影像
Map.addLayer(image,rgbVis)// 加载样本数据,包括淡水、海水、建盆、农田、芦苇、建筑、潭土和草地等八个类别
var sample=danshui.merge(haishui).merge(jianpeng).merge(nongtian).merge(luwie).merge(jianzhu)
.merge(tantu).merge(caodi)// 为样本数据添加一个随机数列,用于划分训练集和测试集
var withRandom = sample.randomColumn('random');
// 定义训练集和测试集的比例,大约70%的样本用于训练,30%的样本用于测试
var split = 0.7;  
var trainingPartition2 = withRandom.filter(ee.Filter.lt('random', split));
var testingPartition = withRandom.filter(ee.Filter.gte('random', split));// 从合成影像中提取训练集的像素值,包括波段值和类别标签
var trainingPartition=image.sampleRegions({collection: trainingPartition2,scale:10,properties: ['Map'],})
// 创建一个随机森林分类器,使用100棵树,并用训练集进行训练
var classifier = ee.Classifier.smileRandomForest(100).train({features: trainingPartition,classProperty:'Map',// inputProperties :['B4', 'B3', 'B2']
});
// 从分类器的explain()方法中获取特征重要性的字典
var dict = ee.Dictionary(classifier.explain().get('importance'));
// 打印特征重要性的字典
print('Explain:',dict);
// 将特征重要性的字典转换为数组,并按照重要性的值进行排序
var tttt=ee.Dictionary(classifier.explain().get('importance')).toArray().toList();
print('重要性排序:',ee.Dictionary(classifier.explain().get('importance')).keys().sort(tttt))// 使用ui.Chart.feature.byProperty()函数,将特征重要性的字典绘制成柱状图,并显示在控制台中
var variable_importance = ee.Feature(null, ee.Dictionary(dict2).get('importance'));
var chart =
ui.Chart.feature.byProperty(variable_importance)
.setChartType('ColumnChart')
.setOptions({
title: 'Random Forest Variable Importance',
legend: {position: 'none'},
hAxis: {title: 'Bands'},
vAxis: {title: 'Importance'}
});print(chart);

在这里插入图片描述

从输出结果可以看到,B8波段(近红外波段)的重要性最高,达到了410.5263331047649,说明该波段对土地覆盖分类的影响最大。

通过计算并排序特征重要性,可以对影像进行特征选择,即只保留最重要的波段,从而减少数据的维度,提高分类的速度和准确性。当然,特征选择的效果还需要通过分类精度评估来验证,这是下一步的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/212818.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是https加密协议?

前言: HTTPS(全称:Hypertext Transfer Protocol Secure) 是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版&…

MySQL导出ER图为图片或PDF

目录 1、Navicat 生成ER图 1、选择数据库,逆向数据库到模型 2、查看ER图 3、导出ER图 2、使用MySQL官方工具:MySQL Workbench 1、首先连接MySQL数据库 2、点击Database,选择Reverse Engineer 3、填写数据库信息,点Next …

算法复习——6种排序方法的简单回顾

算法复习——6种排序方法的简单回顾 常见排序方法:冒泡排序、选择排序、插入排序、堆排序、归并排序、快速排序的简单回顾 冒泡排序 重复“从序列右边开始比较相邻两个数字的大小,再根据结果交换两个数字的位置” 在冒泡排序中,第 1 轮需要比较 n - 1…

2024黑龙江省职业院校技能大赛信息安全管理与评估样题第二三阶段

2024黑龙江省职业院校技能大赛暨国赛选拔赛 "信息安全管理与评估"样题 *第二阶段竞赛项目试题* 本文件为信息安全管理与评估项目竞赛-第二阶段试题,第二阶段内容包括:网络安全事件响应、数字取证调查和应用程序安全。 极安云科专注技能竞赛…

火狐,要完了!

在过去几年中,关于Firefox 浏览器的衰落有过不少讨论。目前来说,很多公共的以及私营的大型网站都缺乏对Firefox的适当支持。但是Firefox也多次试图“自救”,甚至就在不久前,Mozilla 通过官博发文,表示 Firefox 在 2023…

Milvus 再上新!支持 Upsert、Kafka Connector、集成 Airbyte,助力高效数据流处理

Milvus 已支持 Upsert、 Kafka Connector、Airbyte! 在上周的文章中《登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?》,我们已经透露过 Milvus(Zilliz Cloud)为提高数据流处理效率, 先后支持了 Up…

ardupilot开发 --- git 篇

一些概念 工作区:就是你在电脑里能看到的目录;暂存区:stage区 或 index区。存放在 :工作区 / .git / index 文件中;版本库:本地仓库,存放在 :工作区 / .git 中 关于 HEAD 是所有本地…

超详细介绍Ubuntu系统安装CUDA和cuDNN【一站式服务!!!】

文章目录 简介1.安装显卡驱动查看显卡型号下载并安装NVIDIA驱动使用Ubuntu自带的软件和更新(Software&Updates)工具安装【博主使用的这种方式,推荐】自行下载使用命令行安装【自由度更高,大佬自行尝试】 2.下载并安装CUDA3.下…

Linux下Redis安装及配置

首先下载redis安装包:地址 这里我使用的是7.0版本的! 将文件上传至linux上,此处不再多叙述,不会操作的,建议使用ftp! 第一步:解压压缩包 tar -zxvf redis-7.0.14.tar.gz第二步:移…

前端-杂记

1 子域请求时候会默认带上父域下的Coolkie 2 document.cookie 设置cookie只能设置当前域和父域,且path只能是当前页或者/ 比如当前页面地址为 http://localhost:3000/about 我们设置 document.cookie "demo11"; 设置 document.cookie "demo22; …

jetbrains卡顿(Pycharm等全家桶)终极解决方案,肯定解决!非常肯定!

话越短,越有用,一共四种方案,肯定能解决!!!非常肯定!! 不管你是什么原因卡顿:有多行注释的代码文件滚动卡、新版本卡、各种滚动卡、字号大也卡、键入代码卡,各…

四十一、高可用

一、定义 TC(Tencent Cloud)的异地多机房容灾架构是指,在不同的地理位置上配置多个数据中心,以确保系统的高可用性和容灾能力。当某个数据中心发生故障或者不可用时,可以自动切换到其他数据中心来提供服务,…

ATFX汇市:11月非农就业报告来袭,美指提前高位回落

ATFX汇市:今日21:30,美国劳工部劳动统计局将公布美国11月非农就业报告,其中两项数据需重点关注。其一,11月季调后非农就业人口,前值为增加15万人,预期值增加17.5万人。由于10月份的非农数据出现爆冷&#x…

分布式系统中最基础的 CAP 理论及其应用

对于开发或设计分布式系统的架构师、工程师来说,CAP 是必须要掌握的基础理论,CAP 理论可以帮助架构师对系统设计中目标进行取舍,合理地规划系统拆分的维度。下面我们先讲讲分布式系统的特点。 分布式系统的特点 随着移动互联网的快速发展&a…

Python文件操作(txt + xls + json)

文章目录 简介1、使用with_open读取和保存:.txt .bin(二进制文本)1.1、with open语句详解1.1、项目实战 2、使用pandas读取和保存:.xls .xlsx2.1、pandas简介2.2、环境配置2.3、项目实战 3、 使用json.dump读取和保存&#xff1…

2023 金砖国家职业技能大赛网络安全省赛理论题样题(金砖国家未来技能挑战赛)

2023 金砖国家职业技能大赛网络安全省赛理论题样题(金砖国家未来技能挑战赛) 一、参加比赛的形式 团队参与,每队2名选手(设队长1名)。 二、项目项目阶段简介 项目由四个阶段组成,将按顺序完成。向参与者…

基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)

一、项目简介 本项目是一套基于SpringBootVue学生成绩管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确…

聊聊模糊测试,以及几种模糊测试工具的介绍!

以下为作者观点: 在当今的数字环境中,漏洞成为攻击者利用系统漏洞的通道,对网络安全构成重大威胁。这些漏洞可能存在于硬件、软件、协议实施或系统安全策略中,允许未经授权的访问并破坏系统的完整性。 根据 "常见漏洞与暴露…

【计算机网络】应用层电子邮件协议

一、电子邮件系统架构 电子邮件是一个典型的异步通信系统,发送方从UA,也就是邮件客户端,通过应用层SMTP协议,传输层tcp协议,发送给发送方的邮件服务器,比如使用的是163邮箱,163提供的SMTP服务器…

C //例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。

C程序设计 (第四版) 谭浩强 例10.3 例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法…