使用原子尺度计算的机器学习。
CatLearn的Python项目详细描述
catlearn
An environment for atomistic machine learning in Python for applications in catalysis.
建立和测试原子机器学习模型的实用程序。实现了高斯过程(gp)回归机学习程序。这需要任何numpy数组的训练和测试特征矩阵以及目标值向量。
一般来说,以这种方式准备的任何数据都可以被馈送到gp例程中,已经添加了一些附加函数,这些函数与ASE接口。这种集成允许通过gp预测操纵原子对象,以及通过使用许多ase函数动态生成描述符。
catlearn还包括用于有效过渡状态搜索的MLNEB算法和用于有效原子结构优化的MLMIN算法。
请参阅tutorials以了解代码可以做什么以及在设置预测模型时使用的约定的详细概述。有关所有可用功能的概述,请阅读documentation。
目录
安装
安装代码的最简单方法是使用:
$ pip install catlearn
这将自动安装代码和依赖项。或者,可以使用以下命令将存储库克隆到本地目录:
$ git clone https://github.com/SUNCAT-Center/CatLearn.git
然后将<install_dir>/
放入$PYTHONPATH
环境变量中。
请确保在中安装依赖项:
$ pip install -r requirements.txt
Docker
要使用docker映像,必须安装并运行docker。克隆项目后,按如下方式生成并运行图像:
$ docker build -t catlearn .
然后可以用两种方式使用图像。可以将docker映像作为bash环境运行,在其中可以使用catlearn,所有依赖项都将就位。
$ docker run -it catlearn bash
或者可以从docker映像运行python。
$ docker run -it catlearn python2 [file.py] $ docker run -it catlearn python3 [file.py]
使用CTRL+D完成DOCKER图像的退出。
可选依赖项
教程脚本通常会输出一些结果的图形表示等。对于这些脚本,建议至少安装matplotlib
:
$ pip install matplotlib seaborn
教程
tutorials中提供了有用的示例和测试脚本。
用法
建立Catlearn的高斯过程模型,并使用以下代码行进行一些预测:
importnumpyasnpfromcatlearn.regressionimportGaussianProcess# Define some input data.train_features=np.arange(200).reshape(50,4)target=np.random.random_sample((50,))test_features=np.arange(100).reshape(25,4)# Setup the kernel.kernel=[{'type':'gaussian','width':0.5}]# Train the GP model.gp=GaussianProcess(kernel_list=kernel,regularization=1e-3,train_fp=train_features,train_target=target,optimize_hyperparameters=True)# Get the predictions.prediction=gp.predict(test_fp=test_features)
功能性
catlearn中有很多功能可以帮助处理atom数据和构建优化模型。这包括:
- 其他代码的API:
- 指纹生成器:
- 批量系统
- 支架/板系统
- 离散系统
- 预处理例程:
- 数据清理
- 功能消除
- 功能工程
- 特征提取
- 功能缩放
- 回归方法:
- 正则岭回归
- 高斯过程回归
- 交叉验证:
- K形折叠Cv
- 合奏k-fold cv
- 机器学习算法
- 机器学习轻推弹性带(ML-NEB)算法。
- 一般公用设施:
- K-均值聚类
- 邻域生成器
- 惩罚函数
- sqlite数据库存储
如何引用catlearn
如果您发现catlearn对您的研究有用,请引用
1) M. H. Hansen, J. A. Garrido Torres, P. C. Jennings,
Z. Wang, J. R. Boes, O. G. Mamun and T. Bligaard.
An Atomistic Machine Learning Package for Surface Science and Catalysis.
https://arxiv.org/abs/1904.00904
如果您使用CatLearn的ML-NEB模块,请引用:
2) J. A. Garrido Torres, M. H. Hansen, P. C. Jennings,
J. R. Boes and T. Bligaard. Phys. Rev. Lett. 122, 156001.
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.122.156001
贡献
欢迎任何人参与这个项目。有关设置代码本地副本的帮助,请参阅贡献指南。有一些TODO
各个模块的自述文件中的项目,这些模块为可以改进的代码部分提供建议。