Online Documentation: https://geochemistrypi.readthedocs.io Β |Β Source Code: https://github.com/ZJUEarthData/geochemistrypi
- β¨ Overview
- β‘ Quick Installation
- π Quick Update
- π Data Preparation
- π Running Examples
- πΊοΈ Roadmap
- π§ Geochemistry Ο Mind Map
- π₯ Team Info
- π€ Join Us
- π In-house Materials
- π¬ In-house Videos
- π Contributors
- π Project Statistics
- β Support the Project
Geochemistry Ο is an open-sourced highly automated machine learning Python framework dedicating to build up MLOps level 1 software product for data-driven geochemistry discovery on tabular data.
π― Our goal: one data-mining run in 5 minutes, ten data-mining runs in 10 minutes.
- Continuous Training
- Machine Learning Lifecycle Management
- Model Inference
- Easy to use: The automation of data mining process provides the users with simple number options to choose.
- Extensible: It allows appending new algorithms through Scikit-learn with automatic hyper parameter searching by FLAML and Ray.
- Traceable: It integrates MLflow to build special storage mechanism to streamline the end-to-end machine learning lifecycle.
π’ Latest Update: follow up by clicking Starred and Watch on our GitHub repository, then get email notifications of the newest features automatically.
π¬ Note: Chatbot driven by multi-agent system is available in the right-bottom corner of Online Documentation with a blue button.
The following figure is the simplified overview of Geochemistry Ο:
The following figure is the frontend-backend separation architecture of Geochemistry:
If the software contributes to your research, cite the work as :
ZhangZhou J*, He Can*, Sun Jianhao, Zhao Jianming, Lyu Yang, Wang Shengxin, Zhao Wenyu, Li Anzhou, Ji Xiaohui. Geochemistry Ο: Automated machine learning python framework for tabular data (2024). Geochemistry, Geophysics, Geosystems, 25, e2023GC011324
π₯ Download link: https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2023GC011324
π This project has been mentioned in the following articles:
- Xirui Qiao et al. (2026) - Machine learning thermobarometry: Methods, applications, and a benchmarking protocol - Lithos
- Fangbin Liu et al. (2026) - Integrating multi-algorithm machine learning with zircon REE geochemistry to trace source-to-sink provenance in the Mekong River Basin - Geomorphology
- Jia-Min Lin et al. (2026) - An enhanced machine learning plagioclase-liquid hygrometer for magmatic H2O estimation across different tectonic settings - GEOLOGICAL SOCIETY OF AMERICA BULLETIN
- Maria-Emanuela Mihailov et al. (2026) - Hydro-Sedimentological Controls on Natural and Anthropogenic Radionuclide Distribution in the Western Black Sea Shelf - Environments
- Ying-Hui Gao et al. (2025) - A systematic evaluation of data preprocessing and model optimization for machine learning algorithms: Using sphalerite trace element data as an example - Journal of Asian Earth Sciences
- Chufan Zhou et al. (2025) - Advances of machine learning in stable isotope geochemistry - Journal of Analytical Atomic Spectrometry
- Chun-Tao Liu et al. (2025) - The sub-arc mantle has remained oxidized since the Neoproterozoic oxygenation event - Nature Communications
- Alessandro Musu et al. (2025) - Orange-Volcanoes: A new open and collaborative platform to perform data-driven investigations and machine learning analyses in petrology and volcanology - Applied Computing and Geosciences
- G. A. Shevchenko et al. (2025) - Applications of Data Science Methods in Petroleum Geochemistry: Current State - Moscow University Geology Bulletin
- Yang LYU et al. (2025) - Storage and analysis of tabular data of mineralogy, petrology and geochemistry: from on-premises to cloud - Bulletin of Mineralogy Petrology and Geochemistry
- Lin Deng et al. (2025) - Automated machine learning for residential property valuation - ENGINEERING APPLICATIONS OF ARTIFICIAL INTELLIGENCE
- Jun-Wei Zhang et al. (2025) - Clustering-Informed Retrieval-Augmented Generation for LLM-Based Log Anomaly Detection - NAECON 2025 - IEEE National Aerospace and Electronics Conference
- Maurizio Petrelli et al. (2024) - Machine Learning in Petrology: State-of-the-Art and Future Perspectives - JOURNAL OF PETROLOGY
- Deng Lin (2024) - Develop an Automated Machine Learning Platform for Residential Property Valuation - Hong Kong University of Science and Technology (Hong Kong)
Related report:
Geochemistry Ο was selected for featuring as an Editorβs Highlight in EOS magazine by American Geophysical Union (fewer than 2 percent of paper are selected) and quoted in Geochemical NEWS by Geochemical Society.
π Eos Website: https://eos.org/editor-highlights/machine-learning-for-geochemists-who-dont-want-to-code
Have an overview of how our software can accelerate your data-mining experiment.
- Interact with Deepseek to help install the new version of Geochemistry Ο and upgrade from the old version [Bilibili] | [YouTube]
- Introduction to New Features in Geochemistrypi V0.8.0 - Yunzhou Han and Chufan Zhou [Bilibili]
- Geochemistry Ο v0.7.0 Introduction Video [Bilibili] | [YouTube]
- Geochemistry Ο v0.7.0 for Regression Demo [Bilibili] | [YouTube]
- Geochemistry Ο v0.7.0 for Classification Demo [Bilibili] | [YouTube]
- MLflow UI user guide - Geochemistry Ο v0.5.0 [Bilibili] | [YouTube]
- Geochemistry Ο - Download and Run the Beta Version [Bilibili] | [YouTube]
- Geochemistry Ο - Installation Guide via EXE File [Bilibili] | [YouTube]
- Installing Geochemistry Ο in Pycharm [Bilibili]
- Geochemistry Ο - full range [Bilibili]
Our software is well tested on macOS and Windows system with Python 3.9. Other systems and Python version are not guaranteed.
One instruction to download on command line, such as Terminal on macOS, Power Shell on Windows.
pip install geochemistrypiDownload the latest version to avoid some old version issues, such as dependency downloading.
pip install "geochemistrypi==0.8.1"One instruction to download on Jupyter Notebook or Google Colab.
!pip install geochemistrypiDownload the latest version to avoid some old version issues, such as dependency downloading.
!pip install "geochemistrypi==0.8.1"The following screenshot shows the downloads by instruction and launching of our software on macOS:
You might run into some issues during installation, please refer to:
- Geochemistry Ο - Possible Issues with pip Installation in China - Li Keran
- Geochemistry Ο - How to Fix pip Installation Failures in China - Li Keran
- Geochemistry Ο - Currently the Fastest Install Method in China β Installing from GitHub Using Requirements - Li Keran
- Geochemistry Ο - Command Line Version Operation Demo Video
For Windows users, there is an alternative way to download by one-click via .exe file. You can watch this video [Bilibili] | [YouTube] to learn about it.
After downloading, please check the downloaded version of our software:
geochemistrypi --versionNote: For more detail on installation, please refer to our online documentation in Installation Manual under the section of FOR USER. Over there, we highly recommend to use virtual environment (Conda) to avoid dependency version problems.
One instruction to update the software to the latest version on command line, such as Terminal on macOS, Power Shell on Windows.
pip install --upgrade geochemistrypiOne instruction to download on Jupyter Notebook or Google Colab.
!pip install --upgrade geochemistrypiCheck the updated version of our software:
geochemistrypi --versionIn order to utilize the functions provided by our software, your own data set should satisfy:
- be with the suffix .xlsx or .csv, which is supported by Microsoft Excel.
- be comprise of location information LATITUDE and LONGITUDE, two columns respectively. It is optional.
If you want to run classification algorithm, you data set should satisfy:
- a label column. You can name it as you wish, such as Label.
Column name specification:
- No restriction on the column names. You can name them as you want except for two special and optional column LATITUDE and LONGITUDE.
- every column can only one column name. Multi level column names are not allowed.
- Between two columns with values, a completed void column can exists.
The following are seven built-in data sets in our software stored on Google Drive and Tencent Docs, have a look on them. For the algorithm you intend to run, you can refer to the data format of the corresponding dataset.
The following are seven built-in data sets in our software stored on Google Drive and Tencent Docs, have a look on them. For the algorithm you intend to run, you can refer to the data format of the corresponding dataset.
| Dataset | Google Drive | Tencent Docs |
|---|---|---|
| Data_Regression.xlsx | Link | Link |
| ApplicationData_Regression.xlsx | Link | Link |
| Data_Classification.xlsx | Link | Link |
| ApplicationData_Classification.xlsx | Link | Link |
| Data_Clustering.xlsx | Link | Link |
| Data_Decomposition.xlsx | Link | Link |
| Data_AnomalyDetection.xlsx | Link | Link |
| Data_Time_Series.xlsx | - | Link |
Note: For more detail on data preparation, please refer to our online documentation in Model Example under the section of FOR USER.
- Data Preprocessing
- Classfication
- Regression
- Clustering
- Decomposition
- Anomaly Detection
- Time Series
- Network Analysis
How to run: After successfully downloading, run the instructions as the following examples shown on command line / Jupyter Notebook / Google Colab.
Once the software starts, there are two folders geopi_output and geopi_tracking generated automatically for result storage.
geopi_tracking: It is used by MLflow as the storage for visualized operations in the web interface, which users cannot modify directly.geopi_output: It is a regular folder aligning with MLflow's storage structure, which users can operate.
From v0.7.0 onwards, there is one new command with the option --desktop to read the training data and application from the folder geopi_input on desktop.
geopi_input: It is used to put the datasets you want our software to process.
On command line:
geochemistrypi data-miningOn Jupyter Notebook / Google Colab:
!geochemistrypi data-miningNote:
- There are five built-in data sets corresponding to five kinds of model pattern.
- The generated output directory
geopi_outputandgeopi_trackingwill be on desktop by default.
On command line:
geochemistrypi data-mining --desktopOn Jupyter Notebook / Google Colab:
!geochemistrypi data-mining --desktopNote:
- You need to create a directory
geopi_inputon desktop and put the datesets in it. If there is nogeopi_inputon desktop, our software will create one for you with all built-in datasets provided. - The generated output directory
geopi_outputandgeopi_trackingwill be on desktop by default.
On command line:
geochemistrypi data-mining --data your_own_data_set.xlsxOn Jupyter Notebook / Google Colab:
!geochemistrypi data-mining --data your_own_data_set.xlsxNote:
- Currently,
.xlsxand.csvfiles are supported. Please specify the path your data file exists. For Google Colab, don't forget to upload your dataset first. - The generated output directory
geopi_outputandgeopi_trackingwill be on the directory where you run this command.
On command line:
geochemistrypi data-mining --training your_own_training_data.xlsx --application your_own_application_data.xlsxOn Jupyter Notebook / Google Colab:
!geochemistrypi data-mining --training your_own_training_data.xlsx --application your_own_application_data.xlsxNote:
- Please make sure the column names (data schema) in both training data file and application data file are the same. Because the operations you perform via our software on the training data will be record automatically and subsequently applied to the application data in the same order.
- The training data in our pipeline will be divided into the train set and test set used for training the ML model and evaluating the model's performance. The score includes two types. The first type is the scores from the prediction on the test set while the second type is cv scores from the cross validation on the train set.
- The generated output directory
geopi_outputandgeopi_trackingwill be on the directory where you run this command.
On command line:
geochemistrypi data-mining --mlflowOn Jupyter Notebook / Google Colab:
!geochemistrypi data-mining --mlflowNote:
- Once the command is executed, our software will search
geopi_trackingdirectory from the current working directory. If it doesn't exist, then our software will search it on desktop. - Copy the URL shown on the console into any browser to open the MLflow web interface. The URL is normally like this http://127.0.0.1:5000. Search MLflow online to see more operations and usages.
It works as a software application with a command-line interface (CLI) to automate data mining process with frequently-used machine learning algorithms and statistical analysis methods, which would further lower the threshold for the geochemists.
The highlight is that through choosing simple number options, the users are able to implement a full cycle of data mining without knowledge of SciPy, NumPy, Pandas, Scikit-learn, FLAML, Ray packages.
The following figure is the activity diagram of automated ML pipeline in Geochemistry Ο:
Its data section provides feature engineering based on arithmatic operation. It allows the users to have a statistic analysis on the data set as well as on the imputation result, which is supported by the combination of Monte Carlo simulation and hypothesis testing.
Its models section provides both supervised learning and unsupervised learning methods from Scikit-learn framework, including four types of algorithms, regression, classification, clustering, and dimensional reduction. Integrated with FLAML and Ray framework, it allows the users to run AutoML easily, fastly and cost-effectively on the built-in supervised learning algorithms in our framework.
The following figure is the hierarchical architecture of Geochemistry Ο:
Currently, we are building three access ways to provide more user-friendly service, including web portal, CLI package and API. It allows the user to perform continuous training and model inference by automating the ML pipeline and machine learning lifecycle management by unique storage mechanism in different access layers.
The following figure is the system architecture diagram:
The following figure is the customized automated ML pipeline:
The following figure is the design pattern hierarchical architecture:
The following figure is the storage mechanism:
The whole package is under construction and the documentation is progressively evolving.
β Click here for more details
| Name | Role | Contact |
|---|---|---|
| Prof. ZhangZhou (Zhejiang University, China) | Project Manager | zhangzhou333@zju.edu.cn |
| Can He (Sany, National University of Singapore, Singapore) | Project Lead | sanyhew1097618435@163.com |
| Jianming Zhao (Jamie, Zhejiang University, China) | Technical Group Head | jmzhao29@gmail.com |
| Yongkang Chan (Kill-virus, Lanzhou University, China) | Product Group Head | kk1361207571@163.com |
| Yang Lyu (Daisy, Zhejiang University, China) | Cloud Product Lead | lyuyang1007@zju.edu.cn |
| Jianhao Sun (Jin, Nanjing University, China) | Project Development Lead | sjh20171502@gmail.com |
| Chufan Zhou (Yoko, Institute of Geochemistry, Chinese Academy of Sciences; University of Chinese Academy of Sciences, China) | Chemical Modeling Lead | 1176733817@qq.com |
| Yunzhou Han (China University of Geosciences Beijing, China) | Multiple output functions Lead | 249308332@qq.com |
- Prof. ZhangZhou (Zhejiang University, China)
- Jianhao Sun (Jin, Nanjing University, China)
- Mengying Ye (Mary, Jilin University, China)
- Chengtu Li (Trenki, Henan Polytechnic University, Beijing, China)
- Panyan Weng (The University of Sydney, Australia)
- Haibin Lai (Michael, Southern University of Science and Technology, China)
- Siqi Yao (Clara, Dongguan University of Technology, China)
- Yunzhou Han (China University of Geosciences Beijing, China)
- Feiyu Shi (China University of Geosciences Beijing, China)
- Wenxuan Xia (China University of Geosciences Beijing, China)
- Hanbing Gao (China University of Geosciences, Wuhan, China)
- Yuanhang Wang (Hangzhou Dianzi University, China)
- Zhenghao Qu (Yunnan University, China)
- Prof. ZhangZhou (Zhejiang University, China)
- Zhelan Lin (Lan, Fuzhou University, China)
- ShuYi Li (Communication University Of China, Beijing, China)
- Junbo Wang (China University of Geosciences, Beijing, China)
- Haibin Wang (Watson, University of Sydney, Australia)
- Guoqiang Qiu (Elsen, Fuzhou University, China)
- Yating Dong (Yetta, Dongguan University of Technology, China)
- Bailun Jiang (EPSI / Lille University, France)
- Chufan Zhou (Yoko, Institute of Geochemistry, Chinese Academy of Sciences; University of Chinese Academy of Sciences, China)
- Lianfeng Zhou (Yangtze University,China)
- Lingping Zhan (Chang'an University, China)
- Zixuan Zhu (Institute of Geochemistry, Chinese Academy of Sciences; University of Chinese Academy of Sciences, China)
The recruitment of research interns is ongoing !!!
Key Point: All things are done online, remote work (*^β½^*)
- Learning the full cycle of data mining (Scikit-learn, Ray, Mlflow) on tabular data, including the algorithms in regression, classification, clustering, and decomposition.
- Learning to be a qualified Python developer, including any Python programing contents towards data mining, basic software engineering techniques like frontend (React, Typescript, Ant Design scaffold) and backend (SQL & NoSQL database, RESTful API, FastAPI) development, and cooperation tools like Git.
- Research internship proof and reference letter after working for > 100 hours.
- Chance to pay a visit to Hangzhou, China, sponsored by ZJU Earth Data.
- Chance to be guided by the experts from IT companies in Silicon Valley and Hangzhou.
- Bonus depending on your performance.
- Online working and cooperation
- Three weeks per working cycle -> One online meeting per working cycle
- One cycle report (see below) per cycle - 5 mins to finish
Even if you are not familiar with topics above, but if you are interested in and have plenty of time to do it. That's enough. We have a full-developed training system to help you, as a newbie of data mining or Python developer, learn steps by steps with seniors until you can make a significant contribution to our project.
π More details about the project and Prof.Zhangzhou? Please refer to:
Do you want to contribute to this open-source program? Contact with your CV: zhangzhou333@zju.edu.cn, sanyhew1097618435@163.com
Materials are in both Chinese and English. Others unshown below are internal materials.
- Guideline Manual β Geochemistry Ο (International - Google drive)
- Guideline Manual β Geochemistry Ο (China - Tencent Docs)
- Learning Steps for Newbies β Geochemistry Ο (International - Google drive)
- Learning Steps for Newbies - Geochemistry Ο (China - Tencent Docs)
- Code Specification v2.1.2 - Geochemistry Ο (International - Google drive)
- Code Specification v2.1.2 - Geochemistry Ο (China - Tencent Docs)
- Cycle Report - Geochemistry Ο (International - Google drive)
- Cycle Report - Geochemistry Ο (China - Tencent Docs)
Technical record videos are on Bilibili and Youtube synchronously while other meeting videos are internal materials. More Videos will be recorded soon.
- ZJU_Earth_Data Introduction (Geochemical Data, Python, Geochemistry Ο) - Prof. Zhang
- How to Collaborate and Provide Bug Report on Geochemistry Ο Through GitHub - Can He (Sany)
- Geochemistry Ο - Download and Run the Beta Version
- How to Create and Use Virtual Environment on Geochemistry Ο - Can He (Sany)
- How to use Github-Desktop in conflict resolution - Qiuhao Zhao (Brad)
- Virtual Environment & Packages On Windows - Jianming Zhao (Jamie)
- Git Workflow & Coordinating Synchronization - Jianming Zhao (Jamie)
- Geochemistry Ο framework analysis - Jianhao Sun (Jin)
- Mengqi Gao (China University of Geosciences, Beijing, China)
- Shengxin Wang (Samson, Lanzhou University, China)
- Wenyu Zhao (Molly, Zhejiang University, China)
- Qiuhao Zhao (Brad, Zhejiang University, China)
- Kaixin Zheng (Hayne, Sun Yat-sen University, China)
- Ruitao Chang (China University of Geosciences Beijing, China)
- Yucheng Yan (Andy, University of Sydney, Australia)
- Anzhou Li (Andrian, Zhejiang University, China)
- Keran Li (Kirk, Chengdu University of Technology, China)
- Dan Hu (Notre Dame University, United States)
- Xunxin Liu (Tante, China University of Geosciences, Wuhan, China)
- Fang Li (liv, Shenzhen University, China)
- Xin Li (The University of Manchester, United Kingdom)
- Ting Liu (Kira, Sun Yat-sen University, China)
- Xirui Zhu (Rae, University of York, United Kingdom)
- AixiwakeΒ·Janganuer (Ayshuak, Sun Yat-sen University, China)
- Zhenglin Xu (Garry, Jilin University, China)
- Jianing Wang (National University of Singapore, Singapore)
- Junchi Liao (Roceda, University of Electronic Science and Technology of China, China)
If Geochemistry Ο has been helpful to your research or work, please consider giving us a βοΈ on GitHub β it helps others discover the project and motivates us to keep improving!
We welcome all forms of contributions, including bug reports, feature suggestions, documentation improvements, and code contributions.
Built with β€οΈ by the Geochemistry Ο team
