IUM_05
This commit is contained in:
parent
5aca317899
commit
ea02f9dc7b
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
creditcardfraud.zip
|
||||
creditcard.csv
|
||||
creditcard.csv
|
||||
data
|
||||
model/model.keras
|
@ -2,4 +2,4 @@ FROM ubuntu:latest
|
||||
|
||||
RUN apt update && apt install -y python3-pip
|
||||
|
||||
RUN pip install pandas numpy scikit-learn
|
||||
RUN pip install pandas numpy scikit-learn tensorflow
|
26
predict.py
Normal file
26
predict.py
Normal file
@ -0,0 +1,26 @@
|
||||
import os
|
||||
|
||||
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
|
||||
|
||||
from keras.models import load_model
|
||||
import pandas as pd
|
||||
from sklearn.metrics import confusion_matrix
|
||||
|
||||
|
||||
def main():
|
||||
model = load_model("model/model.keras")
|
||||
X_test = pd.read_csv("data/X_test.csv")
|
||||
y_test = pd.read_csv("data/y_test.csv")
|
||||
|
||||
y_pred = model.predict(X_test)
|
||||
y_pred = y_pred > 0.5
|
||||
|
||||
cm = confusion_matrix(y_test, y_pred)
|
||||
print(
|
||||
"Recall metric in the testing dataset: ",
|
||||
cm[1, 1] / (cm[1, 0] + cm[1, 1]),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
53
train_model.py
Normal file
53
train_model.py
Normal file
@ -0,0 +1,53 @@
|
||||
import os
|
||||
|
||||
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
|
||||
|
||||
from keras.models import Sequential
|
||||
from keras.layers import BatchNormalization, Dropout, Dense, Flatten, Conv1D
|
||||
from keras.optimizers import Adam
|
||||
import pandas as pd
|
||||
|
||||
|
||||
def main():
|
||||
X_train = pd.read_csv("data/X_train.csv")
|
||||
y_train = pd.read_csv("data/y_train.csv")
|
||||
|
||||
X_train = X_train.to_numpy()
|
||||
y_train = y_train.to_numpy()
|
||||
|
||||
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
|
||||
|
||||
model = Sequential(
|
||||
[
|
||||
Conv1D(32, 2, activation="relu", input_shape=X_train[0].shape),
|
||||
BatchNormalization(),
|
||||
Dropout(0.2),
|
||||
Conv1D(64, 2, activation="relu"),
|
||||
BatchNormalization(),
|
||||
Dropout(0.5),
|
||||
Flatten(),
|
||||
Dense(64, activation="relu"),
|
||||
Dropout(0.5),
|
||||
Dense(1, activation="sigmoid"),
|
||||
]
|
||||
)
|
||||
|
||||
model.compile(
|
||||
optimizer=Adam(learning_rate=1e-3),
|
||||
loss="binary_crossentropy",
|
||||
metrics=["accuracy"],
|
||||
)
|
||||
|
||||
model.fit(
|
||||
X_train,
|
||||
y_train,
|
||||
epochs=5,
|
||||
verbose=1,
|
||||
)
|
||||
|
||||
os.makedirs("model", exist_ok=True)
|
||||
model.save("model/model.keras")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user