#import "../template/template.typ": *

= 问题三的模型建立与求解
== 问题分析
题目要求在第一问的相关性基础上，建立洪水概率模型。而洪水发生与$20$个指标均有关系，模型过于庞大，故从中选取相关性较强的几组指标建立模型。则洪水概率可以直接由各项指标的值进行线性运算得出。紧接着，为进一步简化模型，仍是依据相关系数仅选取$5$项指标，对模型进行修改。同时，我们考虑到由于选取指标的个数差异会导致建立的洪水发生概率模型的精度产生不同，即分析选取$5$组指标建立的模型与原来选取的多组指标所建立的模型进行精度比较。从而可以得到选取相关性较强的指标对于模型的影响。
== 基于$"MLP"$神经网络模型建立
=== 指标选取
根据第一问分析所得的相关系数大小来选取与洪水发生概率相关性相对强的指标$x_i$。在第二小问中仅选取出前$5$个相关性最强的指标。即在第一小问中选取：基础设施恶化、季风强度、地形排水、大坝质量、河流管理、淤积、人口得分、气候变化、滑坡$9$个指标；在第二小问中选取：基础设施恶化、季风强度、地形排水、大坝质量、河流管理$5$个指标。
=== $"MLP"$神经网络
$"MLP"$神经网络即是对已有的数据进行处理，拟合出来一个比较好的模型，再通过添加一些其他的数据来对拟合出来的模型进行误差分析，修改原来拟合出的模型，使模型的误差降低。其工作原理分为两个部分：
1. 前向传播：输入数据通过网络的输入层，经过隐藏层中的加权求和和激活函数处理，最终得到输出层的结果。
2. 反向传播：$"MLP"$神经网络通常使用反向传播算法来优化网络参数，以最小化预测输出与实际输出之间的误差。反向传播通过计算损失函数的梯度，然后沿着梯度的反方向调整权重和偏置。
#img(
  image("../figures/4.jpg", width: 70%),
  caption: "MLP神经网络示意图"
)
=== $"MLP"$模型建立与评估
首先导入`train.csv`数据集，并将其划分为$80%$的训练集和的$20%$测试集，同时设置随机状态为$1$以保证结果的可重复性；接着通过计算数据的均值与标准差，将特征数据进行标准化，以保证模型训练过程中的数值稳定性；然后创建$"MLP"$模型，设置三层隐藏层分别为$200、100、50$，并将双曲正切函数$tanh$作为激活函数，并确定学习率初始化值、最大迭代次数、正则化参数、随机状态和开启早停策略以防止过拟合。基于上述灵敏度分析，最后得出评估模型精度为$99.97%$。