A machine learning-based clinical decision support system for dementia risk stratification using the National Alzheimer's Coordinating Center (NACC) dataset. This project implements advanced feature engineering, gradient boosting models, and explainability techniques to predict dementia risk with high accuracy and clinical interpretability.
Develop a high-performance machine learning model to predict dementia risk in patients using clinical and demographic features, serving as a screening and decision-support tool for healthcare professionals.
- β 98.1% dimensionality reduction (1,014 β 20 features)
- β 0.87 AUC-ROC on test set (excellent discrimination)
- β 79% sensitivity (detects 79 of 100 dementia cases)
- β 82% specificity (correctly identifies 82 of 100 healthy individuals)
- β 5ms inference latency (production-ready speed)
- β Probability-calibrated predictions for clinical risk stratification
- Primary Care Screening: Flag high-risk patients for cognitive assessment referral
- Specialist Clinics: Assist neurologists in dementia diagnosis
- Population Health: Identify at-risk cohorts for preventive interventions
- Research: Validate feature relationships in dementia pathology
- Name: Dementia Prediction Dataset (NACC)
- Size: 195,196 patient records
- Features: 1,014 clinical and demographic variables
- Target Variable: DEMENTED (binary: Yes/No)
- Location:
Dataset/Dementia Prediction Dataset.csv
| Statistic | Value |
|---|---|
| Total Samples | 195,196 |
| Original Features | 1,014 |
| Final Features | 20 |
| Class Distribution | Imbalanced (handled via boosting) |
| Missing Values | ~15-30% per feature |
| Data Types | Numeric (40%), Categorical (60%) |
- Clinical Assessments: Autonomic domain scores (NACCADC), ADL impairment (INDEPEND)
- Functional Abilities: FAQ composite score (10 activities summed)
- Demographics: Age, education, marital status, race, language
- Medical History: Referral reasons, visit frequency, comorbidities
- Administrative: Form versions, assessment dates, informant relationships
- Primary Model: LightGBM (Light Gradient Boosting Machine)
- Secondary Model: CatBoost (for feature selection)
- Boosting Type: GBDT (Gradient Boosting Decision Trees)
- Iterations: 600 boosting rounds
- Learning Rate: 0.05 (2% shrinkage per iteration)
- FAQ_SCORE β Functional Activities Questionnaire (34.49 importance)
- INDEPEND β Independence level assessment (20.13 importance)
- NACCADC β Autonomic/other cognitive domain score (13.31 importance)
- NACCDAYS β Days since last visit (7.91 importance)
- NACCREFR β Referral reason (4.60 importance)
- NACCYOD β Year of diagnosis (3.82 importance)
- NACCAPOE β APOE genotype (3.45 importance)
- NACCREAS β Reason for visit (2.91 importance)
- INRELTO β Informant relation to subject (2.34 importance)
- NACCACTV β Activities participation (1.89 importance)
- Numeric imputation: Median strategy
- Categorical imputation: Most frequent value
- Scaling: StandardScaler for numeric features
- Encoding: Native categorical dtype (LightGBM-compatible)
- Feature engineering: FAQ composite score creation
- Feature selection: Mutual Information β Correlation filtering β Model-based importance
- Python Version: 3.8 or higher
- Operating System: Windows, macOS, or Linux
- RAM: Minimum 4 GB (8 GB recommended)
- Disk Space: 2 GB for dataset and dependencies
# Download the project folder
# e:\Work\College_works\Competitions\ModelX\Code\Dimensia-Model
cd Dimensia-Model# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate# Upgrade pip
pip install --upgrade pip
# Install required packages
pip install pandas numpy matplotlib seaborn scikit-learn lightgbm catboost imbalanced-learn jupyter- Place the dataset at:
Dataset/Dementia Prediction Dataset.csv - Ensure file path matches:
E:\Work\College_works\Competitions\ModelX\Dataset-20251115T054810Z-1-001\Dataset\Dementia Prediction Dataset.csv - Update file path in notebook if necessary
Raw Data (195,196 Γ 1,014)
β
Target Separation β Y: DEMENTED, X: 1,013 features
β
FAQ Score Engineering β Create composite feature from 10 variables
β
Column Selection β Keep 94 clinically relevant features
β
Data Preprocessing β Imputation (median/mode), Scaling, Encoding
β
Cleaned Data (195,196 Γ 94)
94 Features
β
Mutual Information Filtering β Keep top 50% (47 features)
β
Correlation-Based Removal β Drop r > 0.85 (38 features)
β
CatBoost Feature Importance β Select top 20 features
β
Final Feature Set (195,196 Γ 20)
Train-Test Split (80-20, stratified)
β
LightGBM Training (600 iterations)
β
Predictions & Probability Scoring
β
Sigmoid Calibration β Corrects overconfidence
β
Evaluation Metrics (AUC, Precision, Recall, F1, Log Loss, Brier Score)
β
Permutation Importance Analysis
β
Production Model
1. Data Input
- Patient's clinical data automatically pulled from EHR
- Requires FAQ responses (mandatory)
- Validates data completeness
2. Model Prediction
- LightGBM generates dementia probability (0-100%)
- Sigmoid calibration ensures confidence = reality
- Risk stratification: LOW (<30%), MEDIUM (30-70%), HIGH (>70%)
3. Physician Review
- Physician sees flagged patients with risk scores
- Decision support NOT autonomous
- Physician makes final diagnostic decision
- Feedback logged for model retraining
4. Documentation
- Model probability documented in patient record
- Clinical reasoning for decision documented
- Enables quality improvement tracking
- Pandas: Data manipulation β https://pandas.pydata.org/
- scikit-learn: ML utilities β https://scikit-learn.org/
- LightGBM: Gradient boosting β https://lightgbm.readthedocs.io/
- CatBoost: Categorical boosting β https://catboost.ai/
- Jupyter: Interactive notebooks β https://jupyter.org/
Member R.M Ravin Jayasanka Member P.P Sanuja Rasanjana Patirana
This project is provided for educational and research purposes. Clinical deployment requires institutional review and regulatory approval.
Disclaimer: This model is intended as a decision support tool only and should NOT be used as the sole basis for clinical diagnosis. All diagnostic decisions must involve qualified healthcare professionals.
For issues, questions, or suggestions:
- Check Troubleshooting section above
- Review DOCUMENTATION.md for technical details
- Consult Demensia.ipynb code comments
- Contact project maintainer
- Python 3.8+ installed
- Virtual environment activated
- All dependencies installed (
pip install -r requirements.txt) - Dataset downloaded and placed in
Dataset/folder - File paths verified in notebook
- RAM requirement met (>4 GB)
- Jupyter installed and working
Ready to go! π
Execute: jupyter notebook β Open Demensia.ipynb β Run cells sequentially
Last Updated: November 17, 2025 Project Status: β Complete & Production-Ready