当前位置: 首页 > news >正文

中科星图(GVE)——使用随机森林方法进行土地分类

目录

简介

函数

gve.Classifier.smileRandomForest(numberOfTrees,variablesPerSplit,minLeafPopulation,bagFraction,maxNodes,seed)

代码

结果


简介

使用随机森林方法进行土地分类的步骤如下:

  1. 数据准备:收集所需的土地分类数据,并对数据进行预处理,包括缺失值处理、数据标准化等。

  2. 特征选择:根据土地特征的重要性选择合适的特征,可以使用特征选择算法如信息增益、方差选择等。

  3. 数据集划分:将数据集划分为训练集和测试集,通常采用70%的数据作为训练集、30%的数据作为测试集。

  4. 随机森林建模:使用训练集数据建立随机森林模型。随机森林是由多个决策树组成的集成学习模型,每个决策树通过对一部分有放回的样本进行训练而构建。

  5. 模型训练:通过训练集数据对随机森林模型进行训练,即对每个决策树进行单独的训练。

  6. 模型预测:使用训练好的随机森林模型对测试集数据进行分类预测。

  7. 模型评估:对预测结果进行评估,可以使用准确率、精确率、召回率等指标衡量模型的性能。

  8. 参数调优:根据模型评估结果,对随机森林模型的参数进行调优,以提高模型的性能。

  9. 模型应用:使用经过调优的随机森林模型对新的土地分类数据进行预测。

需要注意的是,随机森林方法在处理高维数据和大数据集时具有较好的性能,但对于类别不平衡的情况可能存在一定的问题。在实际应用中,可以根据具体需求选择合适的模型和算法进行土地分类。

函数

gve.Classifier.smileRandomForest(numberOfTrees,variablesPerSplit,minLeafPopulation,bagFraction,maxNodes,seed)

创建一个空的随机森林分类器

方法参数

- numberOfTrees( number )

创建的决策树数量

- variablesPerSplit( number,optional )

可选参数,每个变量拆分的数量

- minLeafPopulation( number,optional )

可选参数,创建至少包含这些点的节点

- bagFraction( number,optional )

可选参数,每棵树的输入袋比例

- maxNodes( number,optional )

可选参数,每棵树中最大的叶子节点数量

- seed( number,optional )

可选参数,随机种子

返回值: Classifier

代码

/*** @File    :   * @Time    :   2023/08/28* @Author  :   GEOVIS Earth Brain* @Version :   0.1.0* @Contact :   中国(安徽)自由贸易试验区合肥市高新区望江西路900号中安创谷科技园一期A1楼36层* @License :   (C)Copyright 中科星图数字地球合肥有限公司 版权所有* @Desc    :   对影像使用随机森林算法进行分类*/
/** */// 地物分类标签影像
var imgLable = gve.Image("AIRCAS/GLC_FCS30_2020/GLC_FCS30_2020_E115N35");
Map.centerObject(imgLable)
var id = Map.addLayer(imgLable, null, "imgLable");var label = 'LABLE';
var imgLableRemapped = imgLable.rename(label)// Sentinel2 待分类影像
var img = gve.Image("S2/L2A/20221107T024919_20221107T050438_T50SNA").select('B.*');
// print("Sentinel2 img",img);// 获取区域
var ROI = gve.Geometry.Polygon([[[117.15900037027156, 31.807122313784646],[117.15900037027156, 31.633066875770748],[117.65750500894343, 31.633066875770748],[117.65750500894343, 31.807122313784646]]]
);// 波段采样的数量 
var numPoints = 100;
// 分类波段id 
var classBand = label;
// 采样区域 
var region = ROI;
// 缩放 
var scale = 100;
var sample = img.addBands(imgLableRemapped).stratifiedSample(numPoints, classBand, region, scale);
// print('sample',sample)// 样本数据增加随机值属性,用于划分训练数据和验证数据
var sample = sample.randomColumn();// 80%样本用于训练,20%样本用于验证
var trainingSample = sample.filter('random<=0.8');
var validationSample = sample.filter('random>0.8');// 采用欧几里得距离模式训练最小距离分类器
var features = trainingSample;
var classProperty = label;
var inputProperties = img.bandNames();
//gve.Classifier.Cart(maxNodes,minLeafPopulation,maxDepth)
var trainedClassifier = gve.Classifier.smileRandomForest(50).train(features, classProperty, inputProperties);
//gve.Classifier.Cart()
//gve.Classifier.minimumDistance('euclidean', 10)
// print('trainedClassifier',trainedClassifier)
// 打印已训练完的分类器信息
print('Explain of trained classifier', trainedClassifier.explain());
// 获取训练数据的混淆矩阵和整体准确率
var trainedMatrix = trainedClassifier.confusionMatrix();
// print('Training confusion matrix', trainedMatrix);
print('Training overall accuracy', trainedMatrix.accuracy());// 获取验证数据的混淆矩阵和整体准确率
validationSample = validationSample.classify(trainedClassifier);
// print('validationSample',validationSample)// errorMatrix是一个混淆矩阵 
var validationMatrix = validationSample.errorMatrix(label, 'classification');
// print('Validation confusion matrix', validationMatrix);
print('Validation accuracy', validationMatrix.accuracy());// 使用分类器对分类
var imgClassified = img.classify(trainedClassifier);
// print("imgClassified",imgClassified)var classVis = {band_rendering: {uniquevalue: {colortable: {values: [10, 11, 20, 51, 52, 61, 62, 71, 72, 130, 180, 190, 210],colors: ['#FFFF64', '#FFFF64', '#AAF0F0', '#4C7300', '#006400', '#00A000','#AAC800', '#003C00', '#005000', '#FFB432', '#00DC82', '#C31400', '#0046C8'],na: "#000000"}}}
};Map.centerObject(img)
var id1 = Map.addLayer(img, { bands: ['B4', 'B3', 'B2'], min: 100, max: 3500 }, 'img');Map.centerObject(imgClassified)
var id2 = Map.addLayer(imgClassified, { palette: classVis }, 'Classified');

结果

  • Explain of trained classifier"
  • 2024-10-11 11:00:57.769 

    ▶ Object (15 properties)
  • 2024-10-11 11:00:57.770 

    "Training overall accuracy"
  • 2024-10-11 11:00:57.770 

    0.9896680216802168
  • 2024-10-11 11:00:57.770 

    "Validation accuracy"
  • 2024-10-11 11:00:57.771 

    0.01386001386001386
  • 2024-10-11 11:02:52.600 

    "Error: {"message":"参数异常","code":40205}"

相关文章:

中科星图(GVE)——使用随机森林方法进行土地分类

目录 简介 函数 gve.Classifier.smileRandomForest(numberOfTrees,variablesPerSplit,minLeafPopulation,bagFraction,maxNodes,seed) 代码 结果 简介 使用随机森林方法进行土地分类的步骤如下&#xff1a; 数据准备&#xff1a;收集所需的土地分类数据&#xff0c;并对数…...

【蓝队技能】【C2流量分析】MSFCSSliver

蓝队技能 MSF&CS&Sliver 蓝队技能总结前言一、MSF1.1 流量分析1.2 特征提取 二、CS1.1 流量分析1.2 特征提取 二、Sliver1. 特征分析 总结 前言 不同C2工具的流量特征都有细微差别&#xff0c;学会分析方法后就可以进行分析 一、MSF 1.1 流量分析 MSF流量特征过于明显…...

不推荐使用Scilab作为MATLAB的开源替代

安装了Scilab2024.1.0&#xff0c;随便试了几分钟就发现有严重影响使用的Bug(也可能是就是这样设计的&#xff0c;有一个所谓的“暂停模式”)&#xff0c;复现步骤&#xff1a;主界面上点击“Scilab示例”按钮&#xff0c;打开“演示”窗口&#xff0c;点击左侧列表中的“多项式…...

C++智能指针及其应用

C11之后出现了 shared_ptr 和 unique_ptr&#xff0c;这两个类都是基于RAII技术进行设计的 RAII 利用对象生命周期来控制程序资源&#xff08;如内存&#xff0c;文件句柄&#xff0c;网络连接&#xff0c;互斥量等资源&#xff09;的技术&#xff0c;具体地说&#xff0c;就是…...

06 算法基础:算法的定义、表现形式(自然语言、伪代码、流程图)、五个特性(有穷性、确定性、可行性、输入、输出)、好算法的设计目标

目录 1 算法的定义 2 算法的三种表现形式 2.1 自然语言 2.2 伪代码 2.3 流程图 3 算法的五个特性 3.1 有穷性 3.2 确定性 3.3 可行性 3.4 输入 3.5 输出 4 好算法的设计目标 4.1 正确性 4.2 可读性 4.3 健壮性 4.4 通用性 4.5 高效率与低存储量 1 算法的定义 …...

【红外传感器】STM32C8T6标准库使用红外对管

好好学习&#xff0c;天天向上 前言一、了解红外二、标准库的代码1.infrared.c2.infrared.h3.main.c4 现象 总结 前言 红外线&#xff1a;频率介于微波与可见光之间的电磁波。 参考如下 【STM32】标准库与HAL库对照学习教程外设篇–红外避障传感器 光电红外传感器详解&#…...

STM32L010F4 最小系统设计

画一个 STM32L010F4 的测试板子...... by 矜辰所致前言 最近需要用到一个新的 MCU&#xff1a; STM32L010F4 &#xff0c;上次测试的 VL53L0X 需要移植到这个芯片上&#xff0c;网上一搜 STM32L010F4&#xff0c;都是介绍资料&#xff0c;没有最小系统&#xff0c;使用说明等。…...

AI 工具大赏:探索智能时代的得力助手

在当今这个科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术已经深入到我们生活的方方面面。从日常办公到创意设计&#xff0c;从学术研究到娱乐休闲&#xff0c;AI 工具正以其强大的功能和便捷的使用体验&#xff0c;成为人们不可或缺的得力助手。那么&…...

安通物流借助CRM重塑企业客户关系管理新格局

安通控股股份有限公司(以下简称"安通控股")是一家扎根集装箱多式联运物流产业的现代综合物流服务企业,致力于为客户提供绿色、经济、高效、安全的集装箱全程物流解决方案。 据Alphaliner排名统计,截至2023年10月,安通控股综合运力全球排名21位,位居国内内贸集装箱物…...

C++标准模板库--vector

vector 介绍 vector&#xff08;向量&#xff09;是一种序列容器&#xff0c;表示为可以改变大小的数组。vector中的元素使用连续的存储位置&#xff0c;这意味着也可以使用指向其元素的常规指针偏移量来访问任意元素&#xff0c;且与数组一样高效。但与数组不同的是&#xff…...

通信学习干货:运营商为什么要大力推广FTTR?

随着数字化时代的来临&#xff0c;互联网的需求不断增长&#xff0c;家庭网络也在不断演进。光纤到家&#xff08;FTTH&#xff09;已经成为提供高速互联网连接的标配&#xff0c;但随着技术的发展&#xff0c;我们迎来了FTTR&#xff08;光纤到房间&#xff09;技术&#xff0…...

【Spring篇】初识之Spring的入门程序及控制反转与依赖注入

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】&#xff0c;【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 文章目录 &#x1f3af;初始Spring …...

OpenLayers:构建高质量的Web地图应用

OpenLayers&#xff1a;构建高质量的Web地图应用 文章目录 OpenLayers&#xff1a;构建高质量的Web地图应用简介为什么选择 OpenLayers&#xff1f;跨平台兼容性高性能渲染高度可定制化社区支持 安装与设置功能扩展矢量图层地理编码投影转换 交互与事件其他高级特性控制动画数据…...

Java比较两个Excel是否内容一致

领导每天让比较两个Excel中的内容&#xff0c;为了节省工作效率多摸鱼&#xff0c;就写了个java接口&#xff0c;通过上传两个文件 进行代码比较得到详细的比较结果(这个需要自己根据日志二开) 目前只实现了比较功能 话不多说直接上代码&#xff0c;具体看注释 package com.yx…...

UniApp入门教程

UniApp X 是一种用于构建跨平台应用程序的框架&#xff0c;它基于 Vue.js 并通过 UniApp 技术栈支持多种平台&#xff0c;如微信小程序、支付宝小程序、H5、Android 和 iOS。以下是 UniApp X 的一些关键特点和基础知识&#xff1a; UniApp X 的特点 跨平台支持&#xff1a; 可…...

Vue.js中使用Element UI实现动态表单项管理及验证

在Vue.js项目中&#xff0c;表单是与用户交互的重要部分&#xff0c;特别是在需要动态管理表单项的场景下&#xff0c;如何优雅地实现添加、删除、上移、下移及验证功能变得尤为重要。本文将详细介绍如何使用Element UI来实现一个包含动态表单项管理以及验证功能的表单。 效果…...

一插U盘就提示格式化?原因、恢复与预防全攻略

一、现象直击&#xff1a;U盘插入电脑即提示格式化 在日常的工作与生活中&#xff0c;U盘作为重要的数据存储和传输工具&#xff0c;被广泛应用于各类场景。然而&#xff0c;有时当我们满怀期待地将U盘插入电脑时&#xff0c;却会遭遇一个令人头疼的问题——系统弹出提示框&am…...

云电脑使用教程标准版

云电脑&#xff0c;也称为云桌面&#xff0c;是一种通过互联网连接远程服务器&#xff0c;使用虚拟桌面环境来执行计算任务的技术。川翔云电脑通过创建软件镜像&#xff0c;让用户能够快速启动并使用预配置的软件和资料&#xff0c;提供高效且经济的云服务。相较于公有云服务&a…...

浏览器服务端文件下载控制(安全阻止、文件浏览器打开还是下载行为控制)

文章目录 简介Chrome已阻止不安全内容下载PDF直接打开txt、xml、js文件被自动打开了而不是下载阿里OSS设置response header阿里OSS修改metadata 简介 随着浏览器的发展&#xff0c;有很多安全方面的限制&#xff0c;对我们的文件下载行为产生了很大的影响。 在JavaScript下载…...

机器学习——量子机器学习

量子机器学习: 未来的机器学习方法 量子计算和机器学习的结合为计算科学带来了前所未有的前景。量子机器学习(QML)正在迅速发展&#xff0c;目标是利用量子计算的优势来处理传统计算机无法高效解决的问题。本文将深入探讨量子机器学习的基本概念、量子计算的关键技术、具体的量…...

[Linux] 创建可以免密登录的SFTP用户

本文主要包含: 创建新用户创建密钥对用于免密登录新用户将新建用户改造为SFTP用户为SFTP上传数据设置限速 1. 创建新用户 sudo useradd sftp_user sudo passwd sftp_user # 输入密码2. 创建密钥对 参考这篇文章 [Linux] 生成 PEM 密钥对实现服务器的免密登录 3. 将新建用户…...

【部署篇】Redis-03主从模式部署(源码方式安装)

一、准备主机 主从模式只是解决了数据备份容灾并不能解决单点故障问题&#xff0c;生产环境中需要在主从模式基础上增加哨兵&#xff0c;实现主节点宕机时自动将其中一个重节点设置为新的主节点。 主机IP角色说明192.168.128.31master&#xff0c;主节点可读写。192.168.128…...

C/C++语言基础--C++四大类型转换讲解

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 通过前面几节课&#xff0c;我们学习了抽象、封装、继承、多态、异常等概念&#xff0c;这一篇我们将继续学习C的类型转换&#xff0c;和C语言还有很大区别的&#xff1b;在本节课最后&#xff0c;也简要说…...

KafKa 集群【docker compose】

文章目录 主机准备部署编辑 docker-compose.ymlcontrollerbroker生成cluster_id 一篇完整的 docker-compose.yml 文件查看集群状态使用 kafka-ui 查看拉取 kafka-ui添加集群查看集群状态 使用命令行查看 配置讲解controllerbroker 主机准备 IPcontroller idbroker id192.168.1…...

【工具篇】MLU运行XInference部署手册

文章目录 前言一、平台环境准备二、代码下载三、安装部署1.正常pip 安装 四、运行结果展示1.如果界面404或没有东西请这样做2.运行效果 前言 Xorbits Inference&#xff08;Xinference&#xff09;是一个功能强大、用途广泛的库&#xff0c;旨在为语言、语音识别和多模态模型提…...

计算机网络:数据链路层 —— 扩展共享式以太网

文章目录 共享式以太网共享式以太网存在的问题在物理层扩展以太网扩展站点与集线器之间的距离扩展共享式以太网的覆盖范围和站点数量 在链路层扩展以太网网桥的主要结构网桥的基本工作原理透明网桥自学习和转发帧生成树协议STP 共享式以太网 共享式以太网是当今局域网中广泛采…...

平安养老险深圳分公司:创新养老服务,深入践行金融为民

党的二十届三中全会《决定》提出&#xff1a;“积极发展科技金融、绿色金融、普惠金融、养老金融、数字金融&#xff0c;加强对重大战略、重点领域、薄弱环节的优质金融服务。” 为经济社会发展提供高质量服务&#xff0c;更好满足人民日益增长的美好生活需要&#xff0c;金融…...

静态站点生成器哪家强?

有一种方法&#xff0c;让你写好文档后&#xff0c;快速地让同事、用户和合作伙伴看到&#xff0c;这就是静态站点生成器。 静态站点生成器是一种软件&#xff0c;用于创建不需要服务器端脚本的网站。这些网站由纯HTML文件组成&#xff0c;可能还包括CSS和JavaScript来增强功…...

从0开始部署优化虚拟机

一&#xff0c;vm workstation 安装 CentOS-7 忽略 二、查看虚拟机IP ip address 得到 192.168.196.128/24 宿主机进行Ping测试 C:\Users\Administrator>ping 192.168.196.128正在 Ping 192.168.196.128 具有 32 字节的数据: 来自 192.168.196.128 的回复: 字节32 时间…...

录屏有道, 四款必备录屏工具推荐!

制作教程视频、游戏直播或是远程会议记录等都需要录屏&#xff0c;那么到底应该怎么录屏呢&#xff1f;接下来就给大家介绍几个好用的录屏工具 Foxit REC 直达链接&#xff1a;www.foxitsoftware.cn/REC/ 操作教程&#xff1a;立即获取 Foxit REC以其强大的功能、简洁的界面…...