使用原子尺度计算的机器学习。

CatLearn的Python项目详细描述


catlearn

An environment for atomistic machine learning in Python for applications in catalysis.

DOIBuild StatusCoverage StatusDocumentation StatusPyPI versionLicense: GPL v3

建立和测试原子机器学习模型的实用程序。实现了高斯过程(gp)回归机学习程序。这需要任何numpy数组的训练和测试特征矩阵以及目标值向量。

一般来说,以这种方式准备的任何数据都可以被馈送到gp例程中,已经添加了一些附加函数,这些函数与ASE接口。这种集成允许通过gp预测操纵原子对象,以及通过使用许多ase函数动态生成描述符。

catlearn还包括用于有效过渡状态搜索的MLNEB算法和用于有效原子结构优化的MLMIN算法。

请参阅tutorials以了解代码可以做什么以及在设置预测模型时使用的约定的详细概述。有关所有可用功能的概述,请阅读documentation

目录

安装

(Back to top)

安装代码的最简单方法是使用:

$ 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

教程

(Back to top)

tutorials中提供了有用的示例和测试脚本。

用法

(Back to top)

建立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)

功能性

(Back to top)

catlearn中有很多功能可以帮助处理atom数据和构建优化模型。这包括:

  • 其他代码的API:
  • 指纹生成器:
    • 批量系统
    • 支架/板系统
    • 离散系统
  • 预处理例程:
    • 数据清理
    • 功能消除
    • 功能工程
    • 特征提取
    • 功能缩放
  • 回归方法:
    • 正则岭回归
    • 高斯过程回归
  • 交叉验证:
    • K形折叠Cv
    • 合奏k-fold cv
  • 机器学习算法
    • 机器学习轻推弹性带(ML-NEB)算法。
  • 一般公用设施:
    • K-均值聚类
    • 邻域生成器
    • 惩罚函数
    • sqlite数据库存储

如何引用catlearn

(Back to top)

如果您发现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

贡献

(Back to top)

欢迎任何人参与这个项目。有关设置代码本地副本的帮助,请参阅贡献指南。有一些TODO各个模块的自述文件中的项目,这些模块为可以改进的代码部分提供建议。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件