Exemplo n.º 1
0
def PolynomialSVMTest(pca_option):

    import SVM

    SVM.SVMSimulation(SVM.svm_poly, processing.linear_pca,
                      processing.overall_training_data, pca_option)

    processing.final_validation = np.array(processing.final_validation)

    FV_features = []
    FV_labels = []

    FV_features, FV_labels = processing.createFeatures_Labels(
        processing.final_validation)

    FV_features_data = None
    FV_labels_data = None

    FV_features_data, FV_labels_data = processing.convertToDataFrame(
        FV_features, FV_labels, processing.column_titles)

    global SVM_POLY_final_predictions
    if(pca_option == 'yes' or pca_option == 'both'):

        transformed_FV = processing.linear_pca.transform(FV_features_data)

        final_predictions = SVM.svm_poly.predict(transformed_FV)
        SVM_GAUS_final_predictions = final_predictions

        accuracy = metrics.accuracy_score(final_predictions, FV_labels)
        precision = metrics.precision_score(
            FV_labels, final_predictions, average='micro')
        recall = metrics.recall_score(
            FV_labels, final_predictions, average='micro')

        print('POLYNOMIAL SVM MODEL FINAL TEST DATA ACCURACY: ', 100 * accuracy)
        print('POLYNOMIAL SVM MODEL FINAL TEST DATA PRECISION: ', 100 * precision)
        print('POLYNOMIAL SVM MODEL FINAL TEST DATA RECALL: ', 100 * recall)
        print()

        return accuracy, precision, recall

    else:

        final_predictions = SVM.svm_poly.predict(FV_features_data)
        SVM_GAUS_final_predictions = final_predictions

        accuracy = metrics.accuracy_score(final_predictions, FV_labels)
        precision = metrics.precision_score(
            FV_labels, final_predictions, average='micro')
        recall = metrics.recall_score(
            FV_labels, final_predictions, average='micro')

        print('POLYNOMIAL SVM MODEL FINAL TEST DATA ACCURACY: ', 100 * accuracy)
        print('POLYNOMIAL SVM MODEL FINAL TEST DATA PRECISION: ', 100 * precision)
        print('POLYNOMIAL SVM MODEL FINAL TEST DATA RECALL: ', 100 * recall)
        print()

        return accuracy, precision, recall