APP下载

林业样地的数据清洗方法研究及其应用

2020-07-17徐旭平张振中

安徽工程大学学报 2020年3期
关键词:样地类别聚类

刘 海,徐旭平,周 蔚,张振中

(1.国家林业和草原局华东调查规划设计院,浙江 杭州 340019;2.安庆师范大学 计算机与信息学院,安徽 安庆 246133)

随着社会高速发展,人们逐步跨入数据爆炸式增长的信息时代。数据准确无误才能真实地反映现实状况,而真实世界中脏数据无处不在,数据不正确或者不一致等问题严重影响数据分析的结果[1]。数据清洗技术在数据分析与管理的过程中起到越来越大的作用。以林业行业为切入点,研究基于分类、聚类算法的数据清洗方法在林业样地数据上的应用,对林业信息数据处理与使用过程中遇到的林业脏数据问题做出了一定的探索。

1 数据质量与林业脏数据

数据质量是指数据在应用中数据来源的可信程度,主要是指在正确的地点和时间,能将正确的数据提供给正确的业务人员,并能以此做出正确的决策[2]。目前学术界尚未有通用的数据质量定义,但可以从文献中提炼出数据质量的5个重要指标[4]:一是数据准确性,指数据是否被准确地记录。林业样地数据的准确性一般受外业调查是否出现差错和内业处理过程中是否产生错误的影响。二是数据完整性,指数据是否覆盖到所有与主体问题相关的方面。数据的完整性越高,数据价值越容易被挖掘,数椐越容易利用。林业样地数据一般包含了地类、地形、植被类型、树种、胸径、树高、土壤等诸多因子,完整的多因子数据更有利于体现数据质量。三是数据唯一性,指相同的数据是否只记录了一次。同一个实体数据的重复记录会影响数据质量,导致统计分析的结果或者数据挖掘结果与实际产生偏差。四是数据时效性,指数据的时间是否处于有效时间范围内。相对而言,现有林业行业的调查时效性受多方面因素制约,尺度范围相对较大,基本是以年为单位,但是如果样地调查,如森林资源连续清查的时间连续性遭到破坏,那么数据的质量则会大打折扣。五是数据一致性,指数据是否与自身发生冲突。林业数据的一致性较差,会导致在构建模型参数时产生较大偏差,从而使得数据分析结果不够准确。林业脏数据常见的类型及出现的原因如表1所示。

2 数据清洗的定义与算法

2.1 数据清洗的定义

数据清洗译自外文Data cleaning,在部分数据清洗的文献资料中也有用Data cleansing 或者Data scrubbing来表示,主要表示清除错误和不一致数据的过程,并需要解决孤立点和元组重复问题[4]。数据清洗并不是仅仅对脏数据进行检测和修正,还涉及在属性维度以及数据层面的整合与分解,其主要应用在3个领域,分别是数据仓库、知识发现(数据挖掘)和数据信息质量管理。

表1 林业脏数据常见的类型、来源及举例

2.2 数据清洗的算法

数据清洗算法主要是面向异常记录检测、重复记录检测等实例层的问题[5],采用统计学方法、数据挖掘与模式识别及预定义清洗规则[6]等方式,对数据进行清洗。

(1)面向异常记录检测的数据清洗算法。面向异常记录检测的统计学方法是将数据中的属性看作是随机变量,拟合建立数据模型,分析变量间关系,对数据进行评估与预测。其中,最常见的是卡方检验和回归分析。卡方检验是一种常见的非参数假设检验方法,主要是对两个分类变量之间的相关程度进行关联性分析,比较统计理论频数和实际频数的拟合程度,其计算公式为:

(1)

式中,Ai为i水平的观察频数;Ei为i水平的期望频数;n为总频数;pi为i水平的期望频率。

回归分析是一种确定两个及其以上变量间相互依赖关系的定量统计分析方法,按照自变量和因变量之间的关系,可分为线性回归分析和非线性回归分析,常用的回归分析有多元线性回归、逻辑回归、逐步回归等。面向异常记录检测的数据挖掘与模式识别方法,主要采用聚类和分类的思想,发现数据集中不符合现存模式的异常数据。

聚类的方法主要是在不确定类别的情况下,利用数据的相似度将数据聚合成不同的类别,剔除异常数据。常用的聚类方法主要是基于距离、密度、连通性、概念4个层面的相似度进行聚类,其中较为常见的是基于距离和密度的分类方法,如K均值(K-means)算法、均值漂移(Meanshift)算法、基于密度聚类(DBSCAN)算法、基于高斯混合模型的最大期望(GMMs)算法等。

K-means算法首先选取一些数据组,随机初始化得到各自的中心点,然后计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类,再计算每一类中心点作为新的中心点,重复迭代,得到最终的聚类。值得注意的是在随机初始化中心点的时候,可以采用多次随机,选取迭代最优的结果。K-means算法的优势在于相对较为简单,因此运算也较快,单局限性在于需要事先确定类别的数量。

Meanshift算法是基于质心的圆形滑动窗口算法,通过将中心点的候选点不断更新为滑动窗口内点的均值来完成,然后对这些候选窗口保留最多点进行相似窗口进行去除,最终形成中心点集及相应的聚类。Meanshift算法的优势在于可以不需要事先确定类别的数量,但是需要确定滑动窗口的半径,如果经验不足,也会存在一定的盲目性。

DBSCAN算法是首先确定半径和临界值,然后从任意一个没有被访问过的数据点开始,判断以这个点为中心的圆内是否包含的点的数量大于或等于临界值,如果大于或等于临界值则该点被标记为中心点,反之则会被标记为噪声点,然后重复,如果一个噪声点存在于某个中心点的圆内,则这个点被标记为边缘点,反之仍为噪声点,直到所有的点都被遍历。DBSCAN算法与Meanshift算法一样,也不需要知道类别的数量,但更需要经验和一定的尝试去寻找更优的半径和临界值。

GMMs算法的前提是假设数据点是呈高斯分布的,采用均值和标准差来作为分布参数,因此多采用EM最大期望算法做优化,其步骤与K-means算法类似,只不过是将距离换成均值和标准差。GMMs算法由于满足高斯分布,因此聚类形成的就不单单是圆,而是椭圆,而且得到的数据聚类是混合的,也就是一个数据可以对应多个类,以概率的形式进行展示,如“数据i,80%属于A类,20%属于B类”。

分类的方法主要是在已知确定类别的情况下,寻找数据内部的关系,分成相应的类别,剔除孤立数据,也就是脏数据。常用的分类方法有朴素贝叶斯分类(NBC)算法、支持向量机(SVM)算法、决策树(包括ID3、C4.5、C5.0、CART)算法、随机森林算法、K近邻(KNN)算法、人工神经网络(ANN)算法等。NBC算法是基于贝叶斯原理的一种后验算法,假设每个输入变量是独立的,即对于样本集D,特征集X={x1,x2,…,xd}相互独立且随机,则对于分类集Y,由贝叶斯公式:

(2)

进行分类计算。显然NBC算法逻辑简单,运行速度快,但是由于对输入变量要求相对较高,实际应用中特征集属性之间相关性很难完全避免,因此,往往只适用于一些特定的环境中。

SVM算法是一种有监督的机器学习算法,首先建立一个超平面:

ωTX+b=0,

(3)

以Y=±1为边界,上间隔边界上方的样本属于正类,在下间隔边界下方的样本属于负类,然后利用边距可以构建目标函数,并求解:

(4)

式中,m为约束条件数量;n为记录数。

SVM算法的求解可以使用二次凸优化问题的数值方法,例如内点法和序列最小优化算法,在拥有充足学习样本时也可使用随机梯度下降。SVM算法通过映射可以解决高维和非线性问题,因此在小数据集的情况下分类效果一般较好,但是面对大数据集,训练相对困难,而且主要面向二分类问题,多分类需要另作处理,相对麻烦。

决策树算法是一种有监督的机器学习算法,其基本思想首先是从根节点开始,对实例的某一特征值进行测试,然后根据测试结果将实例分配到其子节点,此时每个子节点都对应着该特征的一个取值,如此递归地对实例进行测试并分配,直到到达叶节点,最后实例就被完全分到叶节点的类中。其中,ID3算法的核心是在决策树各个结点上采用对应信息增益作为选择特征的选择,递归地构建决策树;C4.5算法则将信息增益比作为选择特征的标准;C5.0 则是在此基础上,引入Boosting 技术以提高分类的效率和精度;CART算法相对特别,确定树型为二叉树,采用最小二乘法,以基尼系数替代熵。决策树算法总体上相对直观,可视化效果好,可以解决多分类问题,但是可能受数据影响较大,出现过拟合化,即便通过修剪,结果可能也不够稳定。

随机森林算法可以看作是决策树算法的一个升级,不仅对样本进行了重采样,而且对特征也进行了随机选取,形成多棵树,再通过投票的方式决定数据分类。显然随机森林算法的抗过拟合化和稳定性都比决策树算法大大提高,但是相应的时间复杂度和计算成本也提高了,对数据依赖性较强的问题没有得到根本性的改善。

KNN算法与K-means算法类似,是一种主要依靠测量特征值之间的距离来进行分类的方法,首先计算已知类别数据集中的点与当前点之间的距离,然后按照距离递增次序排序,再选取与当前点距离最小的k个点,接着确定前k个点所在类别的出现频率,最后返回前k个点所出现频率最高的类别作为当前点的预测分类。KNN算法的精度相对较高,对数据依赖性相对较弱,但是计算成本相对较高,可解释性相对较差。

ANN算法是一种仿生物神经元结构的机器学习训练算法,由多个输入组成一个输入层,然后经由多层的隐层神经网络,最终得到唯一的输出层,其中最主要的环节就是构建隐层神经网络,主要通过线性映射及相应权重,加上隐层里传递的激活函数如sigmoid函数、tanh函数、relu函数等,如果是bp神经网络,增加一个反向传递,修正误差。ANN算法又可根据隐层的深浅,划分为浅层神经网络SNN和深层神经网络DNN。DNN里又可以引入卷积的方法,形成了卷积神经网络CNN,对图像及语音数据有较好的分类效果,并且大大降低了DNN的计算成本;当需要引入时间序列时,即在隐层里也有输出,形成循环神经网络RNN。ANN算法分类精度相对较高,对复杂的线性与非线性问题都可以有较好的鲁棒性和容错性,但所需样本量要求相对较高,网络结构、权重参数、阈值等训练过程对经验有一定要求,否则,可能耗费大量时间在调参过程上,使得计算时间进一步增加。

(2)面向重复记录检测的数据清洗算法。面向重复记录检测的数据清洗算法,思路相对简单,一类是直接字段匹配的算法,也可以加入递归的思路,处理子串顺序颠倒及缩写等的匹配,优势在于直观精准,但是相对时间复杂度较高;一类是基于文本的关键字匹配或者相似度匹配,如基于编辑距离的字段匹配算法、Cosine 相似度函数等[7]。林业样地数据中大多文本字段不存在数据清洗问题,因此研究不展开讨论。

3 林业样地数据中数据清洗的应用

林业样地数据一般是由外业调查得到,并且有数十上百个因子,其中最常见的脏数据是树种因子和胸径、树高、蓄积等测树因子两类因子出现错误或者缺漏。当数据出现错误时,数据清洗问题转化为聚类分类问题;当数据出现缺漏时,数据清洗问题转化为预测拟合问题。

3.1 采用分类算法的林业样地数据清洗研究

研究选取了安徽省2019年9个区县785个林业样地的数据,通过spss modeler软件进行处理和计算。首先采用分类的思想,以地形和树种为分类变量,以实地测树因子及激光雷达遥感测树因子共100个自变量,活立木蓄积量为目标变量,使用自适应阈值。由于林业样地数据中对样木的蓄积量有条件约束,因此不能保证满足相互独立且随机,因此NBC算法并不合适;分类变量为多分类,因此SVM算法也不适用;随机森林算法作为决策树算法的一种升级,因此在本次研究过程中,分别运用多元线性回归、随机森林算法、ANN算法,对数据进行清洗,清洗结果如图1所示。

其中三种方法清洗出的异常数据有55个为完全重复,仅有一个方法清洗出去的个数分别为7、2、2,经过人工检测,其中分别有6、1、2个为异常数据。从分类拟合决定系数角度来看,相较于原始数据均有较高的提升;从算法计算时间角度比较,分别是0.57 s,4.5 s,211 s。提升效果与计算时间呈正相关性,在样地数据量不大的情况下,计算时间在生产应用中都可以接受。从实验结果上看,ANN算法剔除异常数据最为准确,但由于算法稳定性较好,对数据敏感度一般,所以可能出现剔除不够完全的现象,而且在实际应用过程中,调试算法参数也耗费了大量时间;随机森林算法剔除数据也较为准确,由于是自行重采样,因此调试算法参数时间相对较少,但剔除不够完全的现象相对较多;多元线性回归算法需要调整参数最少,计算时间也最短,所以总用时也最少,计算方便,结果直观,但从决定系数的提升效果来看,如果样本量大大提高,可能错检现象会增多。因此在具体生产实际中,应根据数据量大小、总耗时及精度要求的不同,酌情选取相应的算法。

3.2 采用聚类算法的林业样地数据清洗研究

图1 多种分类数据清洗算法数据量和决定系数的变化

图2 不同类别数聚类数据清洗算法剔除异常数据的变化

同样的数据,采用聚类的思想,自变量、目标变量不变。对于林业样地数据来说,聚类的半径和临界值相对于类别数目来说更难确定,所以Meanshift算法和DBSCAN算法相对不适宜采用;而GMMs算法除了对类别数需要确定以外,还需要对类别的比例进行确定,并且算法可以提供的混合聚类的优势,在这一情况下没有明显作用,因此研究采用K-means算法,将类别数范围设定为5~15,以2%为最小异常指数,剔除的异常数据如图2所示。由图2可以看出,聚类算法中,类别数对数据清洗的影响还是比较明显的,从数据清洗的质量上来说,整体上剔除的异常数据90%以上均为合理的,单次计算运行时间差异不大,均在100 s以内。聚类算法的优势在于可以不确定具体的类别,在样地数据残缺或者数据异常情况比较严重的时候效果会更加显著,对样本数据进行了整体把控之后,设定类别数范围,就可以进行有效的数据清洗了,但是如果对样本数据整体情况了解不足,类别数量的设定不合理,数据清洗结果将大打折扣。当类别非常明确时,聚类算法可以作为分类算法的一种有效验证。

4 结论

研究主要介绍了数据清洗的相关概念和算法,并以此为基础,对林业样地数据进行数据清洗的应用,效果相对较好,可以大大减轻人工成本。在应用过程中可以看出,算法和经验参数均对清洗结果均有影响,因此在流程化处理林业数据清洗问题时,在不同的场景下应合理选择相应的算法,并且需要对经验参数、算法优化上有更为深层的研究以提升应用效率。大数据和多源数据使用场景日益增多,相关领域研究及其应用前景广泛。

猜你喜欢

样地类别聚类
一种傅里叶域海量数据高速谱聚类方法
仁怀市二茬红缨子高粱的生物量及载畜量调查
额尔古纳市兴安落叶松中龄林植被碳储量研究
论陶瓷刻划花艺术类别与特征
基于角尺度模型的林业样地空间结构分析
辽东地区不同间伐强度对水曲柳林分生态效益的影响
一起去图书馆吧
面向WSN的聚类头选举与维护协议的研究综述
改进K均值聚类算法
基于Spark平台的K-means聚类算法改进及并行化实现