ENVI新机器学习:随机森林遥感分类工具操作手册ENVIIDL技术殿堂

随机森林是一种有监督的机器学习算法。监督学习是机器学习的一个子类。这种类型的学习依赖于分类标签,以生成一个函数(模型)来识别图像中的不同类别。有两种类型的分类问题,二元分类和多类分类。随机森林由于其准确性,简单性和灵活性,现已成为最广泛使用的分类算法之一。

随机森林是基于Bagging的决策树方法,其核心是bagging算法,原理如下:

给定一个大小为n的训练集D,Bagging算法从中均匀地、有放回地(使用自助抽样法)选出m个大小为n‘的子集Di作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到m个模型,再通过取平均值、取多数票等方法,即可得到Bagging结果。也即:

给定训练集X=x1,...,xn和目标Y=y1,...,yn,bagging方法重复(B次)从训练集中有放回地采样,然后在这些样本上训练树模型。在训练结束之后,对未知样本x的预测可以通过对x上所有单个回归树的预测求平均来实现:

或在分类任务中选择多数投票的类别。

此外,x'上所有单个回归树的预测的标准差可以作为预测的不确定性的估计:

样本或者树的数量B是一个自由参数。通常使用几百到几千棵树,这取决于训练集的大小和性质。使用交叉验证,或者通过观察out-of-bag误差(那些不包含x的抽样集合在样本x的平均预测误差),可以找到最优的B值。当一些树训练到一定程度之后,训练集和测试集的误差开始趋于平稳。

随机森林就是bagging的决策树方法,有一点改进就是随机森林在学习过程中的每次候选分裂,选择特征的随机子集。这个过程也被称为“特征bagging”。

随机森林分类工具包含在新机器学习工具包内,新机器学习工具可以运行在没有高性能GPU配置的设备上。具体运行环境如下:

支撑软件

ENVI5.6.3+ENVIDeepLearning2.0

操作系统

Windows10and11(Intel/AMD64-bit)

Linux(Intel/AMD64-bit,3.10.0及更高版本,glibc2.17及更高版本)

硬件

具有AVX的CPU。

注:一般情况下,2011年之后的CPU都包含该指令集。推荐使用IntelCPU,但不是必需的,它们拥有优化的英特尔机器学习库,可为某些机器学习算法提供性能提升。

对于单张栅格图像的随机森林分类可以通过ROI工具绘制样本并使用随机森林分类工具进行图像分类。

启动ENVI,打开ENVI自带的示例数据,如下图所示。数据位于:C:\ProgramFiles\Harris\ENVI56\data\qb_boulder_msi。ROI样本数据可下载获取(qb_boulder_msi_ROI_points.xml)。

提取码:envi

绘制好样本之后即可使用随机森林分类工具执行分类。在Toolbox工具箱,选择MachineLearning>Classification>Supercised>RandomForeastClassification随机森林分类工具。此工具对单个栅格影像执行随机森林监督分类。

在随机森林分类对话框中:

单击OK执行随机森林分类,得到分类结果,如下图所示:

随机森林分类工具可以对单幅影像快速执行随机森林分类,如果想要通过多幅影像和对应ROI训练随机森林模型并用于其它相似影像的分类,可以使用ENVIModeler构建自定义可重复使用的工作流。接下来将介绍通过ENVIModeler构建自定义工作流,用于数据预处理和使用多个栅格进行机器学习模型训练。

本教程中使用的图像:classification下的两张用于分类的图像,以及training下的两张用于训练的图像。每个训练图像都是分类图像的小区域子集。图像是四波段(红/绿/蓝/近红外),空间分辨率为1米的航拍影像。ENVI机器学习对于图像格式没有限制,对于本教程您将使用TIFF和ENVI两种格式。

注意:如果有多张影像,那么影像类型应该保持一致,如果其中一张为地表反射率,那么其余影像应该也为地表反射率数据。

文件

描述

NAIP_DallasTX_Oct11_2020_Subset.tif

用于训练的图像(4,046x3,973像素)

NAIP_DallasTX_Oct11_2020_Subset.xml

用于训练的ROI标签(人造地物、树木、地面、水面)

NAIP_SanAntonioSE_2020_Subset.dat

用于训练的图像(5,023x4,803像素)

NAIP_SanAntonioSE_2020_Subset.xml

NAIP_DallasTX_Oct11_2020.tif

用于分类的图像(10,590x12,400像素)

NAIP_SanAntonioSE_2020.dat

用于分类的图像(10,000x12,300像素)

机器学习的主要流程为训练栅格生成(影像和已有样本)、训练机器学习模型和模型分类。栅格归一化将输入的多张图像进行最大最小值归一化到0~1之间。

ENVIModeler是一个强大的可视化工具,用于使用ENVITask创建自定义工作流。ENVIModeler使用可视化方式构建流程块,类似于编写任务API代码。

这两个文件节点由栅格图像和ROI标签组成。之后它们会生成一个训练栅格用于训练机器学习模型。为了保持井然有序,可以根据需要单击画布中的节点并将其拖动到合适的位置。

要为监督分类器创建训练数据,必须使用栅格和关联的ROI提取标记像素。使用ENVIMachineLearningMLTrainingDatafromROIs任务来创建训练数据。此任务将从栅格中提取所有标记像素,这些像素由.xml文件中指定的ROI标识。生成的训练数据是包含单行光谱的新栅格。训练栅格的维度是(行=1,列=提取的标记像素个数,波段=输入栅格波段+1)。附加波段将为每个像素提供一个数值,该数值表示每个像素的类标签值。

对于本教程,我们有类标签Manmade、Trees、Ground、Water。这些标签解析为类值(1,2,3,4)。Ground类的像素将在附加波段中分配一个值3,对于每个标记的像素依此类推。

从ROI节点连接到MLTrainingDatafromROIs节点时,请务必正确配对Raster和ROI节点:

输入栅格

输入ROI

完成这些步骤后,你的节点画布应类似于下图:

NormalizationStatistics归一化统计节点从聚合器节点的输出栅格中收集最小和最大数据值。这在训练期间很重要,因为数据将使用最小值和最大值在0和1之间缩放。

要使用MLTrainingDatafromROIs节点生成的输出数据进行训练,首先需要使用聚合器节点聚合两个训练数据,之后将其连接到训练任务节点。对于本教程,我们将使用TrainRasterForest训练随机森林节点,但也可以选择任何其它的监督分类任务。

您的画布应该类似于下图。

InputParameters输入参数节点是一个基本节点,可以被许多节点重用。输入参数节点将连接到画布上的多个节点。通过连接输入参数节点,可以构建一组在运行任务时能够进行参数输入的工作流。

对第二个MLTrainingDatafromROIs节点重复此步骤。现在应该在InputParameters下有一个[BackgroundLabels]选项,单击InputParameters[BackgroundLabels],然后单击OK。

所有四个参数都通过彩色线连接到添加新的输入。这些参数都是用于训练模型时的输入参数。

您的模型现在应该类似于下图,所有连接都已完成。注意输入参数节点和训练随机森林节点的连接在下图中被其它连线遮挡。

完成ENVI模型后,保存您的工作流程并运行它。

在BackgroundLabels字段中,选择作为背景的类别。可以输入在标记过程中创建的任意几个类别(人造地物、树木、地面、水面)。例如,如果您只想识别树木,您可以添加标签(人造地物、地面、水面)。这将产生一个带有标签Background和Trees的二元分类器。

训练完成,节点恢复到默认颜色,训练进度对话框关闭。

生成训练好的监督分类模型后,您可以运行分类过程。最小化或关闭ENVIModeler;对于本节,您将使用ENVIToolbox工具箱中的MachineLearningClassification机器学习分类工具。

在图层管理器中,单击Machine_Learning_Classification_output*raster并将其拖动到栅格NAIP_DallasTX_Oct11_2020.tif上方。分类栅格显示在原始图像上。

在ENVI工具栏中,前后移动Transparency透明度滑块以探索与原始图像相比的分类结果。注意到该模型在识别正确的类方面做得很好,但它并不完美。整个图像的阴影被归类为人造材料。尝试消除这种情况的一种方法是创建阴影类,或绘制阴影类并将其归为背景类。

另一个缺陷是足球场部分被分类为水体。这可以通过添加更多的足球场处样本并重新训练模型来缓解。

在GoTo字段中输入像素坐标(7784p,7148p),然后按Enter键跳转到体育场。

在本教程中,您学习了如何构建自定义机器学习工作流,以使用标记数据训练随机森林分类器。了解到可以使用多个栅格和多个标签来训练模型并生成良好的结果。

总之,机器学习技术为学习数据中的复杂光谱模式提供了一个强大的解决方案,这意味着它可以从复杂的背景中提取特征,而不管它们的形状、颜色、大小和其他属性。

本教程介绍了两种方法进行随机森林分类。一种方法通过绘制样本ROI之后使用随机森林工具(RandomForeastClassification)直接得到分类结果。另一种方法通过ENVIModeler自定义可重用的随机森林模型训练工作流,之后使用通用的机器学习分类工具(MachineLearningClassification)得到分类结果。第一种方法简便快捷,方便直接获得分类结果;第二种方法可以获得可重用的机器学习模型。其它监督分类方法整体操作流程与本教程方法一致,区别是选择的分类器有所不同。另外使用MachineLearningLabelingTool机器学习标注工具也可以完成从样本选择到模型训练的整个过程。并且支持实时保存绘制的样本,提供项目管理等功能。

THE END
1.Microsoft机器学习产品和技术概述Azure Data Science Virtual Machine使用预安装的数据科学工具的虚拟机映像使用 Jupyter、R 和 Python 等工具在自己的 VM 上开发机器学习解决方案。 ML.NET开源的跨平台机器学习 SDK开发适用于 .NET 应用程序的机器学习解决方案。 Windows AIWindows 设备上的已训练模型的推理引擎将人工智能功能集成到 Windohttps://docs.microsoft.com/zh-cn/azure/architecture/data-guide/technology-choices/data-science-and-machine-learning
2.机器学习数据集合集!基于自然语言理解与机器学习的聊天机器人,支持多用户并发及自定义多轮对话 用途: Chat 是一个基于自然语言理解与机器学习的语义理解库。 Chat 提供丰富的语义分析工具与语义知识图的构建工具,非常适合从0开始迅速搭建自己的聊天机器人,也能够减少工程师在实际开发当中的重复工作。 https://blog.csdn.net/Kyzy_1919/article/details/144371975
3.人工智能工具综述:助力你的创新之路PyBullet是一款用于物理仿真和机器人控制的Python库,基于开源的Bullet物理引擎。PyBullet提供了高度可配置和可扩展的物理环境,适用于增强学习算法的评估和训练。 总结: 本文介绍了AI工具中的机器学习工具、自然语言处理工具、计算机视觉工具、数据分析工具和增强学习工具。通过使用这些强大而丰富的工具,你可以更好地应对各类https://108ai.com/post/273.html
4.视频生成器工具,工具涵盖了自然语言处理图像处理机器学习分享可用的谷歌镜像网站总结,AI工具集合包括:文生图、文生视频、AI 视频生成器工具,工具涵盖了自然语言处理、图像处理、机器学习、自动化工作流等多个领域,提升TikTok或抖音人气以及直播人气的工具。 2024年一些优秀且可在线免费使用的AI工具,AI软件开发工具,提升TikTok或抖音人气以及直播人气的工具和方法主要包括内容优https://blog.51cto.com/u_12763213/11638426
5.SuperMapiDesktopX10i(2021)新特性新增大数据栅格分析工具:栅格代数运算自定义表达式、加权统计。 优化大数据栅格分析-重分级工具的参数填写方式,使设置分级区间等参数更加简洁。 优化大数据栅格管理-数据类型转换-三维点转栅格工具,新增设置像素格式和无值两参数; GeoAI 工具 新增机器学习工具:梯度提升树分类和回归。 完善元胞自动机功能,ANN 和 PCA 支持https://help.supermap.com/iDesktopX/1101/zh/guides/news/what_is_new_2021
6.盘点三款高可用的机器学习模型web页面化的工具(一)笔者只是抛砖引玉,把三款看到的在本篇简单的介绍。 如果有其他更好的欢迎留言推荐,后续笔者会对这三款做一一的学习。 文章目录 1 streamlit 2 Gradio 3 codepen 1 streamlit 笔者之前写过该专题: python︱写markdown一样写网页,代码快速生成web工具:streamlit介绍(一)python︱写markdown一样写网页,代码快速生成https://cloud.tencent.com/developer/article/2169864
7.LobeLobe是微软推出的产品,是一款简单免费的机器学习模型训练工具。它让非专业人士也能通过机器学习的方法来构建AI模型,属于一款易于使用的机器学习应用工具。 Lobe使用深度学习和机器学习技术,让用户无需编写代码即可实现模型训练。这降低了机器学习的使用门槛,加速了模型构建与应用,无需专业技能也可以轻松上手。相比代码级的https://www.aizhinan.cn/tools/2333.html
8.工具Orange3:机器学习入门神器澎湃号·湃客澎湃新闻Orange3(https://orangedatamining.com/)是一款基于Python的数据挖掘和可视化工具,它提供了丰富的数据分析、机器学习和数据挖掘算法,同时也支持可视化分析和交互式数据探索。Orange3提供了友好的界面和丰富的示例工程,使得新手用户也可以快速上手,同时也支持Python脚本,可以满足高级用户的需求。 https://www.thepaper.cn/newsDetail_forward_24193195?commTag=true
9.数据科学与机器学习平台数据建模工具TempoAI是新一代人工智能分析平台,操作简单不用编写代码,即可快速完成数据挖掘建模。丰富的算法模型满足各种建模场景需求,同时还内置了丰富的行业经典案例,一键引用,快速提升AI在企业的应用落地速度。https://www.asktempo.com/product/tempoai.html
10.数据分析中的数据挖掘需要哪些工具数据分析中的数据挖掘需要以下工具:一、数据库管理工具;二、ETL工具;三、数据可视化工具;四、统计分析工具;五、机器学习工具;六、自然语言处理工具;七、大数据处理工具;八、Web爬虫工具;九、时间序列分析工具;十、图像处理工具;十一、数据挖掘工具。 一、数据库管理工具 https://www.linkflowtech.com/news/1596
11.12种Python机器学习&数据挖掘工具包机器之心【Milk】是Python中的机器学习工具包,它的重点是有多种分类器的监督分类:SVM(基于libsvm),k-NN,随机森林,决策树。它还执行功能选择。这些分类器可以以多种方式组合以形成不同的分类系统。 官方主页:http://www.luispedro.org/software/milk 代码主页:https://github.com/luispedro/milk https://www.jiqizhixin.com/articles/2018-10-19-11
12.25个ai智能写作网站全盘点,300%解放内容生产力!(3)Neuraltext:文案写作的免费工具 neuraltext是一个使用机器学习自动生成文本的平台,它已被用于不同的行业,如医疗保健、教育和营销。该平台还被记者用来在人工智能的帮助下创作文章。 近年来,自然语言处理 (NLP) 取得了多项进展,提高了该技术的准确性。该系统从数据中学习,因此随着更多数据被添加到其系统中,它在https://boardmix.cn/article/ai-writing-websites/
13.机器学习机器学习在当今社会扮演着日益重要的角色,但黑盒模型的不可解释性限制了其应用范围。因此,可解释性机器学习成为研究热点,有助于提高模型的可信度和可接受性。本文旨在探讨随机森林和fastshap作为可视化模型解析工具的应用,以帮助解释机器学习模型的决策过程和关键特征。通过对这两种方法的深入研究,可以更好地理解模型背后https://developer.aliyun.com/article/1459413
14.你想要的数字人工具,我都给你找齐了(含免费试用)优势: 支持多种机器学习模型,可以根据需求选择最适合的模型进行动画生成。 8.D-Human - AI数字人视频制作工具 网址: D-Human官网 特点: D-Human是一款允许用户定制数字人形象并高还原度克隆声音的视频制作工具。作为一个超写实数字人的数字孪生平台,D-Human可以用于生成可商用的数字人视频,涵盖数字人播报、数字人https://www.1457vip.com/?p=899
15.好工具使用浏览器进行机器学习在线训练指南Jupyter notebook是用来建立机器学习模型最常见的环境之一,然而它有一些缺点。Jupyter notebook非常适合在本地开发机器学习模型,但很难共享和协作使用此工具生成的代码。 此外,还需要进行合理的设置,特别是在你不是python的当前用户的情况下。你需要设置一个python环境,安装Jupyter及其依赖项以及你可能需要的任何其他pythonhttp://www.360doc.com/content/20/0515/18/32196507_912546532.shtml
16.科学网—Orange机器学习与数据挖掘工具Orange 机器学习与数据挖掘工具 机器学习在生物信息等领域应用非常广泛, 怎么快速从海量生物数据中得到想要的信息成为了我们关注的焦点 . 最近本人在研究植物基因组中的某类特定基因的features,看能不能与其他基因区分开来,所以就需要构建机器学习中的分类器. 由于本人偏好python语言 (虽然R也经常用,比如作图、统计等,https://blog.sciencenet.cn/blog-728647-906365.html
17.NanoEdgeAIStudio面向STM32开发人员的自动化机器学习(ML)工具 获取软件 下载数据摘要 产品概述 主要优势 部分意法半导体边缘AI套件 一系列免费的在线工具、案例研究和资源,旨在帮助工程师解决其在边缘AI开发的各个阶段遇到的问题。 前往了解意法半导体边缘AI套件 自动化ML模型生成器 https://www.st.com/zh/development-tools/nanoedgeaistudio.html
18.昨夜,微软甩出10项硬核新品!28.5万个核心的AI超算机,最大语言模型10、提供负责任的机器学习工具,以减少不公平性。 除此之外,微软推出命令行界面Windows Package Manager,帮助开发者快速搜索、查看和安装各类管理工具。同时,微软Chromic内核的浏览器Edge也新增了侧边栏搜索、同步等新功能。 值得一提的是,微软还宣布收购机器人流程自动化(RPA)创企Softomotive,以将RPA技术引入Power Autohttps://zhidx.com/p/211300.html
19.Python最常用的20个包总结pythondf=pd.DataFrame(data) print(df) matplotlib(数据可视化) 代码示例: 1 2 3 4 5 6 importmatplotlib.pyplot as plt x=[1,2,3,4,5] y=[4,2,7,5,9] plt.plot(x, y) plt.show() scikit-learn(机器学习工具) 代码示例: 1 2 3 4 https://www.jb51.net/article/280800.htm
20.在线工具有趣网址之家发布日期: 2022-11-30 分类: 在线应用 标签: 图片处理、在线工具、水印 作者: songslee. 开源的AI机器学习项目-Replicate 1,824 ℃ 发表评论 ←已有8 人投票,有趣指数: 4.75星 AI、机器学习发展已有些年头,但新鲜感仍在不断冲击着网上冲浪人。最近有DALLE 2这样的写文字出图的酷炫项目,随之也涌现了其它的https://youquhome.com/tag/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/
21.欧盟AI法案合规的10个MLOps工具欧盟的AI法对MLOps工具(即机器学习操作工具)有什么影响? 欧盟《人工智能法》通过引入新的合规要求,对用于MLOps的工具产生了重大影响,这些要求主要针对数据和工程团队。这些要求侧重于透明度、数据治理、人为监督、风险管理,尤其是对那些被列为高风险的人工智能系统。 https://www.imooc.com/article/362771
22.HutCat/cubecube studio开源云原生一站式机器学习/深度学习/大模型AI平台,支持sso登录,多租户,大数据平台对接,notebook在线开发,拖拉拽任务流pipeline编排,多机多卡分布式训练,超参搜索,推理服务VGPU,边缘计算,serverless,标注平台,自动化标注,数据集管理,大模型微调,vlhttps://github.com/HutCat/cube-studio
23.微软Build2020大会转战线上:完全纯粹的开发者大会这些机器学习工具包括了:InterpretML工具包,可用来解释模型中不同参数所代表的意义,帮助开发者理解机器学习模型的行为;Fairlearn工具包可以评估和纠正人工智能系统的公平性,从6月起将内置于Azure机器学习服务;WhiteNoise工具包可实现差分隐私——在模型从隐私数据中发掘洞察的同时,以统计学原理确保姓名、生日之类的隐私信息得https://www.ithome.com/0/488/097.htm
24.字节跳动AI高级产品经理田宇洲:AI产品经理需要掌握的核心算法Q2. 人工智能、机器学习、深度学习三者的区别是什么? 这三个概念是包含关系,人工智能包含机器学习,机器学习包含深度学习,从20世纪50年代开始,随着算法的演化,数据的完善,算力的提升,逐步演化出来,如下图所示: Q3. 国内外知名机器学习建模工具产品都有什么哪些?各自的优势是什么? https://maimai.cn/article/detail?fid=1246742214&efid=hW5NlFAEkS-MHjfZl5IAxg