Graduate-Level Machine Learning Implementation Probabilistic Classification with Bayesian Networks & Gaussian Processes
This project represents distinction-level graduate work in probabilistic artificial intelligence, implementing and comparing three advanced machine learning approaches for binary classification across real-world datasets.
- Module: CMP9794 - Advanced Artificial Intelligence
- Institution: University of Lincoln, MSc Computer Science
- Assessment Weight: 50% of module grade
- Level: Graduate (Master's)
- Achievement: Distinction-level performance
β Probabilistic Reasoning: Implement probabilistic inference methods β Algorithm Comparison: Critically evaluate different ML approaches β Real-World Application: Apply theory to fraud detection and medical diagnosis β Computational Complexity: Analyze and optimize algorithm efficiency β Experimental Design: Proper train-test splitting and evaluation metrics
Approach: Chow-Liu Algorithm for Maximum Spanning Tree
Key Techniques:
- Discretization: KBinsDiscretizer with 3 bins (quantile strategy)
- Structure Learning: Chow-Liu algorithm with O(nΒ²) complexity
- Parameter Learning: Maximum Likelihood Estimation (MLE)
- Inference: Variable Elimination
Pros: Captures variable dependencies, interpretable structure Cons: Information loss from discretization, moderate accuracy
Results:
- Fraud Detection: 87.72% accuracy
- Heart Disease: 85.85% accuracy
- Training Time: 10-36 seconds
Approach: Linear Gaussian Conditional Probability Distributions
Key Techniques:
- CPDs: Linear Gaussian models for continuous features
- Structure: Naive Bayes independence assumptions
- Benefits: No discretization, preserves continuous information
- Efficiency: Fast training (< 1 second)
Pros: Handles continuous data naturally, very fast training Cons: Assumes linear relationships, Naive Bayes independence
Results:
- Fraud Detection: 88.40% accuracy
- Heart Disease: 82.93% accuracy
- Training Time: < 1 second
Approach: GP Classification with RBF Kernel
Key Techniques:
- Kernel: Radial Basis Function (RBF) with hyperparameter optimization
- Feature Selection: SelectKBest using mutual information (k=10)
- Inference: Laplace approximation for binary classification
- Uncertainty: Provides prediction confidence intervals
Pros: Highest accuracy, uncertainty quantification, non-parametric Cons: High computational cost (O(nΒ³)), longer training time
Results:
- Fraud Detection: 98.52% accuracy π
- Heart Disease: 100% accuracy π
- Training Time: 133-272 seconds
- Size: 50,000 transactions
- Features: 21 numerical features
- Class Distribution: Imbalanced (fraud vs. legitimate)
- Source: Financial transaction data
- Challenge: Detecting fraudulent patterns in high-volume data
- Size: 1,025 patient records
- Features: 14 clinical features (age, blood pressure, cholesterol, etc.)
- Class Distribution: Binary (disease present/absent)
- Source: Medical diagnostic data
- Challenge: Accurate disease prediction from clinical indicators
| Method | Fraud Accuracy | Heart Accuracy | Training Time | Complexity |
|---|---|---|---|---|
| Discrete BN | 87.72% | 85.85% | 10-36s | O(nΒ²) |
| Gaussian BN | 88.40% | 82.93% | < 1s | O(n) |
| Gaussian Process | 98.52% π | 100% π | 133-272s | O(nΒ³) |
- Accuracy vs. Speed Trade-off: GP achieves highest accuracy but requires significantly more training time
- Gaussian BN: Best for real-time applications requiring fast inference
- Discrete BN: Good balance with interpretable structure learning
- Dataset Sensitivity: GP shows consistent excellence across both domains
- Python 3.11+: Programming language
- pgmpy: Probabilistic graphical models library
- scikit-learn: Machine learning algorithms and utilities
- pandas: Data manipulation and analysis
- NumPy: Numerical computing
- SciPy: Scientific computing and optimization
- Matplotlib: Plotting and visualizations
- Seaborn: Statistical data visualization
- 12 PNG Visualizations: Confusion matrices, ROC curves, feature importance
- Accuracy, Precision, Recall, F1-Score
- AUC-ROC (Area Under Curve)
- Brier Score (probabilistic calibration)
- Confusion Matrices
- Feature Importance Analysis
π CMP9794-Probabilistic-AI-Assessment/
βββ π README.md # This file
βββ π datasets/
β βββ fraud_detection.csv # 50,000 transactions
β βββ heart_disease.csv # 1,025 patient records
βββ π src/
β βββ 01_data_exploration.py # EDA and visualization
β βββ 02_discrete_bn.py # Discrete Bayesian Network
β βββ 03_gaussian_bn.py # Gaussian Bayesian Network
β βββ 04_gaussian_process.py # Gaussian Process Classifier
β βββ 05_model_comparison.py # Comparative analysis
β βββ helpers.py # Utility functions
β βββ preprocessing.py # Data preprocessing
βββ π results/
β βββ π visualizations/ # 12 PNG plots
β βββ π metrics/ # 11 CSV performance files
β βββ π comparison_report.csv # Consolidated results
βββ π docs/
β βββ technical_report.pdf # IEEE-format analysis
βββ requirements.txt # Python dependencies
- Python 3.11 or higher
- pip (Python package manager)
- 8GB RAM minimum (for Gaussian Process on large dataset)
- Clone the repository
git clone https://github.com/toptech5419/CMP9794-Probabilistic-AI-Assessment.git
cd CMP9794-Probabilistic-AI-Assessment- Create virtual environment (recommended)
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- Install dependencies
pip install -r requirements.txtpgmpy>=0.1.23
scikit-learn>=1.3.0
pandas>=2.0.0
numpy>=1.24.0
matplotlib>=3.7.0
seaborn>=0.12.0
scipy>=1.10.0# Run complete analysis pipeline (~8-9 minutes)
python run_all.py1. Data Exploration
python src/01_data_exploration.py- Generates EDA visualizations
- Outputs: Feature distributions, correlation matrices
2. Discrete Bayesian Network
python src/02_discrete_bn.py- Trains DBN with Chow-Liu structure
- Outputs: Accuracy metrics, confusion matrix
3. Gaussian Bayesian Network
python src/03_gaussian_bn.py- Trains GBN with continuous CPDs
- Outputs: Performance metrics, feature importance
4. Gaussian Process
python src/04_gaussian_process.py- Trains GP classifier with RBF kernel
- Outputs: Accuracy, uncertainty quantification
5. Comparative Analysis
python src/05_model_comparison.py- Compares all three methods
- Outputs: Side-by-side performance metrics
12 Visualization Files:
- Fraud dataset feature distributions
- Heart disease feature correlations
- Discrete BN structure graph (fraud)
- Discrete BN confusion matrix
- Gaussian BN feature importance
- Gaussian BN ROC curve
- GP prediction confidence intervals
- GP feature selection analysis
- Method comparison bar charts
- Accuracy vs. training time scatter
- Brier score calibration plots
- Error analysis by feature
11 Metrics CSV Files:
- Individual method performance on both datasets
- Cross-validation results
- Feature importance rankings
- Prediction probabilities
- Consolidated comparison table
- Strategy: Stratified 80/20 split
- Justification: Single split due to GP computational complexity (O(nΒ³))
- Reproducibility: Random seed set for consistent results
- Accuracy: Overall correct predictions
- Precision: True positives / (TP + FP)
- Recall: True positives / (TP + FN)
- F1-Score: Harmonic mean of precision and recall
- AUC-ROC: Classifier discrimination ability
- Brier Score: Probabilistic calibration quality
- Discrete BN: Discretization bins (tested: 3, 5, 10)
- Gaussian Process: RBF kernel length scale (GridSearchCV)
- Feature Selection: Mutual information threshold (k=10 optimal)
- GP: Best for accuracy-critical applications (medical diagnosis)
- Gaussian BN: Best for real-time systems (fraud detection dashboards)
- Discrete BN: Best for interpretability (explainable AI)
- O(nΒ³) GP training limits scalability to ~50K records
- O(nΒ²) Chow-Liu allows larger datasets with acceptable accuracy
- O(n) Gaussian BN enables real-time predictions
- Medical: Perfect accuracy (100%) worth longer training time
- Fraud: Fast inference more important than marginal accuracy gains
- GP provides confidence intervals valuable for risk-sensitive applications
- Bayesian methods naturally handle uncertainty through probabilistic inference
- Optimal tree structure guaranteed
- O(nΒ²) complexity scales to moderate datasets
- Captures pairwise dependencies without overfitting
- Simplifies learning to linear time
- Strong independence assumptions reduce variance
- Sufficient for linearly separable classes
- Universal approximator for smooth functions
- Captures non-linear patterns in medical data
- Hyperparameter optimization via GridSearchCV
- GP training on 50K records already requires 4+ minutes
- Cross-validation would multiply runtime 5-10x
- Stratified split ensures representative evaluation
- Pages: 15+ pages
- Sections:
- Introduction & Literature Review
- Methodology (3 algorithms described)
- Experimental Setup
- Results & Analysis
- Discussion & Conclusions
- References (15+ papers)
β Complete implementation of 3 probabilistic methods β Comprehensive evaluation on 2 datasets β Visualizations and performance metrics β Technical report with justifications β Reproducible code with documentation
- β¨ 100% Accuracy on heart disease diagnosis (GP method)
- β¨ 98.52% Accuracy on fraud detection (GP method)
- β¨ Distinction-Level Performance (top grade band)
- β¨ Rigorous Methodology with proper experimental design
- β¨ Production-Quality Code with clean architecture
- β¨ Complete Documentation including justifications
- Chow & Liu (1968) - "Approximating discrete probability distributions with dependence trees"
- Rasmussen & Williams (2006) - "Gaussian Processes for Machine Learning"
- Friedman et al. (1997) - "Bayesian Network Classifiers"
This is an academic project completed as coursework. While direct contributions are not accepted, you are welcome to:
- Fork the repository for your own learning
- Reference the methodologies in your work (with citation)
- Suggest improvements via issues
If you use this work in your research, please cite:
@misc{alabi2025probabilistic,
author = {Alabi, Temitope},
title = {Probabilistic AI Assessment: Comparative Analysis of Bayesian Networks and Gaussian Processes},
year = {2025},
institution = {University of Lincoln},
course = {CMP9794 - Advanced Artificial Intelligence}
}This project is submitted as academic coursework for CMP9794 at the University of Lincoln.
Academic Integrity: Code and methodologies are original work completed for assessment purposes.
Temitope Alabi MSc Computer Science Student University of Lincoln, UK
- π GitHub: @toptech5419
- πΌ LinkedIn: toptech5419
- π§ Email: alabitemitope51@gmail.com
- Program: MSc Computer Science (2025-2026)
- Specialization: Artificial Intelligence & Machine Learning
- Previous Modules:
- CMP9794: Advanced Artificial Intelligence (This Project)
- CMP9133: Programming Principles (C++ Distributed Systems)
- Information Systems Security
- Module Leader: University of Lincoln School of Computer Science
- Datasets: UCI Machine Learning Repository
- Libraries: pgmpy, scikit-learn development teams
- References: Research papers cited in technical report
Graduate-Level Machine Learning Implementation University of Lincoln | MSc Computer Science