Inspiration
Breast cancer risk assessment often involves multiple clinical factors, but machine learning predictions can be difficult to understand when they are presented as a simple result.
I wanted to explore how AI could be used not only to predict breast cancer risk, but also to explain why a model reaches a particular prediction. This inspired me to build OncoAssist AI, an explainable AI-based clinical decision support prototype.
The goal was to combine machine learning with explainability in a simple, interactive healthcare application.
What it does
OncoAssist AI estimates breast cancer risk using nine clinical biomarkers:
- Age
- BMI
- Glucose
- Insulin
- HOMA
- Leptin
- Adiponectin
- Resistin
- MCP.1
The application uses an XGBoost classifier to generate a risk prediction and confidence score.
It also uses SHAP Explainable AI to show how different biomarkers contribute to the model's prediction.
The application includes:
- 🩺 Breast cancer risk prediction
- 📊 Prediction confidence
- 🧠 SHAP-based AI explanation
- 📈 Feature importance visualization
- 📋 Prediction history
- 📄 Downloadable PDF reports
How we built it
We built OncoAssist AI using Python and Streamlit.
The machine learning workflow includes data preprocessing, feature scaling, model training, and prediction using XGBoost. The trained model and scaler were saved using Joblib and integrated into the Streamlit application.
For explainability, we integrated SHAP TreeExplainer to visualize the contribution of individual clinical features.
We then developed the interactive interface in Streamlit and added prediction history and automated PDF report generation using ReportLab. The overall workflow is:
Clinical Biomarkers → Feature Scaling → XGBoost → Risk Prediction → Confidence Score → SHAP Explanation → PDF Report
Challenges we ran into
One of the biggest challenges was turning a trained machine learning model into a complete working application. We faced several technical challenges involving model loading, dependency installation, file paths, Streamlit execution, SHAP integration, and PDF generation. We also encountered Git and GitHub repository-organization issues while preparing the project for submission. Another challenge was making the AI output understandable. Instead of displaying only a prediction, we wanted users to see the factors influencing the model's result, which led us to integrate SHAP explanations and feature importance visualization.
Accomplishments that we're proud of
We are proud of turning a machine learning model into a complete interactive AI application rather than keeping it as a standalone notebook. The final prototype combines:
- 🤖 XGBoost machine learning
- 🧠 Explainable AI with SHAP
- 📊 Confidence scoring
- 📋 Prediction history
- 📄 Automated PDF reporting
- 🌐 An interactive Streamlit interface
We are especially proud of the explainability component because it makes the model's output more transparent and easier to interpret. We also successfully packaged the project with its application code, trained model, dataset resources, screenshots, documentation, and requirements in a GitHub repository.
What we learned
This project taught us how to move from a machine learning experiment to an end-to-end application. We gained practical experience with:
- XGBoost classification
- Feature preprocessing and scaling
- SHAP explainability
- Streamlit application development
- Model serialization with Joblib
- PDF generation with ReportLab
- Git and GitHub
- Integrating multiple components into a single AI workflow Most importantly, we learned that in healthcare AI, a prediction is more useful when users can understand the reasoning behind it. ## What's next for OncoAssist AI The next version of OncoAssist AI could be improved by using larger and more diverse clinical datasets and performing more extensive model validation.
Future improvements could include:
- More comprehensive model evaluation
- Improved probability calibration
- Additional explainability methods
- Secure patient-data handling
- A more advanced clinical dashboard
- Integration with healthcare workflows
- Deployment as a cloud-based application
Our long-term goal is to explore how explainable AI can make healthcare machine learning systems more transparent, understandable, and useful while keeping appropriate clinical limitations in mind.
Disclaimer: OncoAssist AI is an educational and research prototype. It is not a medical diagnostic system and should not be used as a substitute for professional medical advice or clinical diagnosis.
Built With
- artificial
- explainable
- healthcare
- joblib
- machine
- matplotlib
- numpy
- pandas
- python
- reportlab
- scikit-learn
- shap
- streamlit
- xgboost
Log in or sign up for Devpost to join the conversation.