🔴 Live App: Click here to interact with the dashboard!
An interactive geospatial and temporal analysis dashboard for visualizing and predicting conflict events in Manipur, India. Built with Python and Streamlit, this application provides actionable insights into the humanitarian impact of the conflict using historical data (ACLED synthetic dataset).
- Interactive Geospatial Map: Visualize the distribution of conflict events across different districts with a dark-themed Folium map.
- Temporal Trend Analysis: Track the frequency and intensity of events over time with dynamic line charts.
- Conflict Risk Prediction: Utilize a trained Random Forest Classifier to predict the future risk level (High/Stable) of conflict escalation for specific districts, seasons, and historical lag indicators.
- Feature Importance: Understand which factors most heavily influence conflict prediction in the region.
- Sleek UI/UX: Dark glassmorphism design for a modern, immersive analytical experience.
- Language: Python 3.x
- Frontend/Framework: Streamlit
- Data Manipulation: Pandas, NumPy
- Machine Learning: Scikit-Learn (Random Forest)
- Data Visualization: Plotly Express, Plotly Graph Objects, Folium, Streamlit-Folium
app.py: The main Streamlit dashboard application.generate_dataset.py: Script to generate a synthetic dataset roughly mirroring ACLED reporting styles for the region.data/: Contains the raw and processed datasets (manipur_processed.csv).models/: Stores the pickled Machine Learning models (random_forest_conflict_model.pkl) and label encoders.src/: Additional source code (data processing and modeling scripts).requirements.txt: Python package dependencies for the project.
-
Clone the repository (if you haven't already):
git clone https://github.com/YourUsername/Manipur_Conflict_Analyzer.git cd Manipur_Conflict_Analyzer -
Install the dependencies:
pip install -r requirements.txt
-
(Optional) Generate synthetic data and run pipelines: If the processed data or models are missing, run the generation/training scripts first:
python generate_dataset.py # (Run data processing and ML scripts in the src/ folder if applicable) -
Launch the Streamlit app:
streamlit run app.py
The predictive component uses a Random Forest Classifier to determine the risk of escalation. It relies on engineered features such as:
- Encoded District and Season data.
- Lag count metrics (e.g., number of events/fatalities from the previous month).
- Temporal indicators (Year).