Inspiration

Heart disease remains the leading cause of death globally, yet most clinical models only look at what is happening inside the patient’s body—their blood pressure, cholesterol, and heart rate. We were inspired by the growing medical realization that a patient’s zip code is often a stronger predictor of health than their genetic code. EcoPulse was born from the desire to bridge the gap between biological biomarkers and social determinants of health (SDoH). We wanted to build a model that doesn't just treat the heart as an isolated pump but as a part of a human being living in a specific, often stressful, environment.

What it does

EcoPulse is a multi-dimensional risk engine that predicts the likelihood of cardiovascular disease by fusing traditional biomedical data with environmental and socioeconomic factors. Clinical Analysis: It processes standard vitals like BMI, blood pressure, and age. Environmental Overlay: It integrates external data such as local air quality indices (PM2.5 levels) and "food desert" status (access to nutritious food). Actionable Insights: Using SHAP (Explainable AI), it tells a doctor exactly why a patient is at risk—for example, identifying that a patient's risk is being driven higher by neighborhood-level pollution rather than just lifestyle habits.

How we built it

We built the core engine using Python and Scikit-learn. Data Sourcing: We used the provided Hack4Health clinical dataset and augmented it with unique features from the CDC PLACES (community health) and EPA (air quality) databases. Machine Learning: We implemented an XGBoost classifier, which is highly effective for tabular medical data. Explainability: We integrated the SHAP library to ensure the model was not a "black box," allowing for clinical interpretability. Optimization: We used SMOTE (Synthetic Minority Over-sampling Technique) to handle the class imbalance typical in medical datasets, ensuring the model didn't ignore "at-risk" patients.

Challenges we ran into

The biggest challenge was data alignment. Biomedical data is recorded at the individual level, while environmental data (like air pollution or poverty indices) is recorded at the geographic level. We had to develop a mapping strategy to "join" these disparate datasets without introducing bias. Additionally, we had to carefully tune the model to prioritize recall—in healthcare, it is far more dangerous to tell a sick person they are healthy (false negative) than to tell a healthy person to get a checkup (false positive).

Accomplishments that we're proud of

We are incredibly proud of achieving a high Area Under the Precision-Recall Curve (AUPRC) while maintaining interpretability. We successfully proved that adding "Zip Code" level environmental data increased the model’s predictive accuracy over using biological data alone. This confirms that a holistic view of a patient provides a much more accurate safety net than traditional methods.

What we learned

We learned that health equity is a data science problem. Working on EcoPulse taught us that "lifestyle choices" are often limited by "environmental constraints." Building this project shifted our perspective from viewing heart disease as a purely biological failure to viewing it as a complex intersection of biology, environment, and social policy.

What's next for EcoPulse

The next phase for EcoPulse is real-time integration. We hope to connect the model to live API feeds for air quality and heat maps to provide "Dynamic Risk Scores." We also plan to expand the dataset to include global populations, ensuring that our model serves patients in low-resource settings as effectively as those in urban centers.

Built With

  • air
  • cdc-places-dataset
  • epa
  • google-colab
  • matplotlib
  • numpy
  • pandas
  • quality
  • scikit-learn
  • seaborn
  • shap-(explainable-ai)
  • xgboost
  • ython
Share this project:

Updates

Submission history