Commit 04dc2ee7 authored by mjennewine's avatar mjennewine
Browse files

get confusion matrix

parent d1e01833
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import Perceptron, SGDClassifier
from sklearn.neural_network import MLPClassifier
@@ -260,6 +260,21 @@ def getPerformanceMetrics():
    
    return accuracy, precision, recall, f1


def getConfusionMatrix():
    if len(X) == 0:
        preprocessing()
    
    if tree == None:
        loadModels()
    
    results = {'Perceptron': (confusion_matrix(Y, pla.predict(X)) / len(Y)).tolist(),
               'Stochastic Gradient Descent': (confusion_matrix(Y, sgd.predict(X)) / len(Y)).tolist(),
               'Neural Network': (confusion_matrix(Y, nn.predict(X)) / len(Y)).tolist(),
               'Decision Tree': (confusion_matrix(Y, tree.predict(X)) / len(Y)).tolist()}
    return results


# partial fit the new prediction data to each algorithm
def partialFitNewData(message, label):
    before = getPerformanceMetrics()
+5 −0
Original line number Diff line number Diff line
@@ -80,6 +80,11 @@ def getTopFiveWords():
    return val


@app.route('/getConfusionMatrix', methods=["GET"])
def getConfusionMatrix():
    return ml.getConfusionMatrix();


# Run the app!
if __name__ == '__main__':
    app.run(port = 8080)