detecting_botnet
Typer | Posted on | |
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
# Load the dataset
dataset = pd.read_csv('/.../network-logs.csv')
# Import machine learning models
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.naive_bayes import GaussianNB
# Sample data preprocessing (customize based on dataset)
samples = dataset.iloc[:, [1, 2]].values
targets = dataset['ANOMALY'].values
# Split dataset into training and testing sets
from sklearn.model_selection import train_test_split
training_samples, testing_samples, training_targets, testing_targets = train_test_split(
samples, targets, test_size=0.3, random_state=0)
# Train k-Nearest Neighbors (k-NN) model
knc = KNeighborsClassifier(n_neighbors=2)
knc.fit(training_samples, training_targets)
# Test k-Nearest Neighbors (k-NN) model
knc_prediction = knc.predict(testing_samples)
knc_accuracy = 100.0 * accuracy_score(testing_targets, knc_prediction)
# Train Decision Tree model
dtc = DecisionTreeClassifier()
dtc.fit(training_samples, training_targets)
# Test Decision Tree model
dtc_prediction = dtc.predict(testing_samples)
dtc_accuracy = 100.0 * accuracy_score(testing_targets, dtc_prediction)
# Train Naive Bayes model
nb = GaussianNB()
nb.fit(training_samples, training_targets)
# Test Naive Bayes model
nb_prediction = nb.predict(testing_samples)
nb_accuracy = 100.0 * accuracy_score(testing_targets, nb_prediction)
# Plot model accuracies
models = ['KNN', 'Decision Tree', 'Naive Bayes']
accuracies = [knc_accuracy, dtc_accuracy, nb_accuracy]
plt.bar(models, accuracies)
plt.ylabel('Accuracy (%)')
plt.title('Comparison of Classifier Accuracies')
plt.show()