Loading ml.py +40 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,46 @@ sgd = None nn = None tree = None def getPerformanceMetrics(y_actual, y_pred): if len(X) == 0: preprocessing() if tree == None: loadModels() X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0) pla_yPred = pla.predict(X_test) sgd_yPred = sgd.predict(X_test) nn_yPred = nn.predict(X_test) tree_yPred = tree.predict(X_test) accuracy = [accuracy_score(Y_test, pla_yPred), accuracy_score(Y_test, sgd_yPred), accuracy_score(Y_test, nn_yPred), accuracy_score(Y_test, tree_yPred)] precision = [precision_score(Y_test, pla_yPred, average='macro'), precision_score(Y_test, sgd_yPred, average='macro'), precision_score(Y_test, nn_yPred, average='macro'), precision_score(Y_test, tree_yPred, average='macro')] recall = [recall_score(Y_test, pla_yPred, average='macro'), recall_score(Y_test, sgd_yPred, average='macro'), recall_score(Y_test, nn_yPred, average='macro'), recall_score(Y_test, tree_yPred, average='macro')] f1 = [recall_score(Y_test, pla_yPred, average='macro'), recall_score(Y_test, sgd_yPred, average='macro'), recall_score(Y_test, nn_yPred, average='macro'), recall_score(Y_test, tree_yPred, average='macro')] # accuracy = accuracy_score(y_actual, y_pred) # precision = precision_score(y_actual, y_pred, average='macro') # recall = recall_score(y_actual, y_pred, average='macro') # f1 = f1_score(y_actual, y_pred, average='macro') return accuracy, precision, recall, f1 def printMetrics(y_actual, y_pred): print('Accuracy: ', accuracy_score(y_actual, y_pred)) Loading server.py +8 −5 Original line number Diff line number Diff line Loading @@ -50,11 +50,14 @@ def correctPrediction(): # TODO make this get the actual ranking of algorithms @app.route('/getAlgorithms', methods=["GET"]) def getTopAlgorithms(): name = ["This (in use)", "Comes", "From", "The", "Server"] f1 = ["5", "4", "3", "2", "1"] precision = ["1", "2", "3", "4", "5"] recall = ["1", "2", "3", "4", "5"] accuracy = ["1", "2", "3", "4", "5"] # name = ["This (in use)", "Comes", "From", "The", "Server"] # f1 = ["5", "4", "3", "2", "1"] # precision = ["1", "2", "3", "4", "5"] # recall = ["1", "2", "3", "4", "5"] # accuracy = ["1", "2", "3", "4", "5"] name = "Perceptron", "Stochastic Gradient Descent", "Neural Network", "Decision Tree" accuracy, precision, recall, f1 = ml.getPerformanceMetrics() val = { "name": name, Loading web/js/main.js +32 −32 Original line number Diff line number Diff line Loading @@ -109,38 +109,38 @@ function getTopAlgorithms() { replyObj = JSON.parse(replyString); console.log(replyObj) // put the algorithm names in their ranked order document.getElementById("alg1_name").innerHTML = "<b>" + replyObj.name[0] + "</b>"; document.getElementById("alg2_name").innerText = replyObj.name[1]; document.getElementById("alg3_name").innerText = replyObj.name[2]; document.getElementById("alg4_name").innerText = replyObj.name[3]; document.getElementById("alg5_name").innerText = replyObj.name[4]; // put the algorithms' F1 scores in their ranked order document.getElementById("alg1_f1").innerHTML = "<b>" + replyObj.f1[0] + "</b>"; document.getElementById("alg2_f1").innerText = replyObj.f1[1]; document.getElementById("alg3_f1").innerText = replyObj.f1[2]; document.getElementById("alg4_f1").innerText = replyObj.f1[3]; document.getElementById("alg5_f1").innerText = replyObj.f1[4]; document.getElementById("alg1_acc").innerHTML = "<b>" + replyObj.accuracy[0] + "</b>"; document.getElementById("alg2_acc").innerText = replyObj.accuracy[1]; document.getElementById("alg3_acc").innerText = replyObj.accuracy[2]; document.getElementById("alg4_acc").innerText = replyObj.accuracy[3]; document.getElementById("alg5_acc").innerText = replyObj.accuracy[4]; document.getElementById("alg1_precision").innerHTML = "<b>" + replyObj.precision[0] + "</b>"; document.getElementById("alg2_precision").innerText = replyObj.precision[1]; document.getElementById("alg3_precision").innerText = replyObj.precision[2]; document.getElementById("alg4_precision").innerText = replyObj.precision[3]; document.getElementById("alg5_precision").innerText = replyObj.precision[4]; document.getElementById("alg1_recall").innerHTML = "<b>" + replyObj.recall[0] + "</b>"; document.getElementById("alg2_recall").innerText = replyObj.recall[1]; document.getElementById("alg3_recall").innerText = replyObj.recall[2]; document.getElementById("alg4_recall").innerText = replyObj.recall[3]; document.getElementById("alg5_recall").innerText = replyObj.recall[4]; loadAlgGraph(replyObj) // document.getElementById("alg1_name").innerHTML = "<b>" + replyObj.name[0] + "</b>"; // document.getElementById("alg2_name").innerText = replyObj.name[1]; // document.getElementById("alg3_name").innerText = replyObj.name[2]; // document.getElementById("alg4_name").innerText = replyObj.name[3]; // document.getElementById("alg5_name").innerText = replyObj.name[4]; // // put the algorithms' F1 scores in their ranked order // document.getElementById("alg1_f1").innerHTML = "<b>" + replyObj.f1[0] + "</b>"; // document.getElementById("alg2_f1").innerText = replyObj.f1[1]; // document.getElementById("alg3_f1").innerText = replyObj.f1[2]; // document.getElementById("alg4_f1").innerText = replyObj.f1[3]; // document.getElementById("alg5_f1").innerText = replyObj.f1[4]; // document.getElementById("alg1_acc").innerHTML = "<b>" + replyObj.accuracy[0] + "</b>"; // document.getElementById("alg2_acc").innerText = replyObj.accuracy[1]; // document.getElementById("alg3_acc").innerText = replyObj.accuracy[2]; // document.getElementById("alg4_acc").innerText = replyObj.accuracy[3]; // document.getElementById("alg5_acc").innerText = replyObj.accuracy[4]; // document.getElementById("alg1_precision").innerHTML = "<b>" + replyObj.precision[0] + "</b>"; // document.getElementById("alg2_precision").innerText = replyObj.precision[1]; // document.getElementById("alg3_precision").innerText = replyObj.precision[2]; // document.getElementById("alg4_precision").innerText = replyObj.precision[3]; // document.getElementById("alg5_precision").innerText = replyObj.precision[4]; // document.getElementById("alg1_recall").innerHTML = "<b>" + replyObj.recall[0] + "</b>"; // document.getElementById("alg2_recall").innerText = replyObj.recall[1]; // document.getElementById("alg3_recall").innerText = replyObj.recall[2]; // document.getElementById("alg4_recall").innerText = replyObj.recall[3]; // document.getElementById("alg5_recall").innerText = replyObj.recall[4]; // loadAlgGraph(replyObj) } } http.send(); Loading Loading
ml.py +40 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,46 @@ sgd = None nn = None tree = None def getPerformanceMetrics(y_actual, y_pred): if len(X) == 0: preprocessing() if tree == None: loadModels() X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0) pla_yPred = pla.predict(X_test) sgd_yPred = sgd.predict(X_test) nn_yPred = nn.predict(X_test) tree_yPred = tree.predict(X_test) accuracy = [accuracy_score(Y_test, pla_yPred), accuracy_score(Y_test, sgd_yPred), accuracy_score(Y_test, nn_yPred), accuracy_score(Y_test, tree_yPred)] precision = [precision_score(Y_test, pla_yPred, average='macro'), precision_score(Y_test, sgd_yPred, average='macro'), precision_score(Y_test, nn_yPred, average='macro'), precision_score(Y_test, tree_yPred, average='macro')] recall = [recall_score(Y_test, pla_yPred, average='macro'), recall_score(Y_test, sgd_yPred, average='macro'), recall_score(Y_test, nn_yPred, average='macro'), recall_score(Y_test, tree_yPred, average='macro')] f1 = [recall_score(Y_test, pla_yPred, average='macro'), recall_score(Y_test, sgd_yPred, average='macro'), recall_score(Y_test, nn_yPred, average='macro'), recall_score(Y_test, tree_yPred, average='macro')] # accuracy = accuracy_score(y_actual, y_pred) # precision = precision_score(y_actual, y_pred, average='macro') # recall = recall_score(y_actual, y_pred, average='macro') # f1 = f1_score(y_actual, y_pred, average='macro') return accuracy, precision, recall, f1 def printMetrics(y_actual, y_pred): print('Accuracy: ', accuracy_score(y_actual, y_pred)) Loading
server.py +8 −5 Original line number Diff line number Diff line Loading @@ -50,11 +50,14 @@ def correctPrediction(): # TODO make this get the actual ranking of algorithms @app.route('/getAlgorithms', methods=["GET"]) def getTopAlgorithms(): name = ["This (in use)", "Comes", "From", "The", "Server"] f1 = ["5", "4", "3", "2", "1"] precision = ["1", "2", "3", "4", "5"] recall = ["1", "2", "3", "4", "5"] accuracy = ["1", "2", "3", "4", "5"] # name = ["This (in use)", "Comes", "From", "The", "Server"] # f1 = ["5", "4", "3", "2", "1"] # precision = ["1", "2", "3", "4", "5"] # recall = ["1", "2", "3", "4", "5"] # accuracy = ["1", "2", "3", "4", "5"] name = "Perceptron", "Stochastic Gradient Descent", "Neural Network", "Decision Tree" accuracy, precision, recall, f1 = ml.getPerformanceMetrics() val = { "name": name, Loading
web/js/main.js +32 −32 Original line number Diff line number Diff line Loading @@ -109,38 +109,38 @@ function getTopAlgorithms() { replyObj = JSON.parse(replyString); console.log(replyObj) // put the algorithm names in their ranked order document.getElementById("alg1_name").innerHTML = "<b>" + replyObj.name[0] + "</b>"; document.getElementById("alg2_name").innerText = replyObj.name[1]; document.getElementById("alg3_name").innerText = replyObj.name[2]; document.getElementById("alg4_name").innerText = replyObj.name[3]; document.getElementById("alg5_name").innerText = replyObj.name[4]; // put the algorithms' F1 scores in their ranked order document.getElementById("alg1_f1").innerHTML = "<b>" + replyObj.f1[0] + "</b>"; document.getElementById("alg2_f1").innerText = replyObj.f1[1]; document.getElementById("alg3_f1").innerText = replyObj.f1[2]; document.getElementById("alg4_f1").innerText = replyObj.f1[3]; document.getElementById("alg5_f1").innerText = replyObj.f1[4]; document.getElementById("alg1_acc").innerHTML = "<b>" + replyObj.accuracy[0] + "</b>"; document.getElementById("alg2_acc").innerText = replyObj.accuracy[1]; document.getElementById("alg3_acc").innerText = replyObj.accuracy[2]; document.getElementById("alg4_acc").innerText = replyObj.accuracy[3]; document.getElementById("alg5_acc").innerText = replyObj.accuracy[4]; document.getElementById("alg1_precision").innerHTML = "<b>" + replyObj.precision[0] + "</b>"; document.getElementById("alg2_precision").innerText = replyObj.precision[1]; document.getElementById("alg3_precision").innerText = replyObj.precision[2]; document.getElementById("alg4_precision").innerText = replyObj.precision[3]; document.getElementById("alg5_precision").innerText = replyObj.precision[4]; document.getElementById("alg1_recall").innerHTML = "<b>" + replyObj.recall[0] + "</b>"; document.getElementById("alg2_recall").innerText = replyObj.recall[1]; document.getElementById("alg3_recall").innerText = replyObj.recall[2]; document.getElementById("alg4_recall").innerText = replyObj.recall[3]; document.getElementById("alg5_recall").innerText = replyObj.recall[4]; loadAlgGraph(replyObj) // document.getElementById("alg1_name").innerHTML = "<b>" + replyObj.name[0] + "</b>"; // document.getElementById("alg2_name").innerText = replyObj.name[1]; // document.getElementById("alg3_name").innerText = replyObj.name[2]; // document.getElementById("alg4_name").innerText = replyObj.name[3]; // document.getElementById("alg5_name").innerText = replyObj.name[4]; // // put the algorithms' F1 scores in their ranked order // document.getElementById("alg1_f1").innerHTML = "<b>" + replyObj.f1[0] + "</b>"; // document.getElementById("alg2_f1").innerText = replyObj.f1[1]; // document.getElementById("alg3_f1").innerText = replyObj.f1[2]; // document.getElementById("alg4_f1").innerText = replyObj.f1[3]; // document.getElementById("alg5_f1").innerText = replyObj.f1[4]; // document.getElementById("alg1_acc").innerHTML = "<b>" + replyObj.accuracy[0] + "</b>"; // document.getElementById("alg2_acc").innerText = replyObj.accuracy[1]; // document.getElementById("alg3_acc").innerText = replyObj.accuracy[2]; // document.getElementById("alg4_acc").innerText = replyObj.accuracy[3]; // document.getElementById("alg5_acc").innerText = replyObj.accuracy[4]; // document.getElementById("alg1_precision").innerHTML = "<b>" + replyObj.precision[0] + "</b>"; // document.getElementById("alg2_precision").innerText = replyObj.precision[1]; // document.getElementById("alg3_precision").innerText = replyObj.precision[2]; // document.getElementById("alg4_precision").innerText = replyObj.precision[3]; // document.getElementById("alg5_precision").innerText = replyObj.precision[4]; // document.getElementById("alg1_recall").innerHTML = "<b>" + replyObj.recall[0] + "</b>"; // document.getElementById("alg2_recall").innerText = replyObj.recall[1]; // document.getElementById("alg3_recall").innerText = replyObj.recall[2]; // document.getElementById("alg4_recall").innerText = replyObj.recall[3]; // document.getElementById("alg5_recall").innerText = replyObj.recall[4]; // loadAlgGraph(replyObj) } } http.send(); Loading