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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!