当前位置:首页 期刊杂志

数值预测算法比较研究*

时间:2024-07-28

钟华明,梁玉楠,曾少军

(中海石油(中国)有限公司湛江分公司,广东 湛江 524057)

0 引言

数值预测是对以往数据进行学习建立模型,并对输入的数据集进行数值预测。目前对数值预测的机器学习算法有很多,其中模型树、回归方程、神经网络、支持向量机都是常用的数值预测方法,每一种算法都有各自的特点及适用范围。数值预测的运用领域很广,有森林火灾的预测,地区房价的预测,台风的预测,电子产品的性能预测以及航天可靠性的预测等。其中,ONYARI E K和ILUNGA F M运用M5P模型树和神经网络对南非鲁武伏特河流域的河水流量进行预测[1];RAZA K和JOTHIPRAKASH V利用人工神经网络在气象站对气象参数进行预测[2];SATHYADEVAN S和CHAITRA M A利用线性回归对机翼的噪音进行预测[3];王定成等利用支持向量机回归对温室温度变化进行预测[4]。但是在何种数据类型的数据集上使用何种算法,目前还没有定论。

在研究数值预测算法的应用情况时,选取了四个常用的数值预测算法,应用在不同类型的数据集上进行比较研究,试图找出一些规律,供实践使用。

1 数值预测算法简介

1.1 M5P

M5P是对模型树改进的一种算法,它是基于树结构用来处理连续值的机器学习技术。模型树[1,5-7]是在叶节点储存了能够预测到达叶节点的实例类值的一个线性回归模型的树,其表现形式类似于决策树根据属性值判断由该节点引出的分支,在决策树的叶节点得到结论。叶节点包含有一个基于部分属性值的线性模型,使测试实例得到一个测试值。M5P模型树具有以下的优点:(1)模型树简单易用,受残缺值影响小;(2)隐式进行变量筛选或者特征值选择;(3)不需要对训练集进行处理;(4)非线性关系的变量不影响树的性能;(5)树的结构更容易分析和解释。其模型如图1所示。

图1 模型树模型

1.2 Multilayer Perceptron

Multilayer Perceptron(多层感知器)[1,2,5,8],是一个使用反向传播进行训练的神经网络,是属于人工智能范畴的一种计算技术,它根据人们对生物神经网络的研究成果设计出来,具有良好的数学描述能力,可以方便地用计算机程序加以模拟。作为一种具有高度非线性映射能力的计算模型,它已被广泛应用于模式识别、自动控制等诸多领域。在数值预测方面,它不需要预先确定样本数据的数学模型,仅通过学习样本数据即可以进行相当精确的预测。其模型如图2所示。

图2 多层感知器模型

1.3 Linear Regression

Linear Regression(线性回归)[3,5]是统计学的一种常用的方法,它的主导思想是利用预定的权值将属性进行线性组合来表示类别:

hw(xi)=w0+w1x1+w2x2+…+wkxk

(1)

式中:hw为回归模型,wi为系数,xi为回归量。

线性回归不仅可以提供变量间相关关系的数学表达式,而且可以利用概率统计知识对此关系进行分析,以判别其有效性。还可以利用关系式,由一个或多个变量值,预测和控制另一个因变量的取值,进一步可以知道预测和控制达到了何种程度,并进行因素分析。

线性回归是一个出色的、简单的适合用于数值预测的方法,即使数据呈现非线性关系,线性回归将会找到一条最适合的曲线。

1.4 SMOReg

支持向量机回归理论与神经网络等非线性回归理论相比具有许多独特的优点,SMOReg[4,5,9]有线性回归和非线性回归,其模型的选择包括核的选择、容量控制以及损失函数的选择。在控制方面的研究包括非线性时间序列的预测及应用、系统辨识以及优化控制和学习控制等方面的研究。

支持向量机回归的基本思想是通过一个非线性映射Φ,将数据x映射到高维特征空间F,并在这个空间进行线性回归[11]。即:

f(x)=(ω·Φ(x))+b

Φ.Rn→F,ω∈F

(2)

式中:b为阈值,f(x)为特征空间,Φ为非线性映射,ω为高维空间。

这样,在高维特征空间的线性回归便对应于低维输入空间的非线性回归,免去了在高维空间ω和Φ(x)点积的计算。

2 实验使用的数据集

在该实验中所有的数据集均来自UCI,这些数据集都是用于回归且具有不同的数据属性类型,这样就可以用来比较不同的算法在不同属性的数据集上的表现。当然,在该实验中,为了更好地对同种属性进行实验结果比较,选择两组相同属性类型的数据进行实验。表1列出了这些数据集名称、默认任务、属性类型、实例数、属性数、数据集的用途。

表1 实验使用的数据集

3 实验结果分析

在weka 3.6调用相应的函数和模型,采用十折交叉验证法进行实验,测出各个算法在不同数据集上的均方误差,记录在表2中。

表2 不同算法应用于不同数据集的均方误差

注:NA-表示没结果

从表2中的数据发现除了在森林火灾和KDD Cup 1998数据集两个数据集中各个算法的均方误差存在较大的差异,在其他各个数据集上这四种算法的均方误差相差不大,在数值预测方面都能够到达较好的预测性能,但是希望能够找到应用在各种不同的数据集上的最优的算法,因此,对这四种算法的均方误差在不同的数据集上均方差的平均值进行一一比较。

从图3可以知道对于数据类型为Real的数据集,SMOReg表现最好,其次是Linear Regression,Multilayer Perceptron表现最差。从图4中可知对于数据类型为Integer的数据集Linear Regression表现最好,其次是SMOReg。从图5中可知对于数据类型为Categorical的数据集,四种算法表现相差不大,其中SMOReg表现最好,M5P表现次之。从图6中可知对于数据类型为Categorical、Integer、Real三种混合数据集,M5P表现最好,其次是SMOReg。从图7中可知对于数据类型为Categorical、Integer两种混合数据集,M5P表现最佳,其次是Multilayer Perceptron,Linear Regression表现最差。从图8中可知对于数据类型为Categorical、Real两种混合数据集,可以知道M5P表现最好,其次是SMOReg。从图9中可知对于数据类型为Real、Integer两种混合数据集,M5P表现最好,其次是SMOReg。

图3 四种算法在Real数据类型的应用结果分析

图4 四种算法在Integer数据类型的应用结果分析

图5 四种算法在Categorical数据类型的应用结果分析

图6 四种算法在三种混合数据类型的应用结果分析

图7 四种算法在Categorical,Integer数据类型的应用结果分析

图8 四种算法在Categorical,Real数据类型的应用结果分析

图9 四种算法在Integer、Real数据类型的应用结果分析

图10 同种算法应用于不同数据集的平均均方误差值对比

为了进一度分析每种算法的总体性能,将各种数据类型计算的均方误差进行算术平均,如图10所示。从图10可知四种算法在不同的数据集中,除了Real型数据集与Integer型数据集存在较大的差异,其他表现均相差不大。

M5P与Multilayer Perceptron比较,在Integer属性的数据集中当Integer数据量较多时,Multilayer Perceptron有较好的表现,其他情况M5P占优势。M5P与Linear Regression的比较,在数据属性为Real以及数据因果关系有较强的函数关系时,Linear Regression比M5P有优势。M5P与SMOReg比较,SMOReg在Integer数据属性和Categorical数据属性的数据集中有较好的表现,其他情况M5P占优势;Multilayer Perceptron与Linear Regression的比较,在含有Real的数据集且数据集较小的Integer数据集中,Multilayer Perceptron比Linear Regression表现稍差,但Multilayer Perceptron在Categorical及混合数据集中表现比Linear Regression要好。Multilayer Perceptron与SMOReg的比较,在Categorical、Integer两种混合数据集中,Multilayer Perceptron表现比SMOReg好。Linear Regression与SMOReg比较,Linear Regression在数据量较少且数据之间能行成函数关系的Integer数据集比SMOReg有优势。

综合上面所述,SMOReg与M5P在所有的数据集上表现最好,其中M5P在混合数据处理方面表现很出色,这是因为模型树能够通过节点间的平滑处理、不同属性间的处理、残缺值的有效处理降低了误差,能够形成较好的预测模型;Multilayer Perceptron对数据量较大且数据属性为Integer的数据集表现出色,这是因为在非线性数据量较大的Integer数据集,Multilayer Perceptron能够训练出好的预测模型;Linear Regression对数据因果关系能够形成函数关系的数据集比较有效,这是因为简单的线性回归在数据量较小的时候,能够实现函数拟合,形成较好的预测模型;SMOreg在数据属性类型为Real的数据集和数据属性类型确定范围的数据集有很大的优势,这是该算法的模型控制在一定宽度的管道上,算法预测的结果总是类的平均值,这样该模型比较适合Real数据属性的数据集,能够有效地降低预测误差。

4 结论

通过对数值预测的几种方法进行比较分析后得到以下几点结论:(1)当对Real和确定范围的数据属性类型处理时,首先考虑SMOReg算法;(2)处理数据量较大且数据属性为Integer的数据集时,首先考虑的算法为Multilayer Perceptron,否则考虑使用Linear Regression;(3)当处理混合属性类型的数据集时,首先应该考虑模型树M5P;(4)SMOReg与M5P表现比其他的算法都出色,当不能确定数据集类型时,选用这两种算法,均得到很好结果。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!