本文重点介绍,基于神经网络,建立学生成绩预测模型。
1.神经网络
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
对一些标记进行定义:
- $a^{(x)}_y$表示,第$x$层,第$y$个神经元;
- $b^{(x)}_y$表示对每个维度输出的偏置;
- $h_{w,b}$为神经网络输出
- $F^{(x)}$表示激活函数
1.1 输入层
该层主要为输入的特征,如输入的为$n$维度特征,则输入层就有$n$个神经元。在此我们将输入特征,向量化为$X$,则: $X=[x_{1},x_{2}…x_{n}]$
1.2 隐藏层
如上图所示,为隐藏层为全连接形式,该层输入为Input Layer的输出。其中$a^{(2)}{1},a^{(2)}{2},a^{(2)}_{2}$数值的计算方法为:
其中,$F^{(1)}$为第一层激活函数,一般为$Sigmoid$函数,该函数定义形式如下:
$Sigmoid$函数是一个在生物学中常见的$S$型函数,也称为$S$型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,$Sigmoid$函数常被用作神经网络的阈值函数,将变量映射到0,1之间。图像如下:
1.3 输出层
该层$h_{w,b}$计算形式如下:
2 实验
2.1 软硬件环境描述
- 软件:SPSS MODELER SUBSCRIPTION
- 系统:WIndows 10
2.2 数据描述
- 文件名:StudentPerformance.xlsx
- 数据量:480个样本,其中特征16个
2.3 实验过程
2.3.1 读取数据
如上图,从源中选取“Excel”节点,拖动至主界面,导入数据。
使用“表格”节点查看数据:
2.3.2 数据类型
在字段选项中选择类型。
并和EXCEL数据源建立连接
将Class字段设置为目标。
2.3.3 检查数据质量
对质量选项卡进行检查
发现:当前数据质量较好,不存在离群值和极值,因此不需要进一步处理。
2.3.4 特征选择
为了得到高质量模型,对贡献度较高的特征进行提取,对贡献度较低的特征删除处理。在建模中选择特征选择。
分析发现:StageID和SectionID特征相关性较小,因此在建模时不做选择。
2.3.5 过滤掉相关性较小特征
在箭头上勾画出 X。
2.3.6 划分训练和测试集
在字段选项中选择分区节点。
对分区进行设置,其中80%最为训练集,20作为测试集。
2.3.7
在建模下面选择神经网络。
并进行设置:
在构建选项中基本选择多层感知器(MLP)。
对模型过拟合程度进行限定,防止过拟合。
最后进行模型训练,结果如下:
多层感知机模型图:
2.3.8 准确度分析
在输出中选择分析
得到该模型测试准确度为70.8%。
3.遇到个怪事
在截图向CSDN中粘贴时,返回的是一张我从来没见过的图。这是咋回事?我本人不做JAVA,不清楚是不是别人和我同时向CSDN粘贴图片导致的这个问题!由于不做Web不理解这个错误可能是什么原因导致的,现在留在这里!也许有人能解答!