技术领域
本发明涉及一种基于遗传算法的分类规则阈值优化方法,涉及基于遥感影像的分类、数据挖掘等技术领域。
背景技术
随着大数据等技术的进步,人们已不再满足于仅获取较好的分类结果,开始挖掘产生这一分类结果的分类规则。在遥感影像分类方面,人们已通过大量实践总结了一系列的分类规则,如归一化植被指数(NDVI)可以识别植被。但是,这类规则的阈值是变化的,如植被的类型、植被的生长状况均会影响NDVI值。那么,为了应用这些规则,需要手动调整阈值,并使用目视方法判断阈值的可用性。当分类规则涉及多个指标时,这些阈值将难以高效调整。
遗传算法通过模拟群落在自然筛选情况下的进化过程,可以对分类规则的各指标阈值进行迭代优化,获取最贴近当前区域的阈值。应用更新后的分类规则,可以获取相对更新前更优的分类结果,也可以克服区域研究区域调整、影像成像时间不同等带来的差异。
目前,基于遗传算法的分类规则阈值优化方法还未见报道。
发明内容
为了解决现有的遥感技术难以高效调整分类规则阈值的问题,本发明提供一种基于遗传算法的分类规则阈值优化方法。
本发明为解决技术问题所采用的技术方案如下:
本发明的一种基于遗传算法的分类规则阈值优化方法,包括以下步骤:
步骤一、准备遥感数据,包括现有分类结果数据和分类特征数据;
步骤二、根据所提供的分类规则拆分出此分类规则所涉及的分类特征和阈值,所提供的阈值作为遗传算法的推荐解;
步骤三、统计分类特征在分类特征数据中的值域,用于约束遗传算法的优化过程;
步骤四、初始化遗传算法,将步骤三中得到的分类特征在分类特征数据中的值域范围作为阈值的下限和上限,指定推荐解为步骤二中提供的阈值;
步骤五、创建遗传算法的评估函数,根据分类规则及相应阈值进行分类,与现有分类结果数据进行比较并计算错误率,将此错误率作为评估函数的适应度;
步骤六、创建遗传算法的监控函数,记录每一代的最小错误率,并在最小错误率不再改变时结束迭代;
步骤七、重复步骤四至步骤六对遗传算法进行迭代,直至当前最小错误率不再改变,得到一系列阈值和对应的最小错误率,最小错误率对应的阈值即为优化阈值。
进一步的,步骤一中,选择2019年吉林向海国家级自然保护区的部分湿地解译结果作为现有分类结果数据;利用Google Earth Engine云平台将相关特征合并成为一幅影像作为分类特征数据。
进一步的,步骤三中,采用R语言quantile函数获取1%分位数作为阈值下限,获取99%分位数作为阈值上限。
进一步的,步骤四中,基于R语言genalg包rbga函数初始化遗传算法,将计算的阈值下限、阈值上限、推荐阈值传递给初始化函数,种群规模设为200,迭代次数设为100,变异率为0.01。
进一步的,步骤五中,编写遗传算法的evalFunc函数,首先记录遗传算法产生的随机阈值,然后根据分类规则所涉及的分类特征和这些随机阈值进行分类,获取分类结果;将分类结果与现有分类结果逐像素比较,计算错误率作为适应度。
进一步的,步骤六中,编写遗传算法的monitorFunc函数,首先获取并记录当前迭代种群下的最小错误率,然后查找记录中前30次迭代的逐代最小错误率,若当前最小错误率不再改变,对应的30个最小错误率的方差为0,则中止优化,否则继续进行优化。
进一步的,步骤六中,最小错误率不再改变的判定方式采用差分求和方法。
进一步的,步骤七中,运行rbga函数,不断迭代优化,直至最小错误率不再改变,得到一系列阈值和对应的最小错误率,最小错误率对应的阈值即为优化阈值,并更新规则。
本发明的有益效果是:
本发明基于现有分类结果、分类特征与分类规则,根据分类规则准备遥感分类特征数据和现有分类结果数据,查找分类规则涉及的特征并计算其值域,统计所涉及的分类特征值域作为阈值优化的下限和上限,并将所提供分类规则的阈值作为推荐阈值;初始化遗传算法获得一系列随机阈值,并在评估函数中根据规则和随机生成的阈值对遥感分类特征数据进行分类,与现有分类结果数据比较并计算错误率,以此作为当前阈值的适应度;在监控函数中记录每一代的最小错误率,并在最小错误率不再改变时提前结束迭代以提升优化效率,保证计算的高效性;运行遗传算法,在最小错误率不再改变或达到指定迭代次数时,得到一系列阈值和对应的最小错误率;其中,最小错误率对应的阈值即为分类规则适配到当前区域的优化阈值。
本发明克服了分类规则涉及多个指标时目视判断方法难以有效优化其阈值的问题。本发明所涉及的分类规则阈值优化方法快捷有效,提高了分类规则阈值优化的准确度和效率,对基于规则的遥感分类方法具有极其重要的意义。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1为分类规则所涉及特征合成的影像与现有的湿地分布数据。
图2为遗传算法逐代的最小错误率。
图3为遗传算法产生的阈值和相应的错误率。
图4为优化前湿地分类规则产生的分类结果与现有的湿地分布数据。
图5为优化后湿地分类规则产生的分类结果与现有的湿地分布数据。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明的一种基于遗传算法的分类规则阈值优化方法,主要包括以下步骤:
步骤一、准备遥感数据,包括现有分类结果数据和分类特征数据。
其中,选择2019年吉林向海国家级自然保护区的部分湿地解译结果作为现有分类结果数据;利用Google Earth Engine云平台将相关特征合并成为一幅影像作为分类特征数据。具体为:利用Google Earth Engine云平台获取2019年5月到2019年10月的Sentinel-1SAR影像和Sentinel-2MSI影像,根据所提供的2020年湿地识别规则“B5<1500&VH/VV>=1.5&(B3-B11)/(B3+B11)>=-0.5”计算相应的分类特征,其中,B3表示Sentinel-2卫星的波段3(绿波段),B5表示Sentinel-2卫星的波段5(红边波段1),B11表示Sentinel-2卫星的波段11(短波红外波段1),VH表示Sentinel-1卫星的VH波段(垂直发射、水平接收),VV表示Sentinel-1卫星的VV波段(垂直发射、垂直接收),并合并成为一幅影像(如图1所示)。
步骤二、根据所提供的分类规则拆分出这一分类规则所涉及的分类特征和阈值。其中,所提供的阈值作为遗传算法的推荐解以及迭代的起始。所提供的分类特征数据由所提供的分类规则决定。
此处所涉及的分类特征分别为B5、VH/VV和(B3-B11)/(B3+B11),阈值分别为1500、1.5和-0.5。
步骤三、根据所提供的分类规则所涉及的分类特征统计分类特征在分类特征数据中的值域,用于约束遗传算法的优化过程。具体为:采用R语言quantile函数获取1%分位数作为阈值下限,分别为674.5、1.21和-0.635,获取99%分位数作为阈值上限,分别为3104、2.42和0.831。除了使用分位数范围,也可使用最值等。
步骤四、初始化遗传算法,指定优化阈值的最小值和最大值(将步骤三中得到的分类特征在分类特征数据中的值域范围作为阈值的下限和上限),指定推荐解为步骤二中提供的阈值。具体为:基于R语言genalg包rbga函数初始化遗传算法,将计算的阈值下限、阈值上限、推荐阈值传递给初始化函数,种群规模设为200,迭代次数设为100,变异率为0.01。
步骤五、创建遗传算法的评估函数,根据分类规则及相应阈值进行分类,与现有分类结果数据进行比较并计算错误率,将这一错误率作为评估函数的适应度。具体为:编写遗传算法的evalFunc函数,首先记录遗传算法产生的随机阈值,然后根据分类规则所涉及的分类特征和这些随机阈值进行分类,获取分类结果;将分类结果与现有分类结果逐像素比较,计算错误率作为适应度。
步骤六、创建遗传算法的监控函数,记录每一代的最小错误率,并在最小错误率不再改变时提前结束迭代,从而提升优化效率。具体为:编写遗传算法的monitorFunc函数,首先获取并记录当前迭代种群下的最小错误率,然后查找记录中前30次迭代的逐代最小错误率,若当前最小错误率不再改变(对应的30个最小错误率的方差为0),则中止优化,否则继续进行优化。最小错误率不再改变的判定方式较多,如差分求和等。
步骤七、重复步骤四至步骤六对遗传算法进行迭代,直至当前最小错误率不再改变,得到一系列阈值和对应的最小错误率,最小错误率对应的阈值即为优化阈值。具体为:运行rbga函数,不断迭代优化,直至最小错误率不再改变(如图2所示),得到一系列阈值和对应的最小错误率(如图3所示)。最小错误率对应的阈值即为优化阈值,并更新湿地识别规则为“B5<1123&VH/VV>=1.84&(B3-B11)/(B3+B11)>=-0.53”。
使用优化前的规则和优化后的规则分别进行分类,其最小错误率分别为15.4%和12.4%,得到的空间分布结果分别如图4和图5所示。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
机译: 程序以及相关的估计方法,基于混合结构遗传算法的多参数基于物质结构的优化方法,基于模式匹配的数据分析方法,辐射衍射数据,各种设备和记录介质
机译: 程序以及相关的估计方法,基于混合结构遗传算法的多参数基于物质结构的优化方法,基于模式匹配的数据分析方法,辐射衍射数据,各种设备和记录介质
机译: 遗传算法支持分类和汇总的多阶段PLM工艺优化方法