In this project, several classification models were trained on a public credit card fraud dataset published in Kaggle. These models include linear models (Logistic Regression (LR) and Linear Discriminant Analyzer (LDA), and Naive Bayes (NB) model) and the non-linear models (SVM and Quadradic Discriminant Analyzer). Among these models, 100% prediction accuracy was achieved by a Support Vector Machine (SVM) with a "rbf" kernel, which indicates that this model is able to capture all the patterns to seperate the two classes, fraud and not fraud. And the worst performence was achieved by the NB model. The accuracy was only 92%, which shows that a linear model with independence assumption is insufficient to explain all the variances presented by this dataset.