Challenge

Project 11

import numpy as np 
import pandas as pd
import pandas as pd
df = pd.read_csv("/kaggle/input/creditcardfraud/creditcard.csv")

df.head()

features = df.drop("Class",axis=1)
labels = df.loc[:,['Class']]

labels.head()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42)

X_train.head()

X_train.shape

from tensorflow import keras
from keras import Sequential,layers,optimizers,metrics,losses
from keras.layers import Dense,Conv1D,LSTM,MaxPooling1D,Input
from tensorflow.python.keras.models import Model
import numpy as np

inputs = Input(((X_train.shape[1],1)))
x = Conv1D(filters=256, kernel_size=5 ,padding="same", activation="relu")(inputs)
x = MaxPooling1D(pool_size=2)(x)
x = LSTM(64)(x)
x = Dense(64,activation='relu')(x)
predictions = Dense(units=1, activation='sigmoid')(x)
model = Model(inputs=inputs, outputs=predictions)

# model = Sequential()
# model.add(Conv1D(filters=256, kernel_size=5, padding='same', activation='relu', inputs = Input(((X_train.shape[1],1))) ))
# model.add(MaxPooling1D(pool_size=2))
# model.add(LSTM(64))
# # model.add(Dense(64,activation='relu'))
# model.add(Dense(units=1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) 

h =  model.fit(x=X_train, y=y_train, batch_size=64, epochs=5,validation_split=0.1)
# h =  model.fit(x=X_train, y=y_train, batch_size=64, epochs=5, validation_data=(X_val,y_val))



import matplotlib.pyplot as plt
print(h.history.keys())
# summarize history for accuracy
plt.plot(h.history['accuracy'])
plt.plot(h.history['val_accuracy'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(h.history['loss'])
plt.plot(h.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()



preds = model.predict(X_test)


print(len(np.round(preds)[np.round(preds)==1]))
print(len(np.round(preds)[np.round(preds)==0]))


print(y_test[0:5])
print(np.round(preds)[:5])

from sklearn.metrics import accuracy_score
acc_score = accuracy_score(y_test, np.round(preds))
print(acc_score)


output = X_test
output['fraud']=y_test
output['fraud_pred']=np.round(preds)
output['fraud_pred']=output['fraud_pred'].apply(lambda x:int(x))
output.head()


errors = output[output['fraud']!=output['fraud_pred']]
errors

acc = 1 - len(errors)/len(output)
print('acc from pandas  ',acc)
print('acc from sklearn ',acc_score)

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.