本文重点介绍,基于神经网络,建立学生成绩预测模型。
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图: 对一些标记进行定义:
a y ( x ) a^{(x)}_y ay(x)表示,第 x x x层,第 y y y个神经元; b y ( x ) b^{(x)}_y by(x)表示对每个维度输出的偏置; h w , b h_{w,b} hw,b为神经网络输出 F ( x ) F^{(x)} F(x)表示激活函数该层主要为输入的特征,如输入的为 n n n维度特征,则输入层就有 n n n个神经元。在此我们将输入特征,向量化为 X X X,则: X = [ x 1 , x 2 . . . x n ] X=[x_{1},x_{2}...x_{n}] X=[x1,x2...xn]
如上图所示,为隐藏层为全连接形式,该层输入为Input Layer的输出。其中 a 1 ( 2 ) , a 2 ( 2 ) , a 2 ( 2 ) a^{(2)}_{1},a^{(2)}_{2},a^{(2)}_{2} a1(2),a2(2),a2(2)数值的计算方法为: ( a 1 ( 2 ) a 2 ( 2 ) a 2 ( 2 ) ) = F ( 1 ) ⋅ ( ( x 1 ( 1 ) x 2 ( 1 ) x 3 ( 1 ) ) ⋅ ( w 1 , 1 ( 1 ) w 2 , 1 ( 1 ) w 3 , 1 ( 1 ) w 1 , 2 ( 1 ) w 2 , 2 ( 1 ) w 3 , 2 ( 1 ) w 1 , 3 ( 1 ) w 2 , 3 ( 1 ) w 3 , 3 ( 1 ) ) + ( b 1 ( 1 ) b 2 ( 1 ) b 3 ( 1 ) ) ) (a^{(2)}_{1}\;a^{(2)}_{2}\;a^{(2)}_{2})=F^{(1)}·((x^{(1)}_{1}\;x^{(1)}_{2}\;x^{(1)}_{3})·\begin{pmatrix}w^{(1)}_{1,1}&w^{(1)}_{2,1}&w^{(1)}_{3,1}\\w^{(1)}_{1,2}&w^{(1)}_{2,2}&w^{(1)}_{3,2}\\w^{(1)}_{1,3}&w^{(1)}_{2,3}&w^{(1)}_{3,3}\end{pmatrix}+(b^{(1)}_{1}\;b^{(1)}_{2}\:b^{(1)}_{3})) (a1(2)a2(2)a2(2))=F(1)⋅((x1(1)x2(1)x3(1))⋅⎝⎜⎛w1,1(1)w1,2(1)w1,3(1)w2,1(1)w2,2(1)w2,3(1)w3,1(1)w3,2(1)w3,3(1)⎠⎟⎞+(b1(1)b2(1)b3(1))) 其中, F ( 1 ) F^{(1)} F(1)为第一层激活函数,一般为 S i g m o i d Sigmoid Sigmoid函数,该函数定义形式如下: S i g m o i d ( x ) = 1 1 + e − x Sigmoid(x)=\frac{1}{1+e^{-x}} Sigmoid(x)=1+e−x1 S i g m o i d Sigmoid Sigmoid函数是一个在生物学中常见的 S S S型函数,也称为 S S S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质, S i g m o i d Sigmoid Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。图像如下:
该层 h w , b h_{w,b} hw,b计算形式如下: h w , b = F ( 2 ) ⋅ ( ( a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ) ⋅ ( w 1 ( 2 ) w 2 ( 2 ) w 3 ( 2 ) ) + b ( 2 ) ) ) h_{w,b}=F^{(2)}·((a^{(2)}_1\;a^{(2)}_2\;a^{(2)}_3)·\begin{pmatrix}w^{(2)}_1\\w^{(2)}_2\\w^{(2)}_3\end{pmatrix}+b^{(2)})) hw,b=F(2)⋅((a1(2)a2(2)a3(2))⋅⎝⎜⎛w1(2)w2(2)w3(2)⎠⎟⎞+b(2)))
如上图,从源中选取“Excel”节点,拖动至主界面,导入数据。 使用“表格”节点查看数据:
在字段选项中选择类型。 并和EXCEL数据源建立连接 将Class字段设置为目标。
对质量选项卡进行检查 发现:当前数据质量较好,不存在离群值和极值,因此不需要进一步处理。
为了得到高质量模型,对贡献度较高的特征进行提取,对贡献度较低的特征删除处理。在建模中选择特征选择。 分析发现:StageID和SectionID特征相关性较小,因此在建模时不做选择。
在箭头上勾画出 X。
在字段选项中选择分区节点。 对分区进行设置,其中80%最为训练集,20作为测试集。
在建模下面选择神经网络。 并进行设置: 在构建选项中基本选择多层感知器(MLP)。 对模型过拟合程度进行限定,防止过拟合。 最后进行模型训练,结果如下: 多层感知机模型图:
在输出中选择分析 得到该模型测试准确度为70.8%。
在截图向中粘贴时,返回的是一张我从来没见过的图。这是咋回事?我本人不做JAVA,不清楚是不是别人和我同时向粘贴图片导致的这个问题!由于不做Web不理解这个错误可能是什么原因导致的,现在留在这里!也许有人能解答!
