Commit dfe34767 authored by Thomas Purcell's avatar Thomas Purcell
Browse files

Merge branch 'joss' of gitlab.mpcdf.mpg.de:tpurcell/cpp_sisso into data_overwrite_error

parents d02f8322 34492b28
......@@ -217,3 +217,48 @@ url = {https://pubs.acs.org/doi/full/10.1021/acs.jcim.9b00807},
volume = {59},
year = {2019}
}
@article{Bartel2019a,
abstract = {Predicting the stability of the perovskite structure remains a long-standing challenge for the discovery of new functional materials for many applications including photovoltaics and electrocatalysts. We developed an accurate, physically interpretable, and one-dimensional tolerance factor, t, that correctly predicts 92{\%} of compounds as perovskite or nonperovskite for an experimental dataset of 576 ABX 3 materials (X = O 2− , F − , Cl − , Br − , I − ) using a novel data analytics approach based on SISSO (sure independence screening and sparsifying operator). t is shown to generalize outside the training set for 1034 experimentally realized single and double perovskites (91{\%} accuracy) and is applied to identify 23,314 new double perovskites (A 2 BB′X 6 ) ranked by their probability of being stable as perovskite. This work guides experimentalists and theorists toward which perovskites are most likely to be successfully synthesized and demonstrates an approach to descriptor identification that can be extended to arbitrary applications beyond perovskite stability predictions.},
archivePrefix = {arXiv},
arxivId = {1801.07700},
author = {Bartel, Christopher J. and Sutton, Christopher and Goldsmith, Bryan R. and Ouyang, Runhai and Musgrave, Charles B. and Ghiringhelli, Luca M. and Scheffler, Matthias},
doi = {10.1126/sciadv.aav0693},
eprint = {1801.07700},
issn = {23752548},
journal = {Sci. Adv.},
month = {feb},
number = {2},
pmid = {30783625},
publisher = {American Association for the Advancement of Science},
title = {{New tolerance factor to predict the stability of perovskite oxides and halides}},
volume = {5},
year = {2019}
}
@article{Cao2020,
abstract = {Significant advances have been made in predicting new topological materials using high-throughput empirical descriptors or symmetry-based indicators. To date, these approaches have been applied to materials in existing databases, and are severely limited to systems with well-defined symmetries, leaving a much larger materials space unexplored. Using tetradymites as a prototypical class of examples, we uncover a two-dimensional descriptor by applying an artificial intelligence (AI)-based approach for fast and reliable identification of the topological characters of a drastically expanded range of materials, without prior determination of their specific symmetries and detailed band structures. By leveraging this descriptor that contains only the atomic number and electronegativity of the constituent species, we have readily scanned a huge number of alloys in the tetradymite family. Strikingly, nearly half of them are identified to be topological insulators, revealing a much larger territory of the topological materials world. The present work also attests to the increasingly important role of such AI-based approaches in modern materials discovery.},
author = {Cao, Guohua and Ouyang, Runhai and Ghiringhelli, Luca M. and Scheffler, Matthias and Liu, Huijun and Carbogno, Christian and Zhang, Zhenyu},
doi = {10.1103/PhysRevMaterials.4.034204},
file = {:home/purcell/Documents/Mendeley Desktop/Cao et al. - Physical Review Materials - 2020.pdf:pdf},
issn = {24759953},
journal = {Phys. Rev. Mater.},
keywords = {doi:10.1103/PhysRevMaterials.4.034204 url:https://},
month = {mar},
number = {3},
pages = {034204},
publisher = {American Physical Society},
title = {{Artificial intelligence for high-throughput discovery of topological insulators: The example of alloyed tetradymites}},
url = {https://journals.aps.org/prmaterials/abstract/10.1103/PhysRevMaterials.4.034204},
volume = {4},
year = {2020}
}
@article{scikit-learn,
title={Scikit-learn: Machine Learning in {P}ython},
author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V.
and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P.
and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and
Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.},
journal={Journal of Machine Learning Research},
volume={12},
pages={2825--2830},
year={2011}
}
---
title: 'SISSO++'
title: 'SISSO++: A C++ Implementation of the Sure Independence Screening and Sparisifying Operator'
tags:
- SISSO
- Symbolic Regression
......@@ -29,20 +29,21 @@ bibliography: paper.bib
The sure-independence screening and sparsifying operator (SISSO) method [@Ouyang2017] is an algorithm belonging to the field of artificial intelligence and more specifically supervised machine learning.
As a symbolic-regression technique, SISSO is used to identify low-dimensional, analytic functions, the so called descriptors, that best predict the labels of a target data set.
SISSO is introduced for both regression and classification tasks.
In practice, SISSO first constructs a large and exhaustive feature space of billions of potential descriptors by taking in a set of user-provided *primary features*, and then iteratively applying a set of unary and binary operators, e.g., addition, multiplication, exponentiation, and squaring.
In practice, SISSO first constructs a large and exhaustive feature space of trillions of potential descriptors by taking in a set of user-provided *primary features*, and then iteratively applying a set of unary and binary operators, e.g., addition, multiplication, exponentiation, and squaring.
From this exhaustive pool of candidate descriptors, the best ones are identified via sure-independence screening, from which the best low-dimensional linear models are found via an $\ell_0$ regularization.
Because symbolic regression generates an interpretable equation, it has become an increasingly popular method across scientific disciplines [@Wang2019a, @Neumann2020, @Udrescu2020a].
Because symbolic regression generates an interpretable equation, it has become an increasingly popular method across scientific disciplines [@Wang2019a], [@Neumann2020], [@Udrescu2020a].
A particular advantage of these approaches are their capability to model complex phenomena using relatively simple descriptors.
Because of this, SISSO has been used successfully in the past to model, explore, and predict important material properties, including: the stability of different phases [@Bartel2018a, @Schleder2020], the catalytic activity and reactivity [@Han2021, @Xu2020, @Andersen2021], and glass transition temperatures [@Pilania2019].
Beyond regression problems, SISSO has also been used successfully to classify materials into different crystal prototypes [@Ouyang2019], or whether a material crystallizes in its ground state as a perovskite [@Bartel2019], or to determine if a material is a topological insulator or not [@Cao2019].
Because of this, SISSO has been used successfully in the past to model, explore, and predict important material properties, including: the stability of different phases [@Bartel2018a], [@Schleder2020], the catalytic activity and reactivity [@Han2021], [@Xu2020], [@Andersen2021], and glass transition temperatures [@Pilania2019].
Beyond regression problems, SISSO has also been used successfully to classify materials into different crystal prototypes [@Ouyang2019a], or whether a material crystallizes in its ground state as a perovskite [@Bartel2019a], or to determine if a material is a topological insulator or not [@Cao2020].
The SISSO++ package is a modular and extensible C++ implementation of the SISSO method with python bindings.
Specifically, SISSO++ applies this methodology for regression, log regression, and classification problems.
Additionally the library include multiple python functions to facilitate the post-processing, analyzing, and visualizing the resulting models.
# Statement of need
The main goal of the SISSO++ package is to provide a user-friendly, easily extendable version of the SISSO method for the scientific community that can be used both on high-performance architectures for data production and on personal computing devices for analyzing and visualizing the results.
The main goal of the SISSO++ package is to provide a user-friendly, easily extendable version of the SISSO method for the scientific community.
The code can be used both on high-performance architectures for data production and on personal computing devices for analyzing and visualizing the results.
For this reason, all computational-intensive task are written in C++ and support parallelization via MPI and openMP.
Additionally, the Python bindings allow one to easily incorporate the methods into computational workflows and postprocess results.
Furthermore, this can facilitate the future integration of SISSO into existing machine-learning frameworks, e.g. scikit-learn [@scikit-learn]
......@@ -68,6 +69,6 @@ The following features are implemented in SISSO++:
# Acknowledgements
The authors would like to thank Markus Rampp and Meisam Tabriz for technical support. We would also like to thank Lucas Foppa, Jingkai Quan, Aakash Naik, and Luigi Sbailò for testing and providing valuable feedback. T.P. would like to thank the Alexander von Humboldt Foundation for their support through the Alexander von Humboldt Postdoctoral Fellowship Program. This project was supported by TEC1p (the European Research Council (ERC) Horizon 2020 research and innovation programme, grant agreement No. 740233), BiGmax (the Max Planck Society’s Research Network on Big-Data-Driven Materials-Science), and the NOMAD pillar of the FAIR-DI e.V. association.
The authors would like to thank Markus Rampp and Meisam Tabriz of the MPCDF for technical support. We would also like to thank Lucas Foppa, Jingkai Quan, Aakash Naik, and Luigi Sbailò for testing and providing valuable feedback. T.P. would like to thank the Alexander von Humboldt Foundation for their support through the Alexander von Humboldt Postdoctoral Fellowship Program. This project was supported by TEC1p (the European Research Council (ERC) Horizon 2020 research and innovation programme, grant agreement No. 740233), BiGmax (the Max Planck Society’s Research Network on Big-Data-Driven Materials-Science), and the NOMAD pillar of the FAIR-DI e.V. association.
# References
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment