Python 北京房价预测实验报告 深度学习 tensorflow keras

代码:计算机课程设计北京房价预测数据集和代码实现-机器学习文档类资源-CSDN文库

  1. 前言

随着经济的不断发展和社会资源的集中,人们出现了向大城市集中的趋势,其中,北京作为我国的首都,吸引人才的能力在中国和世界都具有较强的竞争力。与此同时,每个在北京生活的人都有在北京租房或买房的需求,这使得北京市的房价在近些年显得水涨船高。

年轻人在北京找到合适的工作后,如何根据自己的经济水平和能力在北京的不同区域选择适合自己的房子成为了一个凸显的难题。在互联网和大数据技术的指引下,传统的纸笔计算和实体中介已经无法让年轻人对北京房价的真实情况产生清晰直观的认识,对全局的把握不够完整也可能导致他们做出人生的错误决策。因此,本项目从链家网的开源资料中提取了若干条北京房价的数据,其中包括地段、户型、建造年份等详细信息以及房价指标,通过神经网络算法对这些数据进行深度学习,训练出一个可以根据这些信息较为准确预测北京房价的回归计算网络,在现实生活中具有较为广泛和实用的应用。

  1. 神经网络介绍

BP(Back Propagation)神经网络是一种具有三层或者三层以上的多层反向传播神经网络,每一层都由若干个神经元组成,它的左、右各层之间各个神经元实现全连接,即左层的每一个神经元与右层的每个神经元都由连接,而上下各神经元之间无连接。BP神经网络按监督学习方式进行训练,当学习方式提供给神经网络后,其神经元的激活值将从输入层经各隐含层向输出层传播,在输出层的各神经元输出对应于输入模式的网络响应。然后,按减少希望输出与实际输出误差的原则,从输出层经各隐含层,最后回到输入层(从右到左)逐层修正各连接权。由于这种修正过程是从输出到输入逐层进行的,所以称它为“误差逆传播算法”。随着这种误差逆传播训练的不断修正,网络对输入模式响应的正确率也将不断提高。

BP神经网络是一种前馈神经网络,是信号正向传播、误差反向传播的监督学习模型,是广泛应用的神经网络学习算法之一。具体来说,对于只含一个隐层的神经网络模型,BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。

激活函数(Activation Function)是BP神经网络的神经元上运行的一类函数,它的作用是将一层神经元的输入映射到输出。激活函数对BP神经网络模型进行机器学习训练的过程尤为重要。神经网络默认每一层的输入和输出之间都是线性关系,但现实生活中,很多模型中数据之间的关系非常复杂。运用激活函数可以将非线性的特征引入神经网络模型,可以使BP神经网络更好地理解复杂的现实数据。
       Dropout是一种机器学习中常见的技术,常用于防止神经网络出现过拟合。在神经网络的训练过程中,每次迭代按照设定的比例使隐藏层中部分神经元失效,使得神经网络层与层之间的依赖性不会过强,将BP(反向传播)的修正值更平均地分布在各神经元上。

作为一种局部逼近网络,BP神经网络能以任意精度逼近任何非线性映射。理论上,通过合理的神经网络架构和权重,BP神经网络可以拟合任何形式的非线性连续函数。BP算法通过梯度下降法,迭代更新神经网络中各自变量的权重,使得神经网络输出值和真实值之间的均方误差(MSE)达到最小值。训练过程中,隐含层根据返回的误差赋予各个因子权重值ω[7]。

BP算法的权重调节公式如下:

Python 北京房价预测实验报告 深度学习 tensorflow keras_第1张图片

式中,ω为权重;E为网络总误差;为学习率;为误差信号;xi为输入分量;yi为输出分量;zk为连接权分量。

 

 

  1. 操作步骤

本项目使用TensorFlow框架,将北京房价数据集中部分显著的特征提出来,进行标准化操作,以方便神经网络进行较好的学习。由于数据量较大,为了使得预测目标的示意图更为直观,将数据集划分为99.8%的训练集和0.2%的测试集。

神经网络包括3层。其中,第1层的输入为14个神经元,通过relu激活函数进行映射,输出32个神经元。第二层将这32个神经元继续进行计算,通过relu输出32个神经元。输出层有1个维度,代表预测的房价结果。

经过15个周期的训练,神经网络有了较好的预测效果。

你可能感兴趣的:(Python,人工智能)