An end-to-end, explainable graph-based risk scoring prototype for AML/KYC analysis using real transaction data. This project demonstrates how graph analytics reveal suspicious patterns and high-risk intermediaries that traditional tabular analysis often misses.
Traditional AML systems rely on rows and columns that treat transactions in isolation. This project models them as a network of relationships—accounts, wallets, and entities linked by transactions—to surface hidden rings, money mules, and high-risk hubs.
- Graph construction: Builds a transaction network from real-world data (edges.csv, labels.csv)
- Feature engineering: Computes graph-theory metrics (PageRank, betweenness, degree centrality)
- Hybrid anomaly detection: Combines IsolationForest with a classification layer for suspicious entity detection
- Explainability: Generates interpretable SHAP explanations for detected anomalies
- Visualization: Interactive Streamlit dashboard with NetworkX + Plotly visual graphs
- Containerization: Dockerized for full reproducibility and rapid local deployment
Python · Pandas · NetworkX · Plotly · Streamlit · Scikit-learn · SHAP · Docker
# clone repo
git clone https://github.com/pmoise1981/Financial_Crime_Graph_Analysis.git
cd Financial_Crime_Graph_Analysis
# install dependencies
pip install -r requirements.txt
# run the app
streamlit run streamlit_app.pyGraph-based modeling transforms AML from transaction-level monitoring to relationship-aware risk intelligence—revealing complex laundering networks, circular fund flows, and hidden intermediaries that standard tabular models overlook.