一.任务
构建一个能够准确预测碳氮成键反应产率的预测模型。
通过对反应中所包含的反应底物、添加剂、溶剂以及产物进行合理的特征化,运用机器学习模型或者深度学习模型拟合预测反应的产率。
或者利用训练集数据对开源大语言模型进行微调以预测反应的产率。
二.流程
2-1.导入库
首先,代码导入了需要用到的库,包括 pandas(用于数据处理和分析),scikit-learn(机器学习库),rdkit(化学信息工具)。
2-2.读取数据
代码通过使用 pd.read_csv 函数从文件中读取训练集和测试集数据。
2-3.使用Morgan分子指纹建模SMILES
- 这个过程需要调用rdkit的相关模块。然后将Reactant1,Reactant2,Product,Additive,Solvent字段的向量拼接到一起,组成一个更长的向量。
2-4.使用随机森林预测结果
直接调用sklearn的RandomForestRegressor模块实例化一个随机森林模型,并对n_estimators等重要参数进行指定。最后使用model.fit(x, y)训练模型。模型保存在本地’./random_forest_model.pkl’。
2-5.加载模型进行预测,并将保存结果文件到本地
pkl文件直接使用pickle.load()加载,然后使用model.predict(x)进行预测。预测的结果保存为比赛官方指定的文件格式。
三.过程问题及解决办法
中间导入数据过程中有出现过刷屏,后面得知这是正常现象,无需理会。在导入数据中没看懂步骤,不知怎么新建文件夹,问了别人知道有两种办法创建文件夹,并且直接在终端解压压缩包就行,无需先解压再导入进去,更省事。想要提高成绩,同样也可以尝试修改随机森林的参数,自行调参。