Question: I have a code for a neural network model. I want to ensure that it will be suitable for my project topic, which is (Ransomware
I have a code for a neural network model. I want to ensure that it will be suitable for my project topic, which is (Ransomware attack detection using deep learning (CNNs).or not.?
if yes, could you please develop the code to have Precision and recall output and add a more hidden layer to the code?
#Importing Libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPooling2D
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
# from sklearn.metrics import f1_score,accuracy_score,plot_confusion_matrix,auc,confusion_mat
from sklearn.metrics import accuracy_score
from sklearn.metrics import f1_score
from sklearn.metrics import confusion_matrix
malData = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/MalwareData.csv", sep='|')
malData.head()
malData.shape
malData.describe()
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.hist(malData['legitimate'],20)
plt.show()
#Data Cleaning
y=malData['legitimate']
malData = malData.drop(['legitimate'], axis=1)
malData = malData.drop(['Name'], axis=1)
malData = malData.drop(['md5'], axis=1)
print("The Name and md5 variables are reomved successfully")
#Spliting the dataset into test and train
x_train, x_test, y_train, y_test = train_test_split(malData,y,test_size=0.2, random_state=4)
x_train.shape
NNmodel = Sequential()
NNmodel.add(Dense(16, input_dim=54, activation = "relu"))
NNmodel.add(Dense(8, activation= "relu"))
NNmodel.add(Dense(4, activation= "relu"))
NNmodel.add(Dense(1, activation= "sigmoid"))
NNmodel.summary()
NNmodel.compile(loss = "binary_crossentropy", optimizer = "rmsprop", metrics = ["accuracy"])
#fit Model
NNmodel.fit(x_train, y_train, epochs=5, batch_size=32)
# Accuracy on the training dataset
trainPred = NNmodel.predict(x_train)
trainPred = [1 if y>=0.5 else 0 for y in trainPred]
print(accuracy_score(y_train, trainPred))
# Accuracy of the test dataset
y_prediction=NNmodel.predict(x_test)
y_prediction=[1 if y>=0.5 else 0 for y in y_prediction]
print(accuracy_score(y_test, y_prediction))
print(f1_score(y_test, y_prediction))
print(confusion_matrix(y_test, y_prediction))
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
