-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
75 lines (51 loc) · 2.82 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from cgi import test
import time
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score, recall_score
from py_pkg.core.core import get_human_time, read_dataset_and_split, get_test_dataset
from py_pkg.algos.algo import Algo
from py_pkg.entities.entities import TestDataType, AttackType, AlgoToPredict
from py_pkg.testing.testing import Testing
# import datasets
dataset_dir = './datasets/clean-data/updated_dataset.csv'
def main():
start_time = time.time()
split_dataset = read_dataset_and_split(dataset_dir)
# initialize algo
algo = Algo(split_dataset)
print("==> ml-algo [Initializing]")
# implement individual algo
algo.impl_random_forests()
algo.impl_xgboost()
algo.impl_kmeans()
# test all algos and generate test metrics to be studied
tests = Testing()
# Random Forests
true_values_pred_values_rf_kv_ka = tests.test_for(TestDataType.kv_ka, algo, AlgoToPredict.random_forest)
test_metrics_rf_kv_ka = tests.generate_all_test_metrics(true_values_pred_values_rf_kv_ka)
true_values_pred_values_rf_uv_ka = tests.test_for(TestDataType.uv_ka, algo, AlgoToPredict.random_forest)
test_metrics_rf_uv_ka = tests.generate_all_test_metrics(true_values_pred_values_rf_uv_ka)
# save results
tests.save_testing_results(test_metrics_rf_kv_ka, "Random Forests - KV-KA")
tests.save_testing_results(test_metrics_rf_uv_ka, "Random Forests - UV-KA")
# Extreme Gradient Boosting
true_values_pred_values_xg_kv_ka = tests.test_for(TestDataType.kv_ka, algo, AlgoToPredict.xgboost)
test_metrics_xg_kv_ka = tests.generate_all_test_metrics(true_values_pred_values_xg_kv_ka)
true_values_pred_values_xg_uv_ka = tests.test_for(TestDataType.uv_ka, algo, AlgoToPredict.xgboost)
test_metrics_xg_uv_ka = tests.generate_all_test_metrics(true_values_pred_values_xg_uv_ka)
# save results
tests.save_testing_results(test_metrics_xg_kv_ka, "Extreme Gradient Boosting - KV-KA")
tests.save_testing_results(test_metrics_xg_uv_ka, "Extreme Gradient Boosting - UV-KA")
# K-Means Clustering
true_values_pred_values_kmeans_kv_ka = tests.test_for(TestDataType.kv_ka, algo, AlgoToPredict.k_means)
test_metrics_kmeans_kv_ka = tests.generate_all_test_metrics(true_values_pred_values_kmeans_kv_ka)
true_values_pred_values_kmeans_uv_ka = tests.test_for(TestDataType.uv_ka, algo, AlgoToPredict.k_means)
test_metrics_kmeans_uv_ka = tests.generate_all_test_metrics(true_values_pred_values_kmeans_uv_ka)
# save results
tests.save_testing_results(test_metrics_kmeans_kv_ka, "K-Means - KV-KA")
tests.save_testing_results(test_metrics_kmeans_uv_ka, "K-Means - UV-KA")
close_time = time.time()
print(f"\n==> ml-algo [Model training and Testing Completed in {get_human_time(close_time, start_time)}]")
main()