[神经网络] 二、使用 BP 神经网络拟合多输入多输出曲线

作者:解琛
时间:2021 年 2 月 3 日

二、使用 BP 神经网络拟合多输入多输出曲线

列表中的数据是某地区20年公路运量数据,其中属性 人口数量机动车数量公路面积 作为输入,属性 公路客运量公路货运量 作为输出。

请用神经网络拟合此多输入多输出曲线。

年份 人口数量/万人 机动车数量/万辆 公路面积/万平米 公路客运量/万人 公路货运量/万吨
1990 20.55 0.6 0.09 5126 1237
1991 22.44 0.75 0.11 6217 1379
1992 25.37 0.85 0.11 7730 1385
1993 27.13 0.9 0.14 9145 1399
1994 29.45 1.05 0.2 10460 1663
1995 30.1 1.35 0.23 11387 1714
1996 30.96 1.45 0.23 12353 1834
1997 34.06 1.6 0.32 15750 4322
1998 36.42 1.7 0.32 18304 8132
1999 38.09 1.85 0.34 19836 8936
2000 39.13 2.15 0.36 21024 11099
2001 39.99 2.2 0.36 19490 11203
2002 41.93 2.25 0.38 20433 10524
2003 44.59 2.35 0.49 22598 11115
2004 47.3 2.5 0.56 25107 13320
2005 52.89 2.6 0.59 33442 16762
2006 55.73 2.7 0.59 36836 18673
2007 56.76 2.85 0.67 40548 20724
2008 59.17 2.95 0.69 42927 20803
2009 60.63 3.1 0.79 43462 21804

预测结果如下。

output

实现的代码如下。

#!/usr/bin/env python
# coding=utf-8
# 作者:解琛;
# 功能:神经网络进行多输入多输出的拟合;
# 时间:2020 年 2 月 3 日;
# 备注:无。

import numpy as np
import matplotlib.pyplot as plt

def getSrcData():
    '''获取原始数据;'''
    # 初始化的输入数据;

    # 人口数量;
    population = [
        20.55, 22.44, 25.37, 27.13, 29.45, 30.10, 30.96, 34.06, 36.42, 38.09,
        39.13, 39.99, 41.93, 44.59, 47.30, 52.89, 55.73, 56.76, 59.17, 60.63
    ]

    # 机动车数量;
    vehicle = [
        0.6, 0.75, 0.85, 0.9, 1.05, 1.35, 1.45, 1.6, 1.7, 1.85, 2.15, 2.2, 2.25,
        2.35, 2.5, 2.6, 2.7, 2.85, 2.95, 3.1
    ]

    # 公路面积;
    roadarea = [
        0.09, 0.11, 0.11, 0.14, 0.20, 0.23, 0.23, 0.32, 0.32, 0.34, 0.36, 0.36,
        0.38, 0.49, 0.56, 0.59, 0.59, 0.67, 0.69, 0.79
    ]

    # 初始化输出数据;

    # 公路客运量;
    passengertraffic = [
        5126, 6217, 7730, 9145, 10460, 11387, 12353, 15750, 18304, 19836, 21024,
        19490, 20433, 22598, 25107, 33442, 36836<
内容概要:本文档详细介绍了使用Python实现遗传算法(GA)优化BP神经网络输入多输出项目实例。文档首先阐述了项目背景,指出传统BP神经网络存在的局限性,如易陷入局部最优和收敛速度慢等问题,并提出通过遗传算法优化BP神经网络来克服这些问题。项目的主要目标包括优化网络权值、自动设计网络结构、提高泛化能力和适应种应用场景。文中还讨论了项目面临的挑战,如计算复杂度高、参数选择困难等,并提出了相应的解决方案。此外,文档详细描述了项目的模型架构,包括数据预处理模块、BP神经网络模块、遗传算法模块、优化与训练模块以及预测与评估模块。最后,通过效果预测图展示了优化后的BP神经网络在预测精度和收敛速度上的显著提升。 适合人群:具备一定编程基础,特别是对机器学习神经网络有一定了解的研发人员和研究人员。 使用场景及目标:①通过遗传算法优化BP神经网络,解决传统BP神经网络在训练过程中易陷入局部最优、收敛速度慢的问题;②自动设计网络结构,减少人工设计的复杂性;③提高模型的泛化能力,避免过拟合;④适用于时间序列预测、模式识别、分类与回归、控制系统、医疗诊断、智能推荐系统和能源管理等个实际应用场景。 其他说明:此项目不仅提供了详细的理论解释和技术实现,还附带了完整的Python代码示例,帮助读者更好地理解和实践。建议读者在学习过程中结合代码进行调试和实践,以加深对遗传算法优化BP神经网络的理解。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解琛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值