Question: 1- I am doing my project using (ANN) model. I got the result below: 2- I would like to improve the result, If you can

1- I am doing my project using (ANN) model. I got the result below:

2- I would like to improve the result, If you can add or modify the code below:

# Importing Libraries (ANN)

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 accuracy_score, f1_score, precision_score, recall_score, cohen_kappa_score, roc_auc_score

from sklearn.preprocessing import StandardScaler

import warnings

# Load data

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()

malData = malData.drop(['Name', 'md5'], axis=1) # Drop Name and md5 columns

y = malData.pop('legitimate') # Remove 'legitimate' column from features

X_train, X_test, y_train, y_test = train_test_split(malData, y, test_size=0.2, random_state=4)

# Feature Selection

clf = ExtraTreesClassifier(n_estimators=50)

clf = clf.fit(X_train, y_train)

model = SelectFromModel(clf, prefit=True)

X_train = model.transform(X_train)

X_test = model.transform(X_test)

# Standardize input features

scaler = StandardScaler()

X_train = scaler.fit_transform(X_train)

X_test = scaler.transform(X_test)

# Build Model

model = Sequential()

model.add(Dense(32, input_dim=X_train.shape[1], activation='relu'))

model.add(Dense(16, activation='relu'))

model.add(Dense(8, activation='sigmoid'))

model.add(Dense(4, activation='relu'))

model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

model.summary()

# Fit Model

model.fit(X_train, y_train, epochs=5, batch_size=32)

# Evaluate Model

trainPred = model.predict(X_train)

trainPred = [1 if y>=0.5 else 0 for y in trainPred]

testPred = model.predict(X_test)

testPred = [1 if y>=0.5 else 0 for y in testPred]

print('Accuracy on training set:', accuracy_score(y_train, trainPred))

print('Accuracy on test set:', accuracy_score(y_test, testPred))

print('Precision:', precision_score(y_test, testPred))

print('Recall:', recall_score(y_test, testPred))

print('F1 score:', f1_score(y_test, testPred))

print('Cohen kappa:', cohen_kappa_score(y_test, testPred))

print('ROC AUC:', roc_auc_score(y_test, testPred))

print('Confusion Matrix: ', confusion_matrix(y_test, testPred))

3- also I got warning error if you can remove them

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!