关于数据挖掘:人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例附代码数据

22次阅读

共计 5995 个字符,预计需要花费 15 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=19936

最近咱们被客户要求撰写对于人工神经网络 ANN 的钻研报告,包含一些图形和统计输入。

在本教程中,您将学习如何在 R 中创立神经网络模型

这里思考人工神经网络具备一个暗藏层,两个输出和输入。

 

 

输出为 x1 和 x2。

 

两个权重乘以各自的权重 w1 和 w2。

而后将偏差增加到总和中,并将其称为 z1。

z1 = x1 w1 + x2 w2 +b1

 

 

而后利用 sigmoid 的公式。

暗藏层的输入将成为其右侧下一层的输出。这等于

sigmoid 激活函数的公式和图形

暗藏层的第二个节点也以这种形式运行。

 

x1 和 x2 输出对于 H1 和 H2 将具备雷同的值。然而,H1 和 H2 的权重可能不同,也可能雷同。而且,偏差也能够不同,即 b1 和 b2 能够不同。

乘以各自的权重 w3 和 w4。而后将偏差增加到总和中,并将其称为 z2。

而后利用 sigmoid 的公式。此层的输入将是

 

而后,咱们转到下一层。

(输入来自 H1。咱们称之为 z1。输入来自 H2,咱们称之为 z2。它们进入 O1。权重像以前一样乘以相应的输出。

 

 

并且,咱们抉择 sigmoid 激活函数。因而,O1 的输入为

 

 

 

这里,y1 = z1 W5 + z2 W6 + B1

同样,对于 O2 的输入,咱们再次思考 sigmoid 激活函数。

咱们将此过程称为前向流传,因为咱们总是从左到右。咱们从不倒退。

R 语言剖析学生问题数据案例

神经网络(或人工神经网络)具备通过样本进行学习的能力。人工神经网络是一种受生物神经元零碎启发的信息处理模型。它由大量高度互连的解决元件(称为神经元)组成,以解决问题。它遵循非线性门路,并在整个节点中并行处理信息。神经网络是一个简单的自适应零碎。自适应意味着它能够通过调整输出权重来更改其内部结构。

该神经网络旨在解决人类容易遇到的问题和机器难以解决的问题,例如辨认猫和狗的图片,辨认编号的图片。这些问题通常称为模式识别。它的利用范畴从光学字符识别到指标检测。

本教程将涵盖以下主题:

  • 神经网络概论
  • 正向流传和反向流传
  • 激活函数
  • R 中神经网络的实现
  • 案例
  • 利弊
  • 论断

神经网络概论

神经网络是受人脑启发执行特定工作的算法。它是一组连贯的输出 / 输入单元,其中每个连贯都具备与之关联的权重。在学习阶段,网络通过调整权重进行学习,来预测给定输出的正确类别标签。

人脑由数十亿个解决信息的神经细胞组成。每个神经细胞都认为是一个简略的解决零碎。被称为生物神经网络的神经元通过电信号传输信息。这种并行的交互零碎使大脑可能思考和解决信息。一个神经元的树突接管来自另一个神经元的输出信号,并依据这些输出将输入响应到某个其余神经元的轴突。

树突接管来自其余神经元的信号。单元体将所有输出信号求和以生成输入。当总和达到阈值时通过轴突输入。突触是神经元相互作用的一个点。它将电化学信号传输到另一个神经元。

x1,x2 …. xn 是输出变量。w1,w2 …. wn 是各个输出的权重。b 是偏差,将其与加权输出相加即可造成输出。偏差和权重都是神经元的可调整参数。应用一些学习规定来调整参数。神经元的输入范畴能够从 -inf 到 + inf。神经元不晓得边界。因而,咱们须要神经元的输出和输入之间的映射机制。将输出映射到输入的这种机制称为激活函数。

前馈和反馈人工神经网络

人工神经网络次要有两种类型:前馈和反馈人工神经网络。前馈神经网络是非递归网络。该层中的神经元仅与下一层中的神经元相连,并且它们不造成循环。在前馈中,信号仅在一个方向上流向输入层。

反馈神经网络蕴含循环。通过在网络中引入环路,信号能够双向流传。反馈周期会导致网络行为依据其输出随工夫变动。反馈神经网络也称为递归神经网络。

激活函数

激活函数定义神经元的输入。激活函数使神经网络具备非线性和可表白性。有许多激活函数:

  • 辨认函数 通过激活函数 Identity,节点的输出等于输入。它完满拟合于潜在行为是线性(与线性回归类似)的工作。当存在非线性,独自应用该激活函数是不够的,但它仍然能够在最终输入节点上作为激活函数用于回归工作。。
  • 在 二元阶梯函数(Binary Step Function)中,如果 Y 的值高于某个特定值(称为阈值),则输入为 True(或已激活),如果小于阈值,则输入为 false(或未激活)。这在分类器中十分有用。
  • S 形函数 称为 S 形函数。逻辑和双曲正切函数是罕用的 S 型函数。有两种:
  • Sigmoid 函数 是一种逻辑函数,其中输入值为二进制或从 0 到 1 变动。
  • tanh 函数 是一种逻辑函数,其输入值在 - 1 到 1 之间变动。也称为双曲正切函数或 tanh。
  • ReLU 函数又称为修改线性单元(Rectified Linear Unit),是一种分段线性函数,其补救了 sigmoid 函数以及 tanh 函数的梯度隐没问题。它是最罕用的激活函数。对于 x 的负值,它输入 0。

在 R 中实现神经网络

创立训练数据集

咱们创立数据集。在这里,您须要数据中的两种属性或列:特色和标签。在下面显示的表格中,您能够查看学生的专业知识,沟通技能得分和学生问题。因而,前两列(专业知识得分和沟通技能得分)是特色,第三列(学生问题)是二进制标签。

# 创立训练数据集
# 在这里,把多个列或特色组合成一组数据
test=data.frame(专业知识, 沟通技能得分)让咱们构建神经网络分类器模型。首先,导入神经网络库,并通过传递标签和特色的参数集,数据集,暗藏层中神经元的数量以及误差计算来创立神经网络分类器模型。``````
# 拟合神经网络
nn(问题~ 专业知识 + 沟通技能得分, hidden=3,act.fct = "logistic",
                linear.output = FALSE)

这里失去模型的因变量、自变量、损失_函数、_激活函数、权重、后果矩阵(蕴含达到的阈值,误差,AIC 和 BIC 以及每次反复的权重的矩阵)等信息:

$model.list
$model.list$response
[1] "问题"

$model.list$variables
[1] "专业知识"     "沟通技能得分"


$err.fct
function (x, y) 
{1/2 * (y - x)^2
}
$act.fct
function (x) 
{1/(1 + exp(-x))
}
$net.result
$net.result[[1]]
            [,1]
[1,] 0.980052980
[2,] 0.001292503
[3,] 0.032268860
[4,] 0.032437961
[5,] 0.963346989
[6,] 0.977629865


$weights
$weights[[1]]
$weights[[1]][[1]]
           [,1]        [,2]       [,3]
[1,]  3.0583343  3.80801996 -0.9962571
[2,]  1.2436662 -0.05886708  1.7870905
[3,] -0.5240347 -0.03676600  1.8098647

$weights[[1]][[2]]
           [,1]
[1,]   4.084756
[2,]  -3.807969
[3,] -11.531322
[4,]   3.691784



$generalized.weights
$generalized.weights[[1]]
            [,1]       [,2]
[1,]  0.15159066 0.09467744
[2,]  0.01719274 0.04320642
[3,]  0.15657354 0.09778953
[4,] -0.46017408 0.34621212
[5,]  0.03868753 0.02416267
[6,] -0.54248384 0.37453006


$startweights
$startweights[[1]]
$startweights[[1]][[1]]
           [,1]        [,2]       [,3]
[1,]  0.1013318 -1.11757311 -0.9962571
[2,]  0.8583704 -0.15529112  1.7870905
[3,] -0.8789741  0.05536849  1.8098647

$startweights[[1]][[2]]
           [,1]
[1,] -0.1283200
[2,] -1.0932526
[3,] -1.0077311
[4,] -0.5212917



$result.matrix
                                  [,1]
error                      0.002168460
reached.threshold          0.007872764
steps                    145.000000000
Intercept.to.1layhid1      3.058334288
专业知识.to.1layhid1       1.243666180
沟通技能得分.to.1layhid1  -0.524034687
Intercept.to.1layhid2      3.808019964
专业知识.to.1layhid2      -0.058867076
沟通技能得分.to.1layhid2  -0.036766001
Intercept.to.1layhid3     -0.996257068
专业知识.to.1layhid3       1.787090472
沟通技能得分.to.1layhid3   1.809864672
Intercept.to. 问题          4.084755522
1layhid1.to. 问题          -3.807969087
1layhid2.to. 问题         -11.531321534
1layhid3.to. 问题           3.691783805

绘制神经网络

让咱们绘制您的神经网络模型。

# 绘图神经网络
plot(nn)


点击题目查阅往期内容

R 语言实现 CNN(卷积神经网络)模型进行回归数据分析

左右滑动查看更多

01

02

03

04

创立测试数据集

创立测试数据集:专业知识得分和沟通技能得分

# 创立测试集
test=data.frame(专业知识, 沟通技能得分)

预测测试集的后果

应用计算函数预测测试数据的概率得分。

## 应用神经网络进行预测

Pred$result
0.9928202080
0.3335543925
0.9775153014

当初,将概率转换为二进制类。

# 将概率转换为设置阈值 0.5 的二进制类别
pred <- ifelse(prob>0.5, 1, 0)
pred
1
0
1

预测后果为 1,0 和 1。

利弊

神经网络更灵便,能够用于回归和分类问题。神经网络非常适合具备大量输出(例如图像)的非线性数据集,能够应用任意数量的输出和层,能够并行执行工作。

还有更多可供选择的算法,例如 SVM,决策树和回归算法,这些算法简略,疾速,易于训练并提供更好的性能。神经网络更多的是黑盒子,须要更多的开发工夫和更多的计算能力。与其余机器学习算法相比,神经网络须要更多的数据。NN 仅可用于数字输出和非缺失值数据集。一位驰名的神经网络钻研人员说:“神经网络是解决任何问题的第二好的办法。最好的办法是真正了解问题。”

神经网络的用处

神经网络的个性提供了许多利用方面,例如:

  • 模式识别:神经网络非常适合模式识别问题,例如面部辨认,物体检测,指纹识别等。
  • 异样检测:神经网络善于异样检测,它们能够轻松检测出不适宜惯例模式的异样模式。
  • 工夫序列预测:神经网络可用于预测工夫序列问题,例如股票价格,天气预报。
  • 自然语言解决:神经网络在自然语言解决工作中提供了宽泛的利用,例如文本分类,命名实体辨认(NER),词性标记,语音辨认和拼写查看。

点击文末 “浏览原文”

获取全文残缺代码数据资料。

本文选自《人工神经网络 ANN 中的前向流传和 R 语言剖析学生问题数据案例》。

点击题目查阅往期内容

matlab 应用长短期记忆(LSTM)神经网络对序列数据进行分类
Python TensorFlow 循环神经网络 RNN-LSTM 神经网络预测股票市场价格工夫序列和 MSE 评估准确性
数据分享 |PYTHON 用 KERAS 的 LSTM 神经网络进行工夫序列预测天然气价格例子
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
Matlab 用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
RNN 循环神经网络、LSTM 长短期记忆网络实现工夫序列长期利率预测
联合新冠疫情 COVID-19 股票价格预测:ARIMA,KNN 和神经网络工夫序列剖析
深度学习:Keras 应用神经网络进行简略文本分类剖析新闻组数据
用 PyTorch 机器学习神经网络分类预测银行客户散失模型
PYTHON 用 LSTM 长短期记忆神经网络的参数优化办法预测工夫序列洗发水销售数据
Python 用 Keras 神经网络序列模型回归拟合预测、准确度检查和后果可视化
Python 用 LSTM 长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析
R 语言中的神经网络预测工夫序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R 语言深度学习:用 keras 神经网络回归模型预测工夫序列数据
Matlab 用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
R 语言 KERAS 深度学习 CNN 卷积神经网络分类辨认手写数字图像数据(MNIST)
MATLAB 中用 BP 神经网络预测人体脂肪百分比数据
Python 中用 PyTorch 机器学习神经网络分类预测银行客户散失模型
R 语言实现 CNN(卷积神经网络)模型进行回归数据分析
SAS 应用鸢尾花 (iris) 数据集训练人工神经网络 (ANN) 模型
【视频】R 语言实现 CNN(卷积神经网络)模型进行回归数据分析
Python 应用神经网络进行简略文本分类
R 语言用神经网络改良 Nelson-Siegel 模型拟合收益率曲线剖析
R 语言基于递归神经网络 RNN 的温度工夫序列预测
R 语言神经网络模型预测车辆数量工夫序列
R 语言中的 BP 神经网络模型剖析学生问题
matlab 应用长短期记忆(LSTM)神经网络对序列数据进行分类
R 语言实现拟合神经网络预测和后果可视化
用 R 语言实现神经网络预测股票实例
应用 PYTHON 中 KERAS 的 LSTM 递归神经网络进行工夫序列预测
python 用于 NLP 的 seq2seq 模型实例: 用 Keras 实现神经网络机器翻译
用于 NLP 的 Python:应用 Keras 的多标签文本 LSTM 神经网络分类

正文完
 0