Site icon Machine Learning Projects

Credit Card Fraud Detection – easy way – 2023

Machine Learning Projects

So in today’s blog, we will be building a Credit Card Fraud Detection model which will be very simple and easy to understand. This is a very basic machine learning project which students basically do in their starting phase of learning machine learning. So without any further due, Let’s do it…

Step 1 – Importing required libraries for Credit Card Fraud Detection.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.preprocessing import RobustScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report,confusion_matrix,accuracy_score

%matplotlib inline

Step 2 – Reading our input data for Credit Card Fraud Detection.

df=pd.read_csv('creditcard.csv')
df.head()

Step 3 – Describing our data for Credit Card Fraud Detection.

df.describe()
Description of our input data

Step 4 – Plotting Amount vs Class.

sns.jointplot(new_df['scaled_amount'],new_df['Class'])
Amount vs Class

Step 5 – Scaling our unscaled columns.

rbs = RobustScaler()

df_small = df[['Time','Amount']]
df_small = pd.DataFrame(rbs.fit_transform(df_small))

df_small.columns = ['scaled_time','scaled_amount']
df = pd.concat([df,df_small],axis=1)

df.drop(['Time','Amount'],axis=1,inplace=True)

df.head()

Step 6 – Visualizing our unbalanced dataset.

df['Class'].value_counts()
Unequal instances of 0s and 1s
sns.countplot(df['Class'])

Step 7 – Balancing dataset for Credit Card Fraud Detection.

non_fraud = df[df['Class']==0]
fraud = df[df['Class']==1]

non_fraud = non_fraud.sample(frac=1)

non_fraud = non_fraud[:492]

new_df = pd.concat([non_fraud,fraud])
new_df = new_df.sample(frac=1)

Step 8 – Visualizing our balanced dataset.

new_df['Class'].value_counts()
Equal instances of 0s and 1s
sns.countplot(new_df['Class'])
Equal 0 and classes

Step 9 – train-test-split our data for Credit Card Fraud Detection.

X = new_df.drop('Class',axis=1)
y = new_df['Class']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=101)

Step 10 – Training our LogisticRegresion model for Credit Card Fraud Detection.

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()
lr.fit(X_train,y_train)

pred = lr.predict(X_test)

print(classification_report(y_test,pred))
print('\n\n')
print(confusion_matrix(y_test,pred))
print('\n')
print('accuracy is --> ',round(accuracy_score(y_test,pred)*100,2))
Performance of our model

Download Data…

Download the Source Code…

Do let me know if there’s any query regarding this topic by contacting me on email or LinkedIn.

So this is all for this blog folks, thanks for reading it and I hope you are taking something with you after reading this and till the next time ?…

Read my previous post: SPAM DETECTION USING COUNT VECTORIZER

Check out my other machine learning projectsdeep learning projectscomputer vision projectsNLP projectsFlask projects at machinelearningprojects.net.

Exit mobile version