一、学习目标
目标
- 了解AI+化学领域的相关背景知识
- 阅读赛题分析并理解赛题
- 初步了解机器学习中的随机森林算法
期望结果
- 跑通baseline
二、学习到的新概念
AI与化学结合的背景
由于需要对包括催化剂和溶剂在内的多种反应条件进行详尽的探索,开发具有高活性的催化反应体系是一件极为耗时耗力且资源密集的任务,而通过AI模型来捕捉底物、条件与产率之间的内在联系并据此训练模型,从而使得只需提供底物与反应条件就可以预测该反应产率,极大提高了筛选效率。
RDKit
开源的化学信息工具包,包括化学结构的表示和操作、化学反应的模拟、分子特征计算等功能
强调文本 强调文本
三、详细笔记
看到大家在群里接龙,有很多高分,而自己分数非常低心有不甘,于是想找出优化方法。研究了一下baseline的代码,发现可以优化的地方应该在于随机森林回归模型的超参数。之前有接触过机器学习于是想到用网格搜索找到最优超参数。
estimator = RandomForestRegressor()
param_grid = {
"n_estimators":[10,30,50,100,200],
"max_depth":[10,20,30,None],
"min_samples_split":[2],
"min_samples_leaf":[1],
"n_jobs":[-1]
}
estimator = GridSearchCV(estimator,param_grid,cv = 5)
estimator.fit(train_x,train_y)
该方案并不理想,计算过程耗费太长时间。
于是尝试了贝叶斯优化。
stimator = RandomForestRegressor()
param_space = {
'n_estimators': (10, 200),
'max_depth': (1, 30),
'min_samples_split': (2, 20),
'min_samples_leaf': (1, 10),
'n_jobs': [-1]
}
estimator = BayesSearchCV(
estimator=estimator,
search_spaces=param_space,
n_iter=32,
cv=5,
random_state=42,
n_jobs=-1
)
estimator.fit(train_x,train_y)
计算的时间还是很长,可能是因为数据量过大。
四、总结
对于Task1的感受,觉得难度很简单,期待以后的学习。