欢迎光临散文网 会员登陆 & 注册

迈高科技||matminer的数据检索功能和数据特征化功能介绍

2022-08-19 16:18 作者:迈高科技  | 我要投稿

简介

matminer是一款基于材料信息学的交互工具。它包含很多数据集和针对材料数据的处理方式。今天主要介绍数据集的获取和基于数据集的特征生成。


Matminer是基于python开发的一款用于材料科学机器学习的开源软件。它是一款多功能的开源软件,比如可以从Materials project等数据库自动获取相应材料的数据,并将这些材料数据转化为可用于机器学习模型训练的可输入特征进行探索性分析。但是Matminer本身并不具备常用的机器学习算法,通常情况下需要配合MatCloud+平台或者sklearn等机器学习相关的开源工具使用。

图1 matminer开源工具的功能示意图[1]

今天,我们来学习它的数据获取功能和特征生成功能吧!

1 数据检索功能

机器学习顺利进行的首要条件是数据集的获取。在材料科学领域中已建立起许多个材料数据库,但是由于不同材料数据库的数据获取方式不同,因此数据库的使用也变得复杂。Matminer的数据挖掘模块通过提供通用的数据库数据交互方式,通过数据集的获取、查询数据集的详细信息、查看数据集的来源等。

matminer支持可以从Citrination 、Materials Project (MP) 、Materials Data Facility (MDF) 、Materials Platform for Data Science(MPDS)四个数据库中获取数据。

下面让我们来认识matminer的数据获取功能吧!


图2 matminer中数据获取功能模块代码示例

图2代码示例的意思是从matminer.datasets.dataset_retrieval模块导入10个数据探索的方法,按照顺序分别是获取所有数据集的详细信息(get_all_dataset_info)、可获得的数据集(get_available_datasets)、数据集的贡献方(get_dataset_attribute)、数据集的引用(get_dataset_citations)、数据集中列名称的描述(get_dataset_column_description)、数据集中列名称(get_dataset_columns)、数据集的描述(get_dataset_description)、数据集的数据条目信息(get_dataset_num_entries)、数据集的参考文献信息(get_dataset_reference)、加载数据集(load_dataset)。

以下是上述部分功能的简要介绍:

数据获取功能:代码输出的是matminer中数据集的名称,以列表的形式输出,一共42份数据集。

图3 get_available_datasets 数据集获取功能代码运行示意图


默认情况下打印的是数据集的名称和简介

图4 get_available_datasets 数据获取功能中,输出数据集名称和详细介绍的代码示例

使用get_all_dataset_info功能来查看某一数据集的详细信息,比如我们查看了数据集名称为’boltztrap_mp’的详细信息,打印出了数据集的来源,包含的数据条目、数据产生的条件和来源以及相关的文献等信息。

图5 get_all_dataset_info功能代码示例

使用get_dataset_columns功能查看数据集的列名称(体现的是这个数据集中包含的材料数据的类型),使用get_dataset_num_entried功能查看数据集的数据条目。

图6 get_dataset_columns和get_dataset_num_entried代码示例

使用load_dataset功能加载数据集并进行查看,以数据集’boltztrap_mp’为例子,其中data.shape是查看数据集的条目,可以看到这个数据集是8924行和9列, data.head()是查看这个数据集的前五行详细内容。

图7 load_dataset功能代码示例


图7中通过代码输出的信息可以看出,这个数据集的维度是8924*9,即有8924条材料数据,9列基本信息(分别为mpid:Materials Project identifier;pf_n:n-type thermoelectric power factor in uW/cm2;pf_p:p-type power factor in uW/cm2;s_n:n-type Seebeck coefficient in micro Volts per Kelvin;s_p:p-type Seebeck coefficient in micro Volts per Kelvin;formula:Chemical formula of the entry;m_n:n-type/conduction band effective mass;m_p:p-type/valence band effective mass;structure:pymatgen Structure object describing the crystal structure of the material;)

2 数据特征化功能

使用matminer的featurizer模块,将已经获得的数据集进行数值特征化,即使用已获取数据集中的化学式,构建相应的特征,用于机器学习的输入。首先,使用matminer.featurizers.conversions模块中的StrTocompositon功能将数据集中不同的化学式转化为标准的composition格式,即提取化学式中的元素组成信息。

图8 StrTocompositon功能代码示例

其次,使用matminer.featurizers.conversions模块中的ElementProperty功能,这个功能包含了五种特征属性模块,分别是magpie、deml、matminer、matscholar、megnet。这里以magpie为例,进行特征的生成。

图9 ElementProperty功能代码示例

查看此时的数据维度是8924*142,也就是magpie模块生成了133个与元素相关的特征。
查看一下magpie模块的源码,可以看到feature来源于“原子质量、周期、数、族数等”,计算方式为“最大值、最小值、范围、平均值、平均偏差”等方式。

图 10 magpie中元素信息与计算方式的代码示例


总结

本期内容介绍了开源材料信息学matminer的数据获取功能和特征化功能。由于机器学习的第一步就是收集和整理高质量数据,但是Matminer有一定的局限性:
(1)matminer软件需要在python环境下安装和使用,需要使用者必备一定的python代码编程知识,了解基本的编程语法才可以正常使用

(2)本身并不具备机器学习算法,只可以进行常规材料数据集的获取及数据预处理工作

(3)机器学习模型的建立也需要配合sklearn等机器学习开源工具使用,而sklearn等机器学习软件也需要进行安装和具备相应的python编程基础才可顺利使用

相比之下,MatCloud+平台的人工智能模块功能更加齐全:

(1)对于初学者来说,入门极快,无需前期了解和学习大量的python代码知识

(2)不需要额外安装软件和部署环境,界面简洁易操作

(3)操作使用浏览器在线即可进行数据处理和机器学习模型的建立及结果的分析

(4)提供在线计算资源,对于使用者来说不需要额外配置其他高性能的计算软硬件

因此,我们介绍MatCloud+平台这个可以直接将获取的数据用于机器学习的数据获取方法,MatCloud+平台是我国首个正式上线的材料基因组高通量材料设计平台。

所有计算的物性数据均可以直接导入到平台的物性数据库,选取所需要的物性数据导出到AI数据库作为机器学习的模型训练数据,省去了科研工作中对大批量数据整合的时间。减少了对数据整理不及时、不完整和难追溯等问题。或者根据自己的研究体系的所需数据直接导入到机器学习数据库AI训练集库中作为机器学习的输入!



迈高科技||matminer的数据检索功能和数据特征化功能介绍的评论 (共 条)

分享到微博请遵守国家法律