system: [SYSTEM]

user: 3. 主效应因素分析流程 本文算法流程如图1所示，主要包括数据标准化、建立贝叶斯网络模型、直接影响因素定位、影响路径分析、独立影响度分析、联合影响度分析等六个关键步骤。其中灰色框中的步骤是训练分析阶段进行的，输入为训练数据，输出为影响路径分析结果。橙色框中的步骤是主效应因素分析阶段进行的，输入为待分析数据，输出为主效应因素分析结果。详述如下： 3.1. 训练数据标准化 训练数据标准化主要是将原始数据转换为用于主效应因素分析的离散化标准数据。记用于贝叶斯网络构建训练的原始数据集为 D = { X 1 ， X 2 ， ⋯ ， X N } ，N表示训练样本数量，第i个样本 X i = { x i 1 ， x i 2 ， ⋯ ， x i M ， y i } ， x i j 表示 X i 的第j个特征，M表示训练样本特征的维数， y i 表示第i个样本对应的事故发生情况，若发生为1，未发生为0。对于离散型特征和连续型特征采取不同的标准化方法。 图1. 本文提出的主效应因素分析方法流程 假设第j个特征为离散型特征，即该特征取值个数为确定的有限正整数K，为了简化计算，需将所有样本中该特征的取值规范化到 { 0 ， 1 ， 2 ， ⋯ ， K − 1 } 这个集合范围内。首先对该特征的K个不同取值进行从小到大排序处理，得到排序后的指标取值集合。规范化后的特征 x ′ i j = k ，k表示 x i j 在排序后的指标取值集合中的序号。 假设第j个特征为连续型特征，则需要进行离散化处理。采用二值化离散方法，首先求该特征的均值为： E j = ∑ i x i j N (1) 离散化后的特征为： x ′ i j = { 0       x i j < E j 1           x i j ≥ E j (2) 至此，完成了训练数据标准化。 3.2. 建立贝叶斯网络模型 标准化后的训练数据集记为 D ′ = { X ′ 1 ， X ′ 2 ， ⋯ ， X ′ N } 。基于标准化后的数据集 D ′ ，采用BIC评分 + 爬山法构建贝叶斯网络结构。在贝叶斯网络中，每个节点对应于样本的一维特征，所有样本特征构成一个包含 M + 1 个节点的网络结构。所有可能的网络结构构成了网络结构空间G，贝叶斯网络结构空间中的点g是一个 ( M + 1 ) × ( M + 1 ) 的二值矩阵， g ( i ， j ) 为1表示存在一条节点i指向节点j的有向边。BIC评分的计算公式如下： BIC ( g | D ) = ∑ i = 1 n ∑ j = 1 q i ∑ k = 1 r i m i j k lg m i j k m i j − ∑ i = 1 n q i ( r i − 1 ) 2 lg m (3) 其中g表示网络结构，D表示训练数据集， BIC ( g | D ) 表示网络结构g的BIC评分， N o d e i 表示第i个节点， r i 表示 N o d e i 可能的取值个数， q i 表示 N o d e i 的父节点取值的组合数。 m i j k 表示 X i 取第k个值， N o d e i 的父节点取值为第j个组合的样本个数， m i j 表示 N o d e i 的父节点取值为第j个组合的样本个数。 建立贝叶斯网络，首先随机生成网络空间G 中的一个点 g 0 作为爬山搜索的起点，并计算 g 0 的BIC评分 BIC ( g 0 | D ′ ) 。接着对 g 0 进行随机局部操作，随机局部操作类型包括加边、减边、转边三种，得到随机操作后的网络结构 g ′ 0 ，并计算 g ′ 0 的BIC评分 BIC ( g ′ 0 | D ′ ) 。如果 BIC ( g ′ 0 | D ′ ) > BIC ( g 0 | D ′ ) ，则认为 g ′ 0 比 g 0 更优，令 g 0 = g ′ 0 。重复进行局部随机操作与评分比较，直到达到迭代次数。 至此，确定了贝叶斯网络结构中节点之间的连接关系，用矩阵 g r 表示。接着利用数据集 D ′ 统计计算网络中各节点的条件概率表。例如计算节点i的条件概率，首先要确定节点i的父节点结合 π i ，然后统计 π i 不同取值组合情况下节点i取不同值的次数，计算 p ( i | π i ) 的值作为该节点的条件概率。 3.3. 直接影响因素定位 假设节点 M + 1 为表示事故发生情况的结果节点，那么根据贝叶斯网络结构 g r 可以确定结果节点的父节点集合 π M + 1 。在 π M + 1 中有一部分节点与结果节点之间存在直接的因果关系，这部分节点的序号构成集合记为 π s ，满足 g r ( i s ， M + 1 ) = 1 ， i s ∈ π s ， π s 就是我们要确定的直接影响因素集合。 π M + 1 中还有一部分节点通过其他节点对结果节点产生影响，成为间接影响因素节点。例如图2的贝叶斯网络结构模型中，因素1、因素2、因素3都是与结果节点有直接连接关系的节点，因此是结果的直接影响因素。 图2. 直接影响因素定位示例 3.4. 影响路径分析 直接影响因素集合 π s 中的每个特征对应的特征节点与结果节点之间必然存在直接的连接，这种直接的连接对应于因素对结果的直接影响路径。除此之外，直接影响因素还有可能通过其他的因素对结果产生影响，例如节点 i s 可能通过若干个间接影响因素和另外一个直接影响因素 i ′ s 对结果产生间接影响，这些间接影响因素和另一个直接影响因素就构成了节点 i s 到结果节点的间接影响路径。遍历矩阵 g r ，寻找每个直接影响因素节点对结果节点的影响路径集合。记节点 i s 的影响路径集合为 R i s = { r 0 i s ， r 1 i s ， ⋯ ， r n i s } ，其中 r 0 i s = { i s ， M + 1 } 表示节点 i s 到结果节点的直接影响路径， n ≥ 0 表示间接影响路径的总数， r 1 i s ， ⋯ ， r n i s 表示节点 i s 到结果节点的n条间接影响路径，假定第j条间接影响路径为 r j i s = { i s ， i j 1 ， i j 2 ， ⋯ ， i j l ， M + 1 } ，包含 l + 2 个节点，那么 i j l 必然对结果节点有直接影响，贝叶斯网络结构中存在一条从节点 i j l 到结果节点的连接。如果 R i s 中只包含一条直接影响路径 r 0 i s ，那么直接进行独立影响度分析，得到诸因素分析结论。如果存在间接影响路径，那么进行联合影响度分析，得到主效应因素分析结果。 例如图2的贝叶斯网络结构模型中，三个直接影响因素中，因素2对结果节点的影响路径只有一条直接影响路径，只需要进行独立影响度分析即可，而因素1对结果节点的影响路径除了直接影响路径之外，还有“因素1- > 因素2- > 结果”这条间接影响路径。这就是说因素1对结果节点的影响还可能通过影响因素2而间接影响结果，后续主效应因素分析需要考虑与因素2的交互效应，进行联合影响度分析。 3.5. 待分析数据标准化 取待分析的数据样本按照3.1训练数据标准化的方法进行标准化，标准化后的样本记为X。主效应因素分析主要是分析对样本X影响最大的特征因素。 3.6. 独立影响度分析 独立影响度分析即是分析直接影响因素集合 π s 中每个因素对结果的影响程度。针对 π s 中的任意一个因素 i s ，构造样本 X ′ ，满足除结果因素 M + 1 以外的所有特征取值与X一致，将 X ′ 输入贝叶斯网络模型，计算结果因素取值与X一致的概率记为 p M + 1 。随机改变 X ′ 中因素 i s 的取值，重新输入贝叶斯网络模型，计算结果因素取值与X一致的概率记为 p ′ M + 1 。那么，因素 i s 对结果节点的影响度为 Δ p i s = p M + 1 − p ′ M + 1 。对 π s 中所有因素分别计算其对结果节点的影响度，并选择影响度最大的因素作为主效应因素分析结果。 3.7. 联合影响度分析 影响路径集合 R i s = { r 0 i s ， r 1 i s ， ⋯ ， r n i s } 中所有节点构成了一个影响路径的节点集合 H i s = { i s ， i s 1 ， i s 2 ， ⋯ ， i s l ， M + 1 } ，包括直接影响因素节点 i s 、间接影响节点 i s 1 ， i s 2 ， ⋯ ， i s l 、结果节点 M + 1 ，l表示节点 i s 和结果节点 M + 1 之间的间接影响节点的个数。构造样本 X ′ ，满足 R i s 集合以外的所有特征取 值与X一致，其余特征取值不定。 3.7.1. 交互因素筛选 首先通过计算节点 i s 对节点 i s 1 ， i s 2 ， ⋯ ， i s l 的影响，筛选与节点 i s 有交互效应的节点。设定 X ′ 的特征 i s 取值为X中的特征 i s 的值，输入构建好的贝叶斯网络结构中，计算节点 i s 1 ， i s 2 ， ⋯ ， i s l 取值为X中特征 i s 1 ， i s 2 ， ⋯ ， i s l 的值的概率，记为 p s 1 ， p s 2 ， ⋯ ， p s l 。随机改变 X ′ 的特征 i s 的取值，计算节点 i s 1 ， i s 2 ， ⋯ ， i s l 取值为X中特征 i s 1 ， i s 2 ， ⋯ ， i s l 的值的概率，记为 p ′ s 1 ， p ′ s 2 ， ⋯ ， p ′ s l 。若 | p ′ s i − p s i | < θ ，则认为节点特征 i s 的改变不会影响节点 i s i 的取值，反之认为节点特征 i s 的改变会影响节点 i s i 的取值，因而会对结果节点的取值产生交互效应。 θ ∈ [ 0 ， 1 ] 为交互效应判定阈值，θ取值越大，交互因素筛选要求越高，则要求因素之间具有很强的交互相关性，才作为交互效应因素，进行联合影响度分析，极端情况下取值为1，则趋同于独立影响度分析。θ取值越小，交互因素筛选要求越低，这时候考虑交互因素的比较全面，但是也会形成冗余的结论。因此本文实验中取值0.3，兼顾独立性和交互性要求。 3.7.2. 联合影响度分析 选择 i s 1 ， i s 2 ， ⋯ ， i s l 中与 i s 有没有交互效应的节点，将 X ′ 中相应节点特征取值为X中相应的特征值，当前 X ′ 中取值待定的特征包括节点 i s 、与节点 i s 有交互效应的节点、结果节点 M + 1 。设定 X ′ 的特征 i s 取值为X中的特征 i s 的值，输入构建好的贝叶斯网络结构中，计算结果节点 M + 1 取值为X中结果节点取值的概率记为 p M + 1 。随机改变 X ′ 的特征 i s 的取值，重新输入构建好的贝叶斯网络结构中，计算结果节点 M + 1 取值为X中结果节点取值的概率记为 p ′ M + 1 。记特征 i s 对结果节点的影响度为 Δ p i s = p M + 1 − p ′ M + 1 。 对直接影响因素集合 π s 中的每个因素计算其对结果节点的影响度，并选择影响度最大的节点作为影响待分析样本的主效应因素。