Spaces:
Sleeping
Sleeping
Kasilanka Bhoopesh Siva Srikar
Complete Heart Attack Risk Prediction App - Ready for Deployment
08123aa
🐳 Running Optimization with Docker
Yes! You can absolutely use Docker to run the optimization code. This is actually recommended because:
✅ Isolated environment - No conflicts with your system Python
✅ Reproducible - Same results every time
✅ Easy cleanup - Just remove the container when done
✅ Resource control - Limit CPU/memory usage
Quick Start (3 Commands)
# 1. Make script executable (one time)
chmod +x run_optimization_docker.sh
# 2. Run optimization
./run_optimization_docker.sh
# 3. That's it! Results are saved to content/models/
What Gets Created
The Docker setup includes:
Dockerfile.optimization- Docker image definitiondocker-compose.optimization.yml- Easy container managementrun_optimization_docker.sh- One-command runner scriptDOCKER_OPTIMIZATION.md- Detailed documentation
Simple Usage Examples
Run Full Optimization
./run_optimization_docker.sh
Takes ~1-2 hours, 100 trials per model
Faster Run (50 trials)
./run_optimization_docker.sh --trials 50
Takes ~30-60 minutes
Run Feature Analysis
./run_optimization_docker.sh --script feature_importance_analysis.py
Takes ~5-10 minutes
Compare Results
./run_optimization_docker.sh --script compare_models.py
Using Docker Compose
If you prefer docker-compose:
# Build and run
docker-compose -f docker-compose.optimization.yml up --build
# View logs
docker-compose -f docker-compose.optimization.yml logs -f
# Stop when done
docker-compose -f docker-compose.optimization.yml down
Using Docker Directly
# Build image
docker build -f Dockerfile.optimization -t heart-optimization .
# Run optimization
docker run --rm \
-v "$(pwd)/content:/app/content" \
-v "$(pwd)/model_assets:/app/model_assets:ro" \
heart-optimization
Results Location
All results are automatically saved to your host machine:
content/models/model_metrics_optimized.csv- Performance metricscontent/models/*_optimized.joblib- Optimized modelscontent/models/ensemble_info_optimized.json- Ensemble configurationcontent/reports/- Feature importance visualizations
Resource Requirements
Minimum:
- 4GB RAM
- 2 CPU cores
- 5GB disk space
Recommended:
- 8GB RAM
- 4 CPU cores
- 10GB disk space
Time Estimates
| Configuration | Time |
|---|---|
| 30 trials | ~20-30 min |
| 50 trials | ~30-60 min |
| 100 trials | ~1-2 hours |
| 200 trials | ~2-4 hours |
Troubleshooting
Docker not running
# Check Docker status
docker info
# Start Docker Desktop (if on Mac/Windows)
# Or: sudo systemctl start docker (Linux)
Out of memory
# Reduce trials
./run_optimization_docker.sh --trials 30
# Or reduce timeout
STUDY_TIMEOUT=1800 ./run_optimization_docker.sh
Data file not found
# Verify data exists
ls -lh content/cardio_train_extended.csv
Advanced Options
Custom Resource Limits
Edit docker-compose.optimization.yml:
deploy:
resources:
limits:
cpus: '8' # Use more CPUs
memory: 16G # More RAM
Environment Variables
N_TRIALS=50 STUDY_TIMEOUT=1800 ./run_optimization_docker.sh
Interactive Shell
docker-compose -f docker-compose.optimization.yml run --rm optimization bash
Next Steps
- ✅ Run
./run_optimization_docker.sh - ✅ Wait for completion (1-2 hours)
- ✅ Check results in
content/models/ - ✅ Compare with baseline using
compare_models.py - ✅ Deploy optimized models
Full Documentation
For detailed instructions, see:
- DOCKER_OPTIMIZATION.md - Complete Docker guide
- QUICK_START.md - General quick start
- IMPROVEMENTS.md - Improvement details
Pro Tip: Run optimization overnight or during lunch break. The container will save all results automatically!