Page 421 - 《软件学报》2026年第3期
P. 421

1384                                                       软件学报  2026  年第  37  卷第  3  期


                    本文实验是基于      Python 3.7.16  的  PyTorch 1.11.0  实现, 在具有  256 GB RAM  和  NVIDIA Titan V GPU  的  Intel
                                                                                                   –3
                 Xeon E5-2678  机器上完成测试. 基于验证集选择最佳超参数. 模型使用              Adam  优化器, 学习率设置为      1×10 , 批大
                 小为  4, 训练  50  个  epoch.
                  3.2   评价指标及基准模型
                    在本研究中, 为了深入评估所提出模型的综合性能, 我们采用了                    4  种广泛使用的评估指标, 包括       Jaccard  相似
                 系数  (Jaccard)、F1  分数  (F1-score)、精确率-召回率曲线下面积     (PRAUC) 以及药物-药物相互作用率         (也称  DDI
                 rate). 其中, DDI 率是一种关键的安全性能指标, 用于衡量预测结果中成对药物相互作用发生的概率. 接下来, 我们
                 将对上述各项评估指标进行详细定义和解释:
                    Jaccard  系数可以用于确定预测的药物组合与实际药物组合的相似度. 我们通过对患者                        x 的总体问诊次数进
                 行平均计算得出最终的        Jaccard  相似性得分:

                                                           {     } {     }
                                                             t        t
                                                      1  N x ∑  i : m = 1 ∩ i : ˆy = 1
                                                              i
                                                                       i
                                             Jaccard =                                               (24)
                                                            {  t  } {  t  }
                                                     N x   i : m = 1 ∪ i : ˆy = 1
                                                        t=1   i        i
                 其中,  ∩ 表示集合的交集运算,      ∪ 表示集合的并集运算,       N x  表示患者  x 的问诊总数.
                    F1  分数是一种衡量分类模型性能的指标, 它同时考虑了模型的精度和召回率, 适用于类别分布不均衡的情况.
                 在医学数据分析中, F1     分数常用于评估模型的诊断性能. 对于患者              x, F1  分数计算如下:

                                                             t       t
                                                        |{i : m = 1}∩{i : ˆy = 1}|
                                                      t
                                               Precision =   i       i                               (25)
                                                                 t
                                                             |{i : ˆy = 1}|
                                                                 i
                                                           t        t
                                                       |{i : m = 1}∩{i : ˆy = 1}|
                                                     t
                                                Recall =   i        i                                (26)
                                                                t
                                                            |{i : m = 1}|
                                                                i
                                                                 t
                                                        2  N x ∑  Recall ·Precision t
                                               F1-score =          t      t                          (27)
                                                       N x  Precision +Recall
                                                          t=1
                    PRAUC  则通过对精确率-召回率曲线下的面积进行积分来度量模型的整体性能. 我们将药品推荐视为一个检
                 索问题, PRAUC  的计算方法如下:

                                                    1  N x ∑ |M|  (       (
                                                         ∑
                                                                    t
                                            PRAUC =        Precision k) ∆Recall k) t                 (28)
                                                    N x
                                                      t=1 k=1

                                                      t
                                                               t
                                              ∆Recall(k) = Recall(k) −Recall(k −1) t                 (29)
                                                                                   k
                 其中,  k  是检索到的药品在排序中的排名,         Precision(k) 是在排序后的检索列表中截止   时的精度,         ∆Recall(k) 是从
                 药品  k −1 到  k  的召回率变化.
                    DDI 率是指模型预测为正例的药物对中, 真实存在               DDI 的比例, 具体定义为预测药物中存在的           DDI 对数除以
                 可能的药物组合对的对数, 即: DDI 率=DDI 对数/可能的药物组合对的对数.

                                                              | C t ˆ  |
                                                             ∑
                                                                1{[A d ] lk = 1}
                                                         1  N x ∑  l,k=1
                                                DDI rate =                                           (30)
                                                        N x       | C t ˆ  |
                                                           t=1   ∑
                                                                    1
                                                                  l,k=1
                       t
                 其中,   ˆ C  为预测结果, 而   1{·} 是一个函数, 当  {·} 中的表达式为真时返回   1, 否则返回  0.
                    为了验证我们提出的        SSMD  模型在药物组合推荐任务中的优越性, 本文选取了                13  种基线方法进行对比实验.
                 具体来说, 这些比较方法包括如下.
                    1) LR (logistic regression): 一种带有  L2 正则化的逻辑回归模型, 广泛应用于分类问题. 采用       One-vs-Rest (OvR)
                 多类策略进行多标签预测, 即一类样本拟合一个分类器.
                    2) ECC (ensembles classifier chain) [55] : 使用多热向量对诊断和手术集进行编码, 并利用多个    SVM  分类器进行
   416   417   418   419   420   421   422   423   424   425   426