基于专家知识的决策树分类|以DEM+影像数据在ENVI操作为例
一、基于专家知识的决策树分类的基本介绍
决策树模型就是需要通过样本数据构建一棵树,数中除了叶子节点的每个节点都是一个数据特征的划分点,将待测数据的对应的特征和该节点上的划分特征做对比,然后将待测节点分到该节点的某个子节点上,然后再进行对比,直到叶子节点为止,然后判断待测数据的类型集合。
基于专家知识的决策树分类是基于遥感图像数据及其其他空间数据,通过对专家经验知识的总结、简单的数学统计和归纳方法等,获得分类规则并进行遥感分类。分类规则易于理解,分类过程也符合人的认知过程,最大的特点是利用多源数据。
本实验操作简单,但实际应用时,需要大量的知识和经验做积累,才能最大程度定义规则、实现分类。
基于专家知识的决策树分类总体上可分为四个过程:定义分类规则、构建决策树、执行决策树和评价分类结果。
二、操作流程
1、定义分类规则
分类规则可以来自经验总结,也可以通过统计的方法从样本中获取规则,如C4.5算法、CART算法、S-PLUS算法等。
C4.5算法的基本原理是从树的根节点处的所有训练样本开始,选取一个属性来区分这些样本。对属性的每一个值产生一个分支,分支属性值的相应样本子集被移到新生成的子节点上,这个算法递归地应用于每个子节点上,直到节点的所有样本都分区到某个类中,到达决策树的叶节点的每条路径表示一个分类规则。该算法采用了信息增益比例来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性不足,并且在树构造过程中或者构造完成之后进行剪枝,能够对连续属性进行离散化处理。
算法中描述的属性也叫做变量,来源于多源数据中,如DEM文件可以当作变量。以LandSat TM数据和DEM数据构成多源数据获得分类规则:
- Class1 (朝北缓坡植被):NDVI>0.3,坡度小于20 ,朝北
- Class2 (非朝北缓坡植被):NDVI>0.3,坡度小于20 ,非朝北
- Class3 (陡坡植被):NDVI>0.3,坡度大于等于20
- Class4 (水体):NDVI<= 0.3,波段4的DN值大于0且小于20
- Class5 (裸地):NDVI<= 0.3,波段4的DN值大于等于20
- Class6 (无数据区,背景):NDVI<= 0.3,波段4的DN值等于0
将定义好的分类规则转换成规则表达式为:
- Class1 (朝北缓坡植被):{NDVI} gt 0.3,{slope} lt 20,({aspect} lt 90) or ({aspect} gt 270)
- Class2 (非朝北缓坡植被):{NDVI} gt 0.3,{slope} lt 20,({aspect} gt 90) or ({aspect} lt 270)
- Class3 (陡坡植被):{NDVI} gt 0.3,{slope} ge 20
- Class4 (水体):{NDVI} le 0.3,(b4 gt 0) and (b4 lt 20)
- Class5 (裸地):{NDVI} le 0.3,b4 ge 20
- Class6 (无数据区,背景):{NDVI} le 0.3,b4 eq 0
Expression中的表达式是有变量和运算符(包括数学函数)组成,支持的运算符如表1所示
表达式 |
部分可用函数 |
基本运算符 |
+、-、*、/ |
三角函数 |
正弦Sin(x)、余弦cos(x)、正切tan(x) |
关系/逻辑 |
小于LT、小于等于LE、等于EQ、不等于NE、大于等于GE、大于GT |
其他符号 |
指数(^)、自然指数exp |
表1 运算符
ENVI决策树分类器中的变量是指一个波段的数据或作用于数据的一个特定函数。变量名必须包含在大括号中,即{变量名};或者命名为bx,x代表数据,比如哪一个波段。如果变量被赋值为多波段文件,变量名必须包含一个写在方括号中的下标,表示波段数,比如{pc[2]}表示主成分分析的第一主成分。支持特定变量名如表2,也可以通过IDL自行编写函数。
变量 |
作用 |
slope |
计算坡度 |
aspect |
计算坡向 |
ndvi |
计算归一化植被指数 |
Tascap [n] |
穗帽变换,n表示获取的是哪一分量。 |
pc [n] |
主成分分析,n表示获取的是哪一分量。 |
lpc |
局部主成分分析,n表示获取的是哪一分量。 |
mnf [n] |
最小噪声变换,n表示获取的是哪一分量。 |
Lmnf[n] |
局部最小噪声变换,n表示获取的是哪一分量。 |
Stdev |
波段n的标准差 |
lStdev |
波段n的局部标准差 |
Mean |
波段n的平均值 |
lMean |
波段n的局部平均值 |
Min [n]、max |
波段n的最大、最小值 |
lMin [n]、lmax |
波段n的局部最大、最小值 |
表2变量表达式
2、构建决策树
ENVI中的决策树是用二叉树来表达,规则表达式生成一个单波段结果,并且包含一个二进制结果0或1.0结果被归属到“No”分支,1 结果被归属为“Yes”分支。操作步骤如下:
(1)打开影像数据以及DEM数据;
(2)在主菜单选择Classification"Decision Tree"Build New Decision Tree,打开ENVI Decision Tree窗口,其中默认包含一个决策树节点和两个类别(分支),如图4-17所示。
图1.1决策树分类 |
(3)点击Node 1图标,打开节点属性编辑属性(图4-18);
图1.2编辑决策树属性 |
- 在Name中填写节点名称:NDVI>0.3;
- 填写节点表达式(Expression):{ndvi} gt 0.3。
(4)点击OK按钮,打开Variable/File Pairings对话框。点击左边列表中的{NDVI}变量,在弹出的文件选择对话框中选择TM图。如果图像文件中含有中心波长信息,ENVI将自动判断在DNVI计算中需要哪一个波段;如果图像在所选的头文件中没有包含波长信息,那么ENVI就会给出提示,以确定NDVI计算中所需的红波段和近红外波段(图4-19)。
图1.3 变量 /文件配对 |
(5)第一个节点表达式设置完成,根据NDVI>0.3成立与否划分为两部分。本例中分成植被覆盖区与无植被区;
(6)继续添加第二层节点。右键单击Class1,从快捷菜单中选择Add Children,将NDVI值高的那类进一步细分成两类。ENVI将自动地在Class1下创建两个新的类(Class1和Class2);
(7)单击为“Yes”的节点,打开Variable/File Pairings对话框。在Name中填写:Slope<20,在Expression中填写:{slope} lt 20 ;
(8)点击OK按钮,打开Variable/File Pairings对话框。点击左边列表中的{slope}变量,在弹出的文件选择对话框中选择DEM文件;
(9)继续添加low b4节点;同上定义规则和选择图层;
图1.4 给节点添加规则
(10)注意选择low b4的波段,此时只用选择单波段就好。
图1.5 给节点添加规则
(11)重复步骤,根据分类规则,添加剩余的子节点,结果如图4-20所示。
图1.6分类树 |
- 单击叶节点Class #,打开Edit Class Properties窗口,设置分类的名称Name,分类值Class Value以及颜色Color;
(10)选择File"Save Tree保存新建的决策树文件。要打开时,选择Execute Decision Tree,打开txt文档即可。
图1.7 决策树的Text文档
图1.7 保存 决策树
3、执行决策树
(1)在ENVI Decision Tree窗口中,选择Options"Execute;
(2)在弹出了Decision Tree Execution Parameters窗口中设置决策树分类的执行参数(图4-21);
图1.8 决策树执行参数设置 |
- Select Base Filename and Projection:选择一个文件作为输出分类结果的基准。分类结果的地图投影,像素大小和范围都将被调整,以与该基准图像匹配;
- Resampling:选择重采样方法。
(3)选择分类结果的输出路径和文件名,点击OK执行决策树分类。
(4)分类结束后,在ENVI Decision Tree窗口的空间处,点击右键,选择Zoom In,在每个节点标签上会显示每个分类的像素个数以及所占总图像像素的百分比。
图1.9 决策树运行结果
基于专家知识的决策树分类|以DEM+影像数据在ENVI操作为例相关推荐
- 机器学习算法(五):基于企鹅数据集的决策树分类预测
机器学习算法(五):基于企鹅数据集的决策树分类预测 1 逻决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是 ...
- A.机器学习入门算法(五):基于企鹅数据集的决策树分类预测
[机器学习入门与实践]入门必看系列,含数据挖掘项目实战:数据融合.特征优化.特征降维.探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:[机器学习入门与实践]合集入门必看系列,含数据挖掘项目实 ...
- python决策树分类鸢尾花_基于决策树—鸢尾花分类
决策树算法广泛应用于:语音识别.医疗诊断.客户关系管理.模式识别.专家系统等,在实际工作中,必须根据数据类型的特点及数据集的大小,选择合适的算法. 本文选择经典案例--<鸢尾花分类> 一. ...
- 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part4):结合问题分类的问题解析与检索语句生成
前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...
- 基于公共知识和一次学习的多任务流量分类
写在前面: 本文翻译供个人研究学习之用,不保证严谨与准确 github链接:https://github.com/WithHades/network_traffic_classification_pa ...
- 决策树详解python基于Kaggle的Titanic数据实现决策树分类
决策树详解&&python基于Kaggle的Titanic数据实现决策树分类 一 决策树算法详解 1.前期准备 实验目的准备 2.决策树概述 2.1 决策树 2.2 ID3算法原理 2 ...
- 基于RBF神经网络的信用分类方法
简要介绍金融数据挖掘,RBF神经网络.提出基于RBF神经网络的信用分类的一种方法.此方法可根据客户提供的烦多而复杂的资料数据来评估客户信用的好坏.发挥RBF神经网络模拟生物体中神经网络的某些结构和功能 ...
- 基于金融知识图谱的会计欺诈风险识别方法
点击上方蓝字关注我们 基于金融知识图谱的会计欺诈风险识别方法 陈强1, 代仕娅2 1 兴业银行信息科技部,上海 201201 2 蚂蚁科技国际事业群数据算法技术部,上海 200120 摘要:针对商业银 ...
- 基于卷积神经网络的高光谱分类 CNN+高光谱+印度松数据集
基于卷积神经网络的高光谱分类 一.研究现状 只考虑到高光谱图像的光谱特征,即: 1.提取特征(小波变换.Gabor纹理分析.形态学剖面) 2.利用分类方法分类(支持向量机.决策树.随机森林.神经网络) ...
最新文章
- unused function warning message(转)
- java类加载器_类加载器ClassLoader
- Surviving the Release Version
- Unity3D——C#编译到运行的过程分析
- mysql5.6 临时表_MySQL5.6 运用临时表做SQL优化
- 决定项目生死的关键:是商业模式,而不是成本
- Elastic Jeff Yoshimura:开源正在开启新一轮的创新 | 人物志
- Try-Catch 包裹的代码异常后,竟然导致了产线事务回滚!| 原力计划
- 解决一个Android Studio gradle的小问题
- mysql长连接_mysql.connector 数据库长连接
- Delphi Sysem.JSON 链式写法(转全能中间件)
- 【电机学】电机绕组方式
- DELL官方证实:NVIDIA史上最大显卡质量事故
- Lenovo Server Guide Install Windows Server 2008 R2
- Unity动作游戏大全
- MySQL的多表操作
- m1发卡器支持java_友我M1卡通用版的发卡充值软件
- 罗永浩又双叒叕diss苹果了
- Commander入门
- 网络设备模拟器Packet Tracer教程