Predictive Modeling of Conflict Dynamics in Kenya Using Machine Learning Techniques
# Conflict Data Analysis Project
This project focuses on analyzing conflict data in Kenya to predict and understand the factors contributing to conflicts. The dataset contains information about various conflicts, including their types, locations, and fatalities.
## Table of Contents
1. Introduction
2. Setup
3. Data Preprocessing
4. Exploratory Data Analysis
5. Feature Engineering
6. Data Visualization
7. Modeling
8. Model Evaluation
9. Hyperparameter Tuning
10. Conclusion
## Introduction
The goal of this project is to analyze conflict data to identify patterns and predict conflict occurrences. By understanding the factors leading to conflicts, we can better inform policies and interventions aimed at reducing violence.
## Setup
### Libraries
The following libraries are required:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score
from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score, roc_curve, accuracy_score, precision_score, recall_score, f1_score
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
import warnings
warnings.filterwarnings('ignore')
sns.set(color_codes=True)
%matplotlib inline
```
### Data
The dataset used in this project is `conflict_data_ken.csv`.
```python
# Load data
df = pd.read_csv("conflict_data_ken.csv")
df.head()
```
## Data Preprocessing
### Initial Data Inspection
```python
df.info()
df.shape
df.isnull().sum()
```
### Data Cleaning and Selection
```python
# Select relevant columns
columns_to_keep = ['year', 'type_of_violence', 'conflict_name', 'conflict_new_id', 'dyad_new_id', 'side_a', 'side_b', 'side_a_new_id', 'side_b_new_id', 'adm_1', 'adm_2', 'latitude', 'longitude', 'date_start', 'date_end', 'deaths_a', 'deaths_b', 'deaths_civilians', 'deaths_unknown']
df = df[columns_to_keep] …