在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原文链接:http://tecdat.cn/?p=5725神经网络是一种基于现有数据创建预测的计算系统。 如何构建神经网络?神经网络包括:
用神经网络解决分类问题在这个特定的例子中,我们的目标是开发一个神经网络来确定股票是否支付股息。 因此,我们使用神经网络来解决分类问题。通过分类,我们指的是按类别对数据进行分类的分类。例如,水果可分为苹果,香蕉,橙等。
我们的自变量如下:
我们首先设置目录并将数据加载到R环境中:
形成神经网络时最重要的过程之一是数据标准化。这涉及将数据调整到共同的比例,以便准确地比较预测值和实际值。无法对数据进行标准化通常会导致所有观察结果中的预测值保持不变,而与输入值无关。
我们在下面实现了这两种技术,但选择使用max-min规范化技术。 缩放标准化 最大最小标准化 对于此方法,我们调用以下函数来规范化我们的数据: 然后,我们使用lapply在我们现有的数据上运行该函数(我们将数据集称为加载到R中的数据集为mydata): 我们现在已经缩放了我们的新数据集并将其保存到名为maxmindf的数据框中: 我们的训练数据(训练集)基于80%的观测值。测试数据(测试集)基于剩余的20%的观察结果。 用神经网络训练神经网络模型我们现在将神经网络库加载到R. 使用神经网络将依赖的“红利”变量“回归” 到其他自变量
确定神经网络中隐藏层的数量并不是一门精确的科学。事实上,有些情况下,没有任何隐藏层,准确度可能会更高。因此,反复试验在这一过程中起着重要作用。 一种可能性是比较预测的准确性如何随着我们修改隐藏层的数量而改变。例如,对于该示例,使用(2,1)配置最终产生92.5%的分类准确度。 我们的神经网络看起来像这样:
测试模型的准确性如前所述,我们的神经网络是使用训练数据创建的。然后,我们将其与测试数据进行比较,以评估神经网络预测的准确性。
将预测结果与实际结果进行比较:
混乱矩阵然后,我们使用sapply对结果进行舍入,并创建一个混淆矩阵来比较真/假阳性和阴性的数量: 混淆矩阵用于确定由我们的预测生成的真实和误报的数量。该模型生成17个真阴性(0),20个真阳性(1),而有3个假阴性。 最终,我们在确定股票是否支付股息时产生92.5%(37/40)的准确率。 使用神经网络解决回归问题在这个例子中,我们希望分析解释变量容量,汽油和小时数对因变量消耗的影响。
数据规范化同样,我们将数据标准化并分为训练和测试数据: 神经网络输出然后我们运行我们的神经网络并生成我们的参数: 生成神经网络以下是我们的神经网络在视觉格式中的样子:
模型验证然后,我们通过比较从神经网络产生的估计汽油消耗与测试输出中报告的实际支出来验证(或测试我们模型的准确性):
准确性在下面的代码中,我们然后将数据转换回其原始格式,并且在平均绝对偏差的基础上产生90%的准确度(即估计和实际汽油消耗之间的平均偏差平均为10%)。请注意,我们还将数据转换回标准值,因为它们之前使用max-min标准化技术进行了缩放:
可以看到我们使用(2,1)隐藏配置获得90%的准确率。这非常好,特别是考虑到我们的因变量是区间格式。但是,让我们看看我们是否可以让它更高! 如果我们现在在神经网络中使用(5,2)隐藏配置会发生什么?这是生成的输出:
我们看到我们的准确率现已增加到近96%,表明修改隐藏节点的数量已经增强了我们的模型! |
请发表评论