Project title: Predicting Smallholder Maize Yield to Support Food Security in Kenya
SDG problem addressed Smallholder farmers in low-income regions often face unpredictable yields due to variable weather, soil fertility, and input usage. Improving short-term yield predictions helps target interventions (fertilizer, irrigation, extension services) to reduce food insecurity and increase income stability.
ML approach Supervised regression: predict per-hectare maize yield (tons/ha) using historical weather (rainfall, temperature), soil features (pH, organic carbon), planting details (sowing date, seed variety), and management inputs (fertilizer amount). Primary model: Random Forest Regressor; baseline: Linear Regression. Evaluation metrics: MAE, RMSE, R².
Dataset & tools
For the prototype, a joined CSV data/crop_yield.csv with columns: yield, rainfall, temp_mean, soil_ph, organic_carbon, fertilizer_kg, sowing_doy, seed_variety.
Tools: Python, VS Code, Pandas, Scikit-learn, Matplotlib/Seaborn, joblib for model persistence, optional Streamlit for demo.
Key methods
Data cleaning: handle missing values, encode categorical vars (one-hot or target encoding), remove outliers or cap them.
Feature engineering: rolling seasonal rainfall totals, growing degree days (GDD), interaction terms (fertilizer × soil_quality), and date-derived features from sowing day-of-year.
Modeling: Compare Linear Regression, Random Forest. Use 5-fold cross-validation and grid/random search for hyperparameters.
Explainability: SHAP or feature importances to show key drivers of yield.
Results (example expectations)
Baseline Linear Regression MAE ≈ 0.6 t/ha; Random Forest MAE ≈ 0.3–0.5 t/ha depending on data quality. Feature importance often: cumulative rainfall during growing season, planting date, fertilizer, soil organic carbon.
Ethical considerations
Bias/representativeness: If training data under-represents certain regions or smallholder practices, the model …