666. Make Data Count - Finding Data References | make-data-count-finding-data-references
感谢我的队友们的辛勤工作 @zxc123cc, @simingtan, @xuanmingzhang777, @tonyarobertson
(1) 对于 V4 数据,基于 article_id 从 V4 获取 DOI,并根据是否出现在文章中进行过滤,以识别 DOI 数据。
(2) 如果不在 V4 中,遵循正常流程。
外部数据:https://europepmc.org/pub/databases/pmc/TextMinedTerms/
训练集中的所有 ACC ID 都包含在此数据集中。我们基于 exist ID 列获取文章 ID 和 ACC ID 之间的关系,然后基于 article_id 从外部数据检索 ACC ID,并根据是否出现在文章中进行过滤,以识别 ACC ID 数据。以下数据被排除,仅提交 ACC,类型 SAMN 设置为 P,其他设置为 S, resulting in lb=0.783。
print('原始数据:', sub_df.shape)
sub_df = sub_df[~sub_df['dataset_id'].str.startswith('GCA_')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.contains('/')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.startswith('GO:')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.startswith('HGNC:')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.startswith('RRID:')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.contains(':')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.match(r'^\\d+$')].reset_index(drop=True)
sub_df = sub_df[~sub_df['dataset_id'].str.startswith('NCT')].reset_index(drop=True)
print('过滤后数据:', sub_df.shape)
(2) 如果不在外部数据中,遵循正常流程。
(1) 获取所有文章 ID 和数据 DOI 的作者,并使用作者信息进行判断。
(2) 对于无法获取作者信息的数据:
组合策略 1:固定 SAMN 和 EPI 分别为 P 和 S,其余由多数投票规则决定。
策略 2:对于 SAMN,如果任何模型预测为 P,则设为 P;对于 EPI,如果任何模型预测为 S,则设为 S;其余由多数投票规则决定。
LB 策略 1 表现更好,而 PB 策略 2 显示出更大的提升。
获取 EPI_ 的作者信息,并使用作者信息来确定类型。