网络表示学习大作业2021
本次作业可以单人完成,也可以两人组队。
本次大作业要求对输入的分子网络进行性质预测,包括图分类任务以及图回归任务:
- ESOL:分子水溶性预测(单目标,回归)
- Lipop:分子脂溶性预测(单目标,回归)
- sars:药物分子对新冠病毒受体人类纤维蛋白受体的结合性/毒性(多目标,四分类)
数据集位于data/csvs
下,每个任务提供了三个对应的csv
文件,包括:
xxx-train.csv
:提供了一部分分子的SMILES表达式和对应的性质;xxx-test.csv
:提供了另一部分的SMILES,但没有提供对应的性质,预测这部分分子的性质是留给大家的作业;xxx-eval.csv
:包含xxx-test.csv
中所有分子的SMILES和对应的性质,仅助教可见。
本次作业提供了数据集的读取和预处理代码,详见
data/load_data.py
。从SMILES提取atom features和bond features的函数来自开源项目AttentiveFP
本次大作业的要求如下:
设计分子网络的表示学习模型。
分子性质预测的综述文章:MoleculeNet
部分参考模型见
related_work
设计好模型后,自行划分数据集xxx-train.csv
为训练集/验证集/测试集,并进行训练和测试,然后整理结果。
本次作业提供了一个极其naive的模型
ThisIsNotAGNNAtAll
(见model/GNN.py
),以及在ESOL-train.csv
上训练和输出ESOL-test.csv
答案的脚本,大家可以参考。
使用训练好的模型,为xxx-test.csv
中的分子预测性质并输出答案到answer
目录下,保存为xxx-pred.csv
。注意:
- 纵行与
xxx-test.csv
保持一致,如果分子数不一致或者错位,会导致评分脚本无法得出正确结果; - 横行与
xxx-train.csv
保持一致,如果目标数不一致或者错位,会导致评分脚本无法得出正确结果; - 由于ESOL和Lipop输出的性质都是单个浮点数,切忌在输出答案时搞混。
- 由于sars数据集存在空缺(显示为
nan
),在训练和测试时需要将空缺部分mask掉,具体mask方式可以参考评分脚本。不过输出的sars-pred.csv
不要带有空缺。- 该四分类问题中四种标签分别为0“无药效”/1“轻微药效”/2“中度药效”/3“强药效”,
nan
表示药效未知,切勿将其当成一类标签。
- 该四分类问题中四种标签分别为0“无药效”/1“轻微药效”/2“中度药效”/3“强药效”,
该部分的性质预测结果只会作为评分标准的一部分,思考和实践的过程更为重要。
上面提到的“评分脚本”为
script_check_answer.py
PDF,3-10页,包括:
- 问题分析,例如:对分子网络的理解 or 分子网络相比于传统网络(如社交网络等)的特殊性,等等
- 设计的模型
- 在
xxx-train.csv
上的训练方式和训练结果 - 分工情况(如果两人组队)
- 关于这堂课的感想与收获(可选)
打包为姓名_学号.zip
(rar/tar.gz也行),包括:
PKU-NRL2021
:文件夹,包含整个项目(这里保留整个文件夹就行,不用套娃打包)姓名_学号.pdf
:大作业报告
发送到swyang@pku.edu.cn,标题为“姓名_学号_NRL2021”
截止时间:2022/01/05 23:59