Insurance Fraud Detection Using Machine Learning
Overview
This project focuses on detecting fraudulent insurance claims using a complete machine learning pipeline. From data preprocessing and exploratory analysis to model training and dashboard visualization, the objective was to build a reliable and explainable system for flagging suspicious claims.
Key Highlights
- Cleaned and preprocessed data using LabelEncoder, outlier removal, and scaling
- Trained Logistic Regression, Random Forest, and SVM models
- Applied SMOTE to balance imbalanced fraud and non-fraud classes
- Evaluated performance before and after SMOTE using class-wise accuracy
- Visualized KPIs and insights using an interactive Power BI dashboard
BI Dashboard
The Power BI dashboard provides a visual breakdown of fraud vs. non-fraud claims, approval KPIs, and geographic risk patterns.
Before & After SMOTE: Model Evaluation
Imbalanced datasets often bias models toward the majority class. To address this, we used SMOTE (Synthetic Minority Oversampling Technique), which synthetically generates samples for the minority class (fraud cases) to improve class balance and predictive fairness.
Class-wise Accuracy Comparison
| Model | SMOTE | Class 0 Accuracy | Class 1 Accuracy | Overall Accuracy |
|---|---|---|---|---|
| Logistic Regression | No | 0.98 | 0.55 | 0.83 |
| Random Forest | No | 0.99 | 0.72 | 0.91 |
| SVM | No | 0.97 | 0.56 | 0.84 |
| Logistic Regression | Yes | 0.90 | 0.88 | 0.89 |
| Random Forest | Yes | 0.96 | 0.93 | 0.94 |
| SVM | Yes | 0.92 | 0.90 | 0.91 |
As shown, after applying SMOTE, fraud class (1) accuracy increased significantly across all models, especially in SVM and Random Forest, improving overall reliability for rare-event prediction.
Tools & Libraries Used
- Python (Pandas, NumPy, Scikit-learn, imbalanced-learn)
- Power BI (dashboard creation)
- Matplotlib, Seaborn (visualization)