Principal Component Analysis for Money Laundering Detection
Kossi Edoh, North Carolina A & T State University,
Initial Publication Date: October 6, 2026
DOIThis page currently has no DOI, but you may request a DOI be assigned. |
Cite thisSummary
The project is on principal component analysis (pca) and graph anomaly detection for money laundering. Variables such as Transaction amount, Transaction frequency, Average transaction amount, Number of counterparties, Incoming transaction amount, Outgoing transaction amount, and Transaction velocity are used to determine fraudulent bank transactions. Simulated or real datasets are used to evaluate the model's performance. The corresponding graph consists of bank accounts as nodes and transactions as edges. The node features are the PCA-transformed financial behavior.
Topics
Computer Science, Mathematics
Grade Level
College Upper (15-16)
Readiness for Online Use
Online Adaptable
Share your modifications and improvements to this activity through the Community Contribution Tool »
Learning Goals
Student will be able to use MATLAB Toolboxes to perform tasks. MATLAB could be used to generate simulation data and get access existing real datasets. The project allows students to perform data analysis, combine PCA with graph learning, and develop models. Students will learn how to right a report on their results.
Context for Use
The project is for a senior-level undergraduate mathematics class with about 50 students. This is an out-of-class activity. Students are expected to have intermediate-level MATLAB programming skills. The activity can be adapted for other class settings since it requires knowledge of principal component analysis and basic graph theory. The activity can be done after students have covered PCA.
Description and Teaching Materials
Materials include
Data-Driven Science and Engineering, by Steven Brunton and Nathan Kutz. - PCA
Graph theory
Teaching Notes and Tips
The project should be given to students after they are introduced to Singular Value Decomposition, PCA, and an introduction to graph theory.
Assessment
The rubric for the project will have the following criteria:
A scoring scale of 1–5, where 5 means exemplary, 4 means proficient, 3 means average, 2 means developing, and 1 means major improvement needed. Students will be expected to provide a MATLAB code at the end of the project and their observations of the results. The instructor will run the code or use MATLAB Grader to look for code errors and the correctness of calculations. The following will be assessed: code organization, code correctness/figures, and final report documentation.
Code organization: Here, exemplary means the code is highly organized and readable. The code has descriptive variables and organized logical sections. Needs major improvement if the code lacks all the properties of an exemplary code.
Correctness and plots: Here, exemplary means the code produces expected, accurate results and is robust to unexpected errors. The code needs major improvement if it lacks all the properties of an exemplary code.
Final report documentation: Here, exemplary means having a clear and well-written report with explanations of figures and an interpretation of results. Needs major improvement if the documentation lacks all the properties of an exemplary score.
The results should show the following:
References and Resources
1. databookuw.com
2. https://www.mathworks.com/matlabcentral/fileexchange/134751-pca-toolbox-for-matlab
3. https://www.mathworks.com/matlabcentral/fileexchange/136234-graph-theory-toolbox?s_tid=FX_rc2_behav