中科星图(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}"

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

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

相关文章

k8s jenkins 2.421动态创建slave

k8s jenkins 动态创建slave 简述使用jenkins动态slave的优势&#xff1a;制作jenkins-slave从节点jenkins-slave-latest:v1配置jenkins动态slave配置 Pod Template配置容器模板挂载卷 测试 简述 持续构建与发布是我们日常工作中必不可少的一个步骤&#xff0c;目前大多公司都采…

机器视觉基础系列四—简单了解背景建模算法

机器视觉基础系列四—简单了解背景建模算法 首先我们应该了解的是背景建模的定义是什么&#xff1f;又有哪些应用场景呢&#xff1f; 背景建模是指通过分析视频序列中的像素值变化情况&#xff0c;从中提取出静态背景部分&#xff0c;并将其用于目标检测、运动跟踪等计算机视觉…

从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;企业与个人若欲崭露头角&#xff0c;一套行之有效的发稿策略无疑是突破重围的利剑。企业或个人该怎么向新闻媒体发稿呢&#xff1f;谛道文化新闻媒体发稿机构&#xff0c;在软文发布、新闻发布及媒体投放等方面具有卓越策略&#xff0c;无疑为…

I\O进程线程(Day30)

一、学习内容 多线程基础 1> 线程是任务器调度的基本单位&#xff0c;是进程的一个执行单元 2> 一个进程中可以包含多个线程&#xff0c;但是至少要包含一个线程称为主线程 3> 一个进程中的多个线程共享进程的资源&#xff0c;不会为线程再 单独分配内存空间 4> 线…

如何启动hive

检查mysql是否启动 通过Navicat测试mysql是否可以连接 找打hive配置文件所在目录 检查连接mysql的账号密码是否正确,如果不正确就要修改为正确的 初始化hive元数据存储的库:schematool -dbType <database_type> -initSchema 检查mysql中是否创建hive数据库,这里看到hive数…

WebGl 使用缓冲区对象绘制多个点

缓冲区对象是WebGL系统中为一块内存区域&#xff0c;可以一次性地向缓冲区对象中填充大量的顶点数据&#xff0c;然后将这些数据保存在其中&#xff0c;供顶点着色器使用。 1.类型化数组类型 在 webgl 中&#xff0c;需要处理大量的相同类型数据&#xff0c;所以引入类型化数组…

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中&#xff0c;Flatten 操作是将高维的输入&#xff08;如二维图像或三维特征图&#xff09…

LabVIEW提高开发效率技巧----减少UI更新频率

在LabVIEW开发中&#xff0c;图形化用户界面&#xff08;UI&#xff09;的更新频率对程序的响应速度有着显著影响。频繁的UI更新会占用大量资源&#xff0c;导致系统性能下降。本文将详细介绍如何通过减少UI更新频率来提升LabVIEW程序的运行效率&#xff0c;从多个角度进行分析…

Jenkins入门(二):流水线方式部署多模块Springboot项目

目录 一、环境准备 1. 搭建配置Jenkins (在上一篇基础上进行) 2. 安装mysql 3. 安装redis 4. 配置docker-componse 5. 启动docker-componse 二、脚本准备 1. Jenkinsfile 2. deploy.sh 3. Dockerfile 三、Jenkins流水线配置 新增版本号参数 流水线选择代码里面的Je…

游戏逆向基础-找释放技能CALL

思路&#xff1a;通过send断点然后对send的data参数下写入断点找到游戏里面的技能或者攻击call 进入游戏先选好一个怪物&#xff08;之所以要先选好是因为选怪也会断&#xff0c;如果直接左键打怪的话就会断几次&#xff09; 断下来后对参数下硬件写入断点 硬件断点断下来后先…

Java | Leetcode Java题解之第475题供暖器

题目&#xff1a; 题解&#xff1a; class Solution {public int findRadius(int[] houses, int[] heaters) {Arrays.sort(houses);Arrays.sort(heaters);int ans 0;for (int i 0, j 0; i < houses.length; i) {int curDistance Math.abs(houses[i] - heaters[j]);whil…

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

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

Python | Leetcode Python题解之第478题在圆内随机生成点

题目&#xff1a; 题解&#xff1a; class Solution:def __init__(self, radius: float, x_center: float, y_center: float):self.xc x_centerself.yc y_centerself.r radiusdef randPoint(self) -> List[float]:u, theta random.random(), random.random() * 2 * mat…

js简单基础笔记

一 . js特点 1. Js是一门解释型语言&#xff0c;不用编译&#xff0c;而是直接执行 2. js是一门动态语言&#xff0c;其中的任何内容都是不确定的 3. 语法结构和Java&#xff0c;c都很像 4. ​ js是一门面向对象的语言 5.js严格区分大小写 二 . js使用 1…

【AI知识】距离度量和相似性度量的常见算法

本文介绍一些AI中常见的距离度量和相似性度量算法&#xff1a; 1. 欧几里得距离&#xff08;Euclidean Distance&#xff09; 欧几里得距离是最常见的距离度量方法&#xff0c;用来计算两个向量之间的“直线距离”&#xff0c;也被成为L2范数。 公式如下&#xff0c;其中 x…

6、ES6

文章目录 一.关于ES6二.关于变量声明let声明变量const 声明常量 三.变量的解构赋值四.字符串的扩展五.函数的扩展函数默认参数rest参数箭头函数(函数的新写法) 六.数组的扩展七.对象的扩展语法上的简化对象的解构赋值 八.Symbol&#xff1a;新的数据类型(类似于字符串)独一无二…

学习中,师傅b站泷羽sec——xss挖掘过程

某职业技术学院网站xss挖掘&#xff1a; 资产归纳 例如&#xff1a;先把功能点都看一遍&#xff0c;大部分都是文章 根据信息搜集第一课学习到一般主站的防御力是比较强的&#xff0c;出现漏洞的点不是对新手不友好。 在资产验证过程中还是把主站看了一遍 没有发现有攻击的机会…

未来人工智能的发展对就业市场的影响 人工智能在生活中的相关

人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI.是新一轮科技革命和产业变革的重要驱动力量&#xff0c; 是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学. 人工智能的发展对就业市场的影响主要…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…