前言
从零入门AI for Science(AI+化学) 是 Datawhale 2024 年 AI 夏令营第三期的学习活动,基于天池平台“第二届世界科学智能大赛 物质科学赛道:催化反应产率预测”开展的实践学习——适合想 入门并实践 机器学习算法、用AI解决化学&物质科学问题 的学习者参与。Task1链接
Task1是运行给出的baseline代码,并将结果提交到平台上得到分数,按照上述链接文本步骤进行即可。
一、赛题背景
碳氮成键反应、Diels-Alder环加成反应等一系列催化合成反应,被广泛应用于各类药物的生产合成中。研究人员与产业界在针对特定反应类型开发新的催化合成方法时,往往追求以高产率获得目标产物,也即开发高活性的催化反应体系,以提升原子经济性,减少资源的浪费与环境污染。然而,开发具有高活性的催化反应体系通常需要对包括催化剂和溶剂在内的多种反应条件进行详尽的探索,这导致了它成为了一项极为耗时且资源密集的任务。这要求对包括催化剂和溶剂在内的多种反应条件进行详尽的探索。目前,反应条件的筛选在很大程度上依赖于经验判断和偶然发现,导致催化反应条件的优化过程既耗时又费力,并且严重制约了新的高效催化合成策略的开发。
反应底物和反应条件是决定其产率的关键因素。因此,我们可以利用AI模型来捕捉底物、条件与产率之间的内在联系。借助产率预测AI模型,仅需输入底物和条件的信息,我们就能够预测该反应组合下的产率,从而有效提升催化反应的条件筛选效率。
二、比赛任务
构建一个能够准确预测碳氮成键反应产率的预测模型。
通过对反应中所包含的反应底物、添加剂、溶剂以及产物进行合理的特征化,运用机器学习模型或者深度学习模型拟合预测反应的产率。
或者利用训练集数据对开源大语言模型进行微调以预测反应的产率。
总结:
输入:底物和条件,(SMILES)
输出:产率,(float,0-1之间)
三、评价指标
实验真实结果与预测结果$R^2$决定系数来进行评测:
四、精读baseline代码
-
导入库:首先,代码导入了需要用到的库,包括
pandas
(用于数据处理和分析),scikit-learn
(机器学习库),rdkit
(化学信息工具)。 -
读取数据:代码通过使用
pd.read_csv
函数从文件中读取训练集和测试集数据。 -
使用Morgan分子指纹建模SMILES:这个过程需要调用rdkit的相关模块。然后将Reactant1,Reactant2,Product,Additive,Solvent字段的向量拼接到一起,组成一个更长的向量。
-
使用随机森林预测结果:这里直接调用
sklearn
的RandomForestRegressor
模块实例化一个随机森林模型,并对n_estimators
等重要参数进行指定。最后使用model.fit(x, y)训练模型。模型保存在本地'./random_forest_model.pkl'
。 -
加载模型进行预测,并将保存结果文件到本地:
pkl
文件直接使用pickle.load()
加载,然后使用model.predict(x)
进行预测。预测的结果保存为比赛官方指定的文件格式。
五、运行提交得到分数
六、总结
在跟着文档跑通baseline的时候我对这个赛题有了初步了解,但对代码还没有特别理解,只是跟着教程走了一遍,希望在接下来的学习中能够深入理解。