cacc=yy+M−−−−−−√cacc=yy+M
y=M[(∑i=1S∑r=1nq2irMi+M+r)−1]/log2ny=M[(∑i=1S∑r=1nqir2Mi+M+r)−1]/log2n
式中:M 为样本总量;n 为区间数;q
ir
为在区间[d
r-1
, d
r
]中的第 i 类的样本量(i=1,
2, …, S; r=1, 2, …, n); M
i+
为第 i 类样本的总量;M
+r
为区间[d
r-1
, d
r
]内的样本总量。算法利用
式(1)~(2)作为评分函数来衡量变量之间依赖程度。CACC 算法较目前流行的 CAIM、
CDD 算法可以充分考虑所有样本分布,避免发生过拟合
[13]
。执行流程如下。
步骤 1。给定 1 个样本量为 M,具有 l 个待离散变量及 S 个目标类的数据集。文中 M=
741,l = 7,S = 3(“死亡事故”“受伤事故”“财产损失事故”)。
步骤 2。对于每 1 个待离散变量 X
l
,找到其中的最大值和最小值作为初始化区间边
界。
步骤 3。将初始区间中的值按升序排列,计算所有相邻值的中点。
步骤 4。对变量进行迭代划分,并利用式(1)生成每一次迭代的 cacc 值,若该值不
再提高,输出最优区间划分结果。
1.2 先验网络构建
为提高贝叶斯网络学习效率,避免形成局部最优解,一般需构造部分先验网络以缩小
搜索空间。对交通事故建模一般使用专家知识,也有结合专家知识与机器学习的混合方
法。研究希望尽可能排除主观误差,拟采用机器学习方法建模。近年因果推断理论逐渐发
展,对于构建先验网络有较高实用价值,但其只适用于二值变量。而 DBe 方法虽然适用多
值变量,却需要至少 3 000 条样本数据支撑以满足建模效果
[14]
。互信息方法能够有效处理
高维小样本数据,但传统方法存在估计偏差,且要解决边定向的问题
[15]
。结合本研究实
际,提出 1 种先验网络构造方法。在进行方法论证后,采用 1 种改进的互信息(mutual
information,MI)方法
[16]
。该方法以最大 k 临近(k-nearest neighbor,KNN)思想近似地估
计 Shannon 信息熵,熵值与相关度成正比,以此找到变量间相关关系。
I(X,Y)=ψ(k)−⟨ψ(mx+1)+ψ(my+1)⟩+ψ(M)I(X,Y)=ψ(k)−⟨ψ(mx+1)+ψ(my+1)⟩+ψ(M)
式中:I (X, Y)为 X,Y 之间的互信息值;ψ(x)为 digamma 函数,Γ(x)为伽马函数,
ψ(x)=Γ(x)
-1
dΓ(x)/ dx,它满足递归函数 ψ(x +1)=ψ(x)+1/x,ψ(1)=-C,C ≈0.577 215 6;〈…〉
为求均值;m
x
,m
y
分别为水平与垂直方向落入 k 邻域的样本点的数量。方法关键在于 k 值
选取,k 值越小,一般系统误差越小;k 值越大,可以相应减小统计误差。下面给出本文先
验网络构造方法。
步骤 1。选取最佳 k 值。由于方法基于 KNN 理论构造,本文改用交叉验证方法,将
经过 CACC 算法处理的数据集分为若干子集,为了控制模型偏差,经过测试选取其中 70%
作为训练集,30%作为测试集,计算所有训练样本到测试样本的欧氏距离并建立距离降序
评论0
最新资源