Spaces:
Sleeping
Sleeping
Kasilanka Bhoopesh Siva Srikar
Complete Heart Attack Risk Prediction App - Ready for Deployment
08123aa
🚀 Running Streamlit App Locally
✅ What's Been Done
Optimized models copied to
model_assets/:- ✅ XGBoost_optimized.joblib
- ✅ CatBoost_optimized.joblib
- ✅ LightGBM_optimized.joblib
- ✅ ensemble_info_optimized.json
- ✅ model_metrics_optimized.csv
- ✅ hybrid_metrics.csv
Streamlit app updated:
- ✅ Uses optimized models
- ✅ Loads ensemble weights from config
- ✅ Displays optimized ensemble weights in sidebar
- ✅ All paths configured correctly
📋 To Run Locally
Option 1: Using Docker (Recommended - Already Set Up)
# The Docker environment already has all dependencies
docker run --rm -p 8501:8501 \
-v "$(pwd)/model_assets:/app/model_assets" \
-v "$(pwd)/content:/app/content" \
-v "$(pwd)/streamlit_app.py:/app/streamlit_app.py" \
heart-optimization \
streamlit run streamlit_app.py --server.headless=true --server.address=0.0.0.0 --server.port=8501
Then open: http://localhost:8501
Option 2: Install Dependencies Locally
Note: Python 3.14.0 may have compatibility issues. Consider using Python 3.11 or 3.12.
# Install dependencies
pip install streamlit pandas numpy scikit-learn xgboost catboost lightgbm joblib
# Run the app
streamlit run streamlit_app.py
Option 3: Use Virtual Environment (Recommended)
# Create virtual environment with Python 3.11 or 3.12
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the app
streamlit run streamlit_app.py
🎯 What to Test
- Model Loading: Check sidebar shows "Using Optimized Ensemble" with correct weights
- Input Form: Fill in patient information
- Prediction: Click "Predict Heart Attack Risk" button
- Results: Verify prediction and risk percentage display correctly
- Ensemble Info: Check that ensemble weights match optimized config (XGB: 5%, CAT: 85%, LGB: 10%)
📊 Expected Results
- Ensemble Weights: XGBoost: 5.0% | CatBoost: 85.0% | LightGBM: 10.0%
- Accuracy: ~80.8% (from optimized metrics)
- Recall: ~93.3% (from optimized metrics)
- ROC-AUC: ~0.925
🐛 Troubleshooting
If models don't load:
- Check
model_assets/folder has all.joblibfiles - Verify file permissions are readable
If dependencies fail:
- Use Docker (Option 1) - already configured
- Or use Python 3.11/3.12 instead of 3.14
If app doesn't start:
- Check port 8501 is not in use:
lsof -i :8501 - Try different port:
streamlit run streamlit_app.py --server.port=8502
✅ Once Working Locally
After confirming the app works locally, we'll proceed with Hugging Face deployment!