一、基于专家知识的决策树分类的基本介绍
决策树模型就是需要通过样本数据构建一棵树,数中除了叶子节点的每个节点都是一个数据特征的划分点,将待测数据的对应的特征和该节点上的划分特征做对比,然后将待测节点分到该节点的某个子节点上,然后再进行对比,直到叶子节点为止,然后判断待测数据的类型集合。
基于专家知识的决策树分类是基于遥感图像数据及其其他空间数据,通过对专家经验知识的总结、简单的数学统计和归纳方法等,获得分类规则并进行遥感分类。分类规则易于理解,分类过程也符合人的认知过程,最大的特点是利用多源数据。
本实验操作简单,但实际应用时,需要大量的知识和经验做积累,才能最大程度定义规则、实现分类。
基于专家知识的决策树分类总体上可分为四个过程:定义分类规则、构建决策树、执行决策树和评价分类结果。
二、操作流程
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 决策树运行结果
文章来源:https://www.toymoban.com/news/detail-496079.html
文章来源地址https://www.toymoban.com/news/detail-496079.html
到了这里,关于基于专家知识的决策树分类|以DEM+影像数据在ENVI操作为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!