A Systematic Analysis of Machine Learning Methods for Rock Wettability Prediction: Algorithm Performance and Computational Considerations
Machine Learning Prediction of Rock Wettability from XRF Elemental Signatures OVERVIEW This repository provides a complete, reproducible machine learning pipeline for predicting rock wettability characteristics from X-ray fluorescence (XRF) elemental signatures. The research demonstrates the application of various machine learning algorithms to classify reservoir rock wettability into three categories: strongly water-wet, intermediate wettability, and strongly oil-wet. KEY FEATURES Complete ML Pipeline:- Data Preprocessing: XRF/XRD data loading, cleaning, and merging- Machine Learning: 5 algorithms with hyperparameter tuning- Model Evaluation: Comprehensive performance metrics- Prediction Interface: Ready-to-use for new samples User-Friendly Design:- One-Command Execution: Run entire analysis with single command- Automatic Package Management: Handles all dependencies- Interactive Prediction: User-friendly interface- Template Files: Easy data input for users Research-Grade Quality:- Publication-Ready Outputs: Professional visualizations- Complete Documentation: Comprehensive guides and examples- Reproducible Results: Version-controlled analysis- Professional Manuscript: Complete research documentation TECHNICAL SPECIFICATIONS Data Requirements:- Input: 24 XRF elemental concentrations- Output: 3 wettability classes (water-wet, intermediate, oil-wet)- Samples: 198 rock samples- Format: CSV/Excel with specific column order Machine Learning:- Algorithms: Multinomial Regression, Random Forest, SVM, XGBoost, Decision Trees- Performance: High accuracy with robust cross-validation- Preprocessing: Normalization, SMOTE, PCA strategies- Evaluation: ROC-AUC, accuracy, sensitivity, specificity System Requirements:- R Version: 4.0.0 or higher- Memory: 8GB RAM recommended- Storage: 100MB free space- Dependencies: Automatically managed REPOSITORY STRUCTURE Zenodo_Submission/├── code/ # Core analysis scripts│ ├── 00_Master_Analysis_Script.R # ONE-COMMAND EXECUTION│ ├── 01_Data_Cleaning_and_Merging.R # Data preprocessing pipeline│ ├── 02_Machine_Learning_Analysis.R # Complete ML analysis workflow│ └── 03_Prediction_Script.R # Prediction interface for new data├── data/ # Essential datasets│ ├── XRF_XRD.xlsx # Raw XRF and XRD data│ ├── wettability_elements_minerals.csv # Main processed dataset│ ├── wettability_elements_minerals_processed.csv # Final analysis dataset│ └── template_for_your_data.csv # Template for user data input├── outputs/ # Core results and models│ ├── wettability_model_final.rds # Trained final model│ ├── all_model_results.csv # Complete model comparison│ ├── collected_clean_metrics.csv # Model performance metrics│ ├── Variable_Importance.csv # Feature importance rankings│ └── Summary_of_wettability_groups.csv # Class distribution summary├── figures/ # Publication-ready visualizations│ ├── Figure 1.png # Main results visualization│ ├── Figure 2.png # Model comparison plots│ ├── Figure 3.png # Feature importance charts│ └── feature_importance.png # Feature importance plot├── manuscripts/ # Research documentation│ └── ML_Paper_with_Comp_GEO.docx # Complete research manuscript├── README.md # Comprehensive user guide├── requirements.R # Package installation script├── FINAL_REPOSITORY_SUMMARY.md # Final repository overview└── zenodo_metadata.yml # Zenodo submission metadata QUICK START (3 Steps) 1. Install Required R Packages: source("requirements.R") 2. Run Complete Analysis Pipeline: source("code/00_Master_Analysis_Script.R") 3. Make Predictions on New Data: interactive_prediction() DATA INPUT REQUIREMENTS Required Elements (24 total):Your data MUST have these 24 elements in EXACT order:Na, Mg, Al, Si, S, Cl, K, Ca, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, As, Se, Br, Rb, Sr, Y, Zr Data Format Options:- CSV File: 24 columns, one row per sample- Excel File: Same 24 columns in same order- Template File: Download data/template_for_your_data.csv and fill in values- Interactive Input: Use interactive_prediction() for manual entry Element Categories:- Major Elements: Na, Mg, Al, Si, S, Cl, K, Ca, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn- Trace Elements: As, Se, Br, Rb, Sr, Y, Zr MACHINE LEARNING PIPELINE Phase 1: Data Preprocessing:- XRF/XRD data loading and cleaning- Data merging and feature engineering- PCA and HCPC clustering- Training/test set preparation (75%/25%) Phase 2: Model Training:- 5 ML Algorithms: Multinomial Regression, Random Forest, SVM, XGBoost, Decision Trees- 4 Preprocessing Strategies: Normalization, SMOTE, PCA, PCA+SMOTE- Hyperparameter Tuning: 10-fold cross-validation with grid search- Performance Evaluation: ROC-AUC, accuracy, sensitivity, specificity Phase 3: Prediction Interface:- Trained model loading- New data validation and preprocessing- Interactive and programmatic prediction- Confidence probabilities and class predictions RESULTS SUMMARY The analysis demonstrates that XGBoost achieves the best performance for wettability prediction:- ROC-AUC: 0.978 (excellent discrimination)- Accuracy: High classification accuracy across all classes- Feature Importance: Iron (Fe), Silicon (Si), and Calcium (Ca) are key predictors- Robustness: Consistent performance across different preprocessing strategies USE CASES For Researchers:- Immediate Use: Run complete analysis with one command- Customizable: Modify parameters and add new models- Reproducible: Clear methodology and version control- Professional: Publication-ready outputs and documentation For Students:- Easy Learning: Clear structure and examples- No Dependencies: Works on any R installation- Comprehensive: Complete workflow demonstration- Well-Documented: Step-by-step guides and explanations For Industry:- Production Ready: Robust error handling and validation- Scalable: Batch processing and multiple sample support- Professional: Enterprise-grade code quality- Maintainable: Clean, documented code structure PACKAGE INSTALLATION FEATURES - Smart Dependency Management: Installs packages in correct order- FactoMineR Support: Automatically handles all required dependencies- Error Handling: Comprehensive error checking and reporting- CRAN Mirror: Uses reliable package repository- Verification: Tests all packages after installation TESTING AND VERIFICATION Synthetic Test Datasets:The repository includes comprehensive synthetic test datasets to verify system functionality:- Water-wet samples: 5 samples with strongly water-wet characteristics- Intermediate samples: 5 samples with intermediate wettability- Oil-wet samples: 5 samples with strongly oil-wet characteristics- Edge cases: 5 samples with extreme values for robustness testing System Testing:source('code/03_Prediction_Script.R')run_system_tests() DOCUMENTATION - README.md: Comprehensive user guide with examples- FINAL_REPOSITORY_SUMMARY.md: Complete repository overview- zenodo_metadata.yml: Zenodo submission metadata- Code Comments: Detailed explanations throughout all scripts SUPPORT INFORMATION For questions or issues:1. Check Documentation: Review README.md and other guide files2. Run Master Script: Execute source("code/00_Master_Analysis_Script.R")3. Review Code Comments: Detailed explanations throughout all scripts
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2025-01-01
- DOI
- https://doi.org/10.5281/zenodo.16918579
- Primary Topic
- Geochemistry and Geologic Mapping
- Type
- article
- Field-Weighted Citation Impact
- 0.00