2.1.1.1 神经网络界面介绍
IBM SPSS Modeler18.0提供了神经网络节点,如图2-1所示。
图2-1 IBM SPSS Modeler18.0的神经网络节点图示
神经网络节点的参数设置包括【注释】【模型选项】【构建选项】【字段】4张选项卡。本次主要介绍【构建选项】选项卡,如图2-2所示。
【字段】选项卡,主要用来规定神经网络模型的输入变量和目标变量。
图2-2 【神经网络】的【字段】选项卡界面
【构建选项】选项卡是用来设置神经网络模型的主要参数,包括【目标(O)】【基本】【中止规则】【整体】【高级】5个部分,如图2-3所示。
【目标(O)】选项卡可以用来指定神经网络模型的建立方式,包括【您希望做什么?】和【您的主要目标是什么?】两部分。
【您希望做什么?】,表示建立模型的目的,即是为了构建新的神经网络模型还是继续训练现有的神经网络模型,包括【构建新模型】和【继续训练现有模型】。
【构建新模型】,指的是构建全新的神经网络模型。
【继续训练现有模型】,指的是继续训练该节点生成的神经网络模型。这样可以在无须访问原始数据的情况下更新或刷新现有模型,并可能会显著提升性能,这是因为只有新的或更新后的记录将反馈到流中。上一个模型的详细信息与建模节点存储在一起,这样,即使先前的模型块在流或模型选用板中不再可用的情况下,也可以使用该选项。注意:启用此选项后,“字段”和“构建选项”选项卡上的所有其他控件将处于禁用状态。
【您的主要目标是什么?】,指的是选择相应建立模型的目标,包括【创建标准模型(D)】【增强模型准确度(boosting)】【增强模型稳定性(bagging)】和【针对大型数据集优化(需要server)】。
【创建标准模型(D)】,指的是建立单个神经网络模型,与 【增强模型准确度(boosting)】、【增强模型稳定性(bagging)】相比,更容易解释、速度快。IBM SPSS Modeler18.0允许建立多个神经网络模型。
【增强模型准确度(boosting)】表示采用boosting集成算法优化神经网络模型,用来提高模型预测的准确度,从而获得更精确的预测结果。具体思路如下:产生多个模型,每个模型是在整个数据集中建立;在建立每个后续模型之前,需要根据前一个模型的残差进行加权,具有较大残差的样本将会被附以较高的权重,从而使下一个模型能够较好的分析这些样本。这些建立的模型共同构建一个整体的集成模型。
【增强模型稳定性(bagging)】表示采用bagging集成算法优化神经网络模型,用来提高模型预测的稳定性,从而得到更可靠的预测结果。具体思路如下:首先对原始数据集进行有放回的抽样,得到多个与原始数据集相同数目的新的数据集;然后利用每个新得到的数据集进行建模,这些模型共同构成一个集成模型。
【针对大型数据集优化(需要server)】在石油地质中很少使用,这里不再进行介绍。
图2-3 【神经网络】节点的【构建选项】选项卡中的【目标】界面
【基本】选项卡用来设置建立神经网络模型的类型以及隐藏层的数目,如图2-4所示。
【神经网络模型(N):】,指的是选择建立的神经网络模型的类型,用来确定神经网络怎样通过隐藏层来将预测变量连接到目标,包括多层感知器(MLP)和径向基函数(RBF),如图2-5所示。多层感知器(MLP)表示允建较为复杂的关系,但是需要的训练与评分时间更长。径向基函数(RBF)在缩短训练与评分时间方面优势明显,但与多层感知器(MLP)相比,其预测能力要差一些。
【隐藏层】框包括【自动计算单元数】和【定制单元格数】两个部分。神经网络的隐藏层包含无法观察到的单元,每个隐藏单元的值都是预测变量的某个函数;此函数的准确形式部分取决于网络类型;多层感知器(MLP)可以有一个或两个隐藏层;径向基函数(RBF)可以是一个隐藏层。
【自动计算单元数】,指的是构建具有单个隐藏层的网络,同时计算隐藏层中的“最佳”单元数。
【定制单元格数】,指的是允许指定每个隐藏层中的单元数;第一个隐藏层必须至少具有一个单元;对第二个隐藏层指定 0 个单元将构建具有单个隐藏层的多层感知器。需要注意的是:在选择值时,应确保节点数不超过连续预测变量数加上所有分类(标志、名义和有序)预测变量间的类别总数之和。
图2-4 【神经网络】的【构建选项】选项卡中的【基本】界面
图2-5 【神经网络】中的【神经网络模型(N):】的选项界面
【中止规则】选项卡包括【使用最大训练时间(每个组件模型)(T)】【定制最大训练周期数(C)】和【使用最低准确性(M)】3个部分,该选项卡用来设置何时中止神经网络模型的规则,如图2-6所示。可以用来确定何时中止训练多层感知器(MLP)网络的规则;中止规则无法在径向基函数(RBF)算法中使用;训练将至少进行一个周期(数据遍历),然后可以根据以下条件中止训练。
【使用最大训练时间(每个组件模型)(T)】,指的是指定算法运行的最大时间数,当运行的时间接近指定的时间时会停止。【分钟(N)】处需要输入最大训练时间,必须指定一个大于 0 的数字,默认为15。构建整体模型时,该时间是整体模型所允许的训练时间;但是,为了完成当前周期,训练时间可能会比规定的时间限制延长一些。
【定制最大训练周期数(C)】,指的是允许的最大训练周期数,即指定向样本学习的轮数;如果超过最大周期数,那么训练将中止。【最大周期数量(X)】处需要输入最大迭代周期,必须指定一个大于 0 的数字,默认为250。
【使用最低准确性(M)】,表示预测的精度达到指定的值时,将会停止迭代;该情况可能永远不会出现,但可以随时中断训练,以截至目前所达到的最佳精确性保存该网络;倘若防止过度拟合集合中的误差没有在每个周期后减小,训练误差中的相对变化较小,或者当前训练误差与初始误差相比较小,那么训练算法也将中止。【准确性(%)(Y)】处需要输入最大准确性,默认的是90。
图2-6 【神经网络】的【构建选项】选项卡中的【中止规则】界面
【整体】选项卡,一方面用来指定使用Boosting或者Bagging集成算法建立模型的个数,另一方面用来指定预测时,如何采纳各模型的预测结果,如图2-7。
【Bagging和大型数据集】框中是指定预测时,如何采纳各模型的预测结果。如果建立的是分类树,在【分类目标的缺省合并规则(C):】中指定,包括投票、获胜的最高概率、最高均值概率,默认选择为投票,如图2-8。如果是建立的是回归树,在【连续目标的缺省合并规则(O):】中指定,包括平均值、中位数,默认选择为平均值,如图2-9。
【Boosting和Bagging】框中用来指定使用Boosting或者Bagging集成算法建立模型的个数。设置【用于Boosting或Bagging的成分模型数量】为n,表示利用Boosting或Bagging集成算法建立n个模型,默认建模个数是10。
图2-7 【神经网络】的【构建选项】选项卡中的【基本】界面
图2-8 【神经网络】中的【分类目标的缺省合并规则(C):】的选项界面
图2-9 【神经网络】中的【分类目标的缺省合并规则(C):】的选项界面
【高级】选项卡,用来设置神经网络运算过程的高级参数,如图2-10所示。
【过度拟合防止集合(%)(V)】,表示在训练样本集的过程中,再随机抽取一定比例的样本,训练模型,用来跟踪训练过程中的错误;默认值为30。
【复制结果(C)】,神经网络的初始权值是随机的,用来设置神经网络的初始权值;可以在【随机种子】处指定一个整数,或者单击【生成(G)】,将会产生一个介于1与2147483647之间(包括1和2147483647)的伪随机整数;默认的值是229176228。这里需要说明的是,最后的神经网络模型的权值容易受初始值影响,可能会产生局部最优解,所以可以通过设置随机种子数来提高模型的泛化能力。
【预测变量中的缺失值】,表示通过何种方式处理数据中的缺失值,包括【成列删除(D)】和【差补缺失值(M)】两种方法。
【成列删除(D)】,指的是如果预测变量上存在缺失值的记录,那么将会从模型构建中排除。
【差补缺失值(M)】指的是如果预测变量上存在缺失值的记录,将会替换缺失值,同时会在分析中使用这些记录;如果是连续性的变量,将会插补最大和最小观测值的平均值;如果是分类型的变量,将会插补最常出现的类别。
图2-10 【神经网络】的【构建选项】选项卡中的【高级】界面
2.1.2.2 简单例子
神经网络具有强大的非线性映射能力,可以有效地解决非线性映射问题。本次以预测A井目的层段致密砂砾岩岩性为例,来详细介绍神经网络的使用。
神经网络岩性预测模型建立的具体操作如下。
本次利用的数据是A井目的层段测井和岩性数据。
插入【变量】节点(位于节点选用板的【源】中,如图2-11)、【类型】节点(位于节点选用板的【字段选项】中,如图2-12)、【分区】节点(位于节点选用板的【字段选项】中,如图2-12)和【神经网络】节点(位于节点选用板的【建模】中的【分类】中,如图2-13),依次连接,神经网络岩性预测模型流初步设置成功,如图2-14。
图2-11 节点选用板的【源】界面
图2-12 节点选用板的【字段选项】界面
图2-13 节点选用板的【建模】中的【分类】界面
图2-14 初步建立的神经网络岩性预测模型流
【变量】节点设置:
【变量】节点用来导入分析数据。双击【变量】节点,出现【变量】节点的【浏览文件】界面,单击【浏览文件】(图2-15),选择目标分析数据,点击【打开】(图2-16),可以看到目标文件导入到了变量节点(图2-17),点击【应用】,分析数据导入成功。
图2-15 【变量】节点的【文件】界面(数据未输入)
图2-16 【变量】节点的【浏览文件】界面
图2-17 【变量】节点的【文件】界面(数据已经输入)
【类型】节点设置:
【类型】节点用来设置输入变量和目标变量的【测量】和【角色】。AC、CALI、CNL、DEN、GR、PORE、RI、RT、RXO、VCL属于输入变量,为数值型,其【角色】设置为【输入】,【测量】设置为连续;岩性变量属于目标变量,为分类型,其角色设置为【目标】,【测量】设置为【名义】(图2-18),点击【应用】,设置成功。
图2-18 【类型】节点界面
【分区】节点设置:
【分区】节点可以把样本数据分成训练集和测试集。选择【训练和测试(T)】,设置【训练分区大小】为90,【测试分区大小】为10(图2-19),点击【应用】,设置成功。
图2-19 【分区】节点界面
【神经网络】节点设置:
【神经网络】节点用来建立神经网络预测模型。
在【字段】选项卡设置输入和输出变量,本次选择【使用预定义角色(D)】(图2-20)。
图2-20 【神经网络】节点的【字段】界面
在【构建选项】选项卡设置神经网络模型的基本参数。
在【目标(O)】选项卡中规定神经网络模型的建立方式,本次选择【增强模型稳定性(bagging)】,建立bagging-神经网络集成学习模型(图2-21)。
图2-21 【神经网络】的【构建选项】选项卡中的【目标】界面
在【基本】选项卡中设置所建立的神经网络模型的类型以及隐藏层的数目(图2-22),本次在【神经网络模型(N):】中选择【多层感知器(MLP)】,即建立BP神经网络模型;在【隐藏层】选择【自动计算单元数】,也就是构建具有单个隐藏层的网络,同时计算隐藏层中的“最佳”单元数。
图2-22 【神经网络】的【构建选项】选项卡中的【基本】界面
本次建立的是多层感知器模型,需要设置停止规则。在【中止规则】选项卡(图2-23)中选择【使用最大训练时间(每个组件模型)(T)】,设置【时间】为15,即模型运行的时间接近15分时会停止,但是,为了完成当前周期,训练时间可能会比规定的时间限制延长一些。
图2-23 【神经网络】的【构建选项】选项卡中的【中止规则】界面
本次通过bagging集成算法优化模型,需要在【整体】选项卡中设置使用bagging集成算法建立模型的个数以及如何采纳各模型的预测结果(图2-24)。本次设置【用于boosting或bagging的成分模型数量】为10,即利用bagging技术建立10个模型;在【分类目标的缺省合并规则(C):】中设置【投票】,也就是所有模型预测结果出现次数最多的岩性即为预测结果。
图2-24 【神经网络】的【构建选项】选项卡中的【基本】界面
在【高级】选项卡中设置神经网络运算过程的高级参数(图2-25)。设置【过度拟合防止集合(%)(V)】为30,即在训练样本集的过程中,再随机抽取30%的样本,训练模型,用来跟踪训练过程中的错误。
图2-25 【神经网络】的【构建选项】选项卡中的【高级】界面
在【模型选项】选项卡界面中选择【计算预测变量重要性(L)】(图2-26)。
图2-26 【神经网络】节点的【模型选项】选项卡界面
点击运行,生成神经网络模型运行结果(图2-27);同时为了方便的分析预测结果的准确性,添加分析节点,如图2-28。
图2-27 含有模型运行结果的神经网络岩性预测模型流(钻石形状的节点为模型运行结果)
图2-28 含有【分析】节点的神经网络岩性预测模型流
双击【分析】节点,点击【运行】(图2-29),得到模型的分析结果(图2-30)。其中,【1_培训】列代表训练集预测结果,【1_测试】列代表测试集预测结果。从分析结果中可以轻易看到,训练集的预测准确性为93.02%,测试集的预测准确性为81.25%,这说明模型的预测精度高,泛化能力强,能较准确地区分砂砾岩和泥岩。
图2-29 【分析】节点的【分析】界面
图2-30 【分析】结果界面
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。