Research project
Arsenic Groundwater Contamination
This one started with a blank spreadsheet. There's no ready-made dataset for arsenic contamination across Gujarat's groundwater, so building one was the first project: 482 sample locations, cross-referencing Central Ground Water Board reports for water chemistry (pH, electrical conductance, alkalinity, sodium absorption ratio, and more), evapotranspiration data from ICRISAT, and land-use classification from Bhuvan-Thematic satellite imagery. Compiling and aligning three separate government and research data sources into one usable table took longer than any of the modeling that followed.
Once the data existed, the modeling question was ensemble methods versus a neural network. I trained Random Forest, Extra Trees, and XGBoost, combined through both voting and stacking, against a small ANN with two hidden layers. The ANN won clearly — an R² of 0.40 against 0.17–0.20 for the ensembles, with a lower RMSE across the board — because arsenic mobilization in groundwater is governed by non-linear geochemistry that tree ensembles tend to average away. The trade-off was volatility: the ANN caught the real contamination spikes in the test set that the ensembles smoothed over and missed, but it was also noisier on ordinary readings.
The metric that actually matters, though, is accuracy below 10 µg/L — the WHO's safety threshold — where every model in the study hit close to 90%. A model that's occasionally wrong about how contaminated an already-unsafe well is matters a lot less than one that's right about whether a well is safe to drink from in the first place.
Threshold explorer
Move the safety threshold and watch how the same groundwater risk changes under a stricter or looser policy.