美文网首页
非线性关系用线性拟合和人工神经网络拟合的对比分析

非线性关系用线性拟合和人工神经网络拟合的对比分析

作者: 徘甚 | 来源:发表于2017-06-21 20:29 被阅读0次

    实际应用中有很多非线性关系的变量很迷惑人,让人误用(多元)线性回归,这篇文章对比分析了线性回归和人工神经网络对这种变量的拟合,然后介绍下这种误用带来的后果,同时也会加深我们对人工神经网络的理解。

    一、多元线性回归(MLR)与人工神经网络(ANN)--有模式

    我们用数学上一个人人皆知的例子,矩形面积= 长*宽,假如一个研究人员不知道矩形面积与长和宽的关系,他想以长和宽为输入变量用多元线性回归去拟合矩形面积,然后我们看下结果。

    1、数据介绍

    本文的数据主要用MATLAB来随机产生,这些数据分为三组,即原始数据、测试数据1和测试数据2,如下图:

    1)原始数据为arealengthwide,用来做MLR公式和作为ANN的训练数据, lengthwide的数据范围皆为 1-100。

    2)测试数据1为test_area, test_lengthtest_wide,用来带入上面MLR公式和ANN训练函数,检验效果如何。这里的test_lengthtest_wide的数据范围和上面的一样都在1-100之间。

    3)测试数据1为test_area_2, test_length_2test_wide_2,同样用来检验效果,只是数据在原始数据范围外,即100-200之间。

    2、结果评估

    我们用拟合出来的结果与真实值(即test_areatest_area_2)的mean squared error(MSE)和相关系数R^2来评估拟合效果。

    3、结果

    3.1、得到MLR公式

    这里用Excel的数据分析——回归直接得到变量lengthwide的系数与截距,R^2看起来还不错0.83。然后我们把测试数据1和测试数据2直接带入即可。

    3.2、得到ANN训练函数

    采用前馈神经网络,以lengthwide为输入,area为target进行训练,隐含层(hidden neurons)用5个,MSE相当低,R^2基本接近1,如下图,然后我们生成函数,待会直接输入测试数据1和测试数据2的长和宽即可。

    3.3、测试数据1结果对比

    如下图,看总体趋势都还比较好,但MLR的MSE远远大于ANN的,注意这里的MSE没有进行数据标准化计算,所以我们看到虽然MLR的MSE那么大,但是预测结果是可以的;而ANN的拟合结果很明显更好。

    3.4、测试数据2结果对比

    这里就能看出区别了,虽然MLR的趋势跟真实值差不太多(R^2挺高的),但是误差太大了(MSE要比ANN的拟合结果大3个数量级),相比而言,ANN表现就非常好了,他好像聪明地观察到了面积=长*宽这个规律,因为恰巧我们的输入变量是符合这个规律的,他才有机会学得到,而那个用多元线性回归的研究人员就没那么幸运了。假如我们的输入变量里没有长或者宽会是怎么样呢?还能得到如此好的预测结果吗,看第二部分"线性回归(LR)与ANN--无模式"

    二、线性回归(LR)与ANN--无模式

    我们同样用数学上类似的数据,只不过这次我们用周长和矩形面积,假如一个研究人员不知道矩形面积与周长关系,他观察周长越大面积就越大,于是以线性拟合去找他们之间的关系,然后我们看下结果。

    1、数据介绍

    数据分为三组,即原始数据、测试数据1和测试数据2,如下图:

    1)原始数据为areaperimeter,用来做LR公式和作为ANN的训练数据, perimeter的数据范围为 4-400(因为是用上面的数据范围皆为 1-100的lengthwide产生的)。

    2)测试数据1为test_areatest_perimeter,用来带入上面LR公式和ANN训练函数,检验效果如何。这里的test_perimeter的数据范围和上面的一样在4-400之间。

    3)测试数据1为test_area_2test_perimeter_2,同样用来检验效果,只是数据在原始数据范围外,即400-800之间(用上面的test_length_2test_wide_2产生的)。

    2、结果评估

    同样用MSE和R^2

    3、结果

    3.1、得到线性拟合公式

    如图,看起来也还不错


    3.2、得到ANN训练函数

    采用前馈神经网络,以perimeter为输入,area为target进行训练,隐含层(hidden neurons)用5个,训练结果如图,MSE这次挺高了,注意MSE是平方了的(所以标准的ANN做法是先把数据标准化),看下面的残差直方图更直观一些,area的平均值才2400左右,残差最高到了1000多,R^2还不错,然后我们生成函数,待会直接输入测试数据1和测试数据2的周长即可。

    3.3、测试数据1结果对比

    这个因为测试数据与原始数据的输入在一个范围内,所以看起来都还可以,趋势基本完全吻合,看MSE和R^2,似乎ANN略胜一筹。

    3.4、测试数据2结果对比

    如图,线性回归(LR)和ANN拟合的都不太好,MSE基本在同一个水平,ANN的略低一些,但是LR的趋势似乎跟真实值更吻合一些。
    在这里ANN好像学不到我们用随机数得到的周长跟面积的关系,因为周长跟面积本来就没有什么模式可言,对于没有模式的东西,ANN似乎无能为力,但是他能在力所能及的范围内给你预测,就像上面的测试数据1的结果还是可以的,因为训练的数据与测试的数据范围是一致的,而在数据范围一致的情况下,用LR效果也看似很好。然而我们不要忘了,周长与面积是并没有线性关系的

    三、MLR与ANN--混合输入

    紧接着,如果我们不知道面积与长、宽和周长这三者的关系,把这三个变量都输进去,然后再用MLR和ANN的方法,当然因为周长 = (长+宽)*2,所以MLR的方法肯定有一个参数为0。测试数据直接选用原始数据外的,因为我们知道在原始数据范围内的拟合结果肯定都还可以接受,直接看结果,如图,ANN表现良好,MLR还是不行。


    同样我们只输入长和周长这两个变量呢,结果是一致的,ANN拟合很好,MLR很差(MLR结果跟上面的一模一样的,因为长、宽和周长三个变量间存在线性关系的)。

    以上分析我们可以看出ANN拟合的优越性,如果不知道目标变量与哪些变量可能存在关系以让ANN学习,不如尝试多输入一些!当然尽管存在一些局限,多元线性回归也是一种很有用的技术

    相关文章

      网友评论

          本文标题:非线性关系用线性拟合和人工神经网络拟合的对比分析

          本文链接:https://www.haomeiwen.com/subject/mzmtcxtx.html