This project implements various machine learning techniques to classify rock facies using well log data. The classification is performed on data from the Council Grove gas reservoir in Southwest Kansas, one of North America's largest gas-producing areas.
The dataset includes well log data from 10 wells with the following features:
- Wireline Log Measurements:
- Gamma Ray (natural radioactivity measurement)
- Resistivity (ILD - Induction log)
- Photoelectric Effect
- Neutron-density porosity difference
- Average neutron-density porosity
- Geologic Constraining Variables:
- Nonmarine/marine indicator
- Relative position (depth)
The model classifies rocks into nine distinct facies types that can blend into neighboring facies:
- Nonmarine sandstone
- Nonmarine coarse siltstone
- Nonmarine fine siltstone
- Marine siltstone and shale
- Mudstone
- Wackestone
- Dolomite
- Packstone-grainstone
- Phylloid-algal bafflestone
The project implements and compares several machine learning classifiers:
- Support Vector Machine (SVM)
- Gaussian Process Classifier
- Random Forest Classifier
- Neural Network Classifier
- K-Nearest Neighbors
- Decision Tree Classifier
- Logistic Regression
Performance is measured using:
- Jaccard Index
- Precision
- Recall
- F1 Score
- Adjacent Accuracy (custom metric for neighboring facies)
- SVM, Neural Network, and K-Nearest Neighbors showed the best performance
- Adjacent accuracy is significantly higher than standard accuracy, confirming facies blending
- Performance correlates with sample frequency - facies with more samples showed better prediction
- Neural Network classifier performed best on blind test data (Nolan well)
- Increase training data samples
- Further optimize model parameters
- Incorporate geological constraints using a priori information about rock formation
The main implementation is in facies_classification.ipynb
Jupyter notebook. The notebook includes:
- Data preprocessing and visualization
- Model training and evaluation
- Cross-plots and correlation analysis
- Blind testing on the Nolan well
- Visualization of results
- Python
- Pandas
- Scikit-learn
- Seaborn
- NumPy
- Jupyter Notebook
The dataset uses publicly available well log data from the Council Grove gas reservoir in Southwest Kansas.