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

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

一、多元线性回归(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之间。

4025027-be9c6a7dd51fef3d.png
2、结果评估

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

3、结果
3.1、得到MLR公式

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

4025027-4eeb51f17c21d8e4.png

3.2、得到ANN训练函数

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

4025027-0121006a6d047ef6.png
3.3、测试数据1结果对比

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

4025027-0fc86ae13261c024.png
3.4、测试数据2结果对比

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

4025027-0326798fa53adc5d.png

二、线性回归(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产生的)。

4025027-d293eaa9af215fa3.png
2、结果评估

同样用MSE和R^2

3、结果
3.1、得到线性拟合公式

如图,看起来也还不错


4025027-a58e52fdc1db1db7.png
3.2、得到ANN训练函数

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

4025027-30fb89f82999be8f.png
3.3、测试数据1结果对比

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

4025027-785865e4faa897f4.png
3.4、测试数据2结果对比

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

4025027-dd1809130fe80a5b.png

三、MLR与ANN--混合输入

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

4025027-ceac8f9c11dd19e2.png

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

4025027-a4cc3afb53e8d7fe.png
以上分析我们可以看出ANN拟合的优越性,如果不知道目标变量与哪些变量可能存在关系以让ANN学习,不如尝试多输入一些!当然尽管存在一些局限,多元线性回归也是一种很有用的技术
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值