Ejemplo n.º 1
0
    accuracy = num_correct * 100.0 / len(test_images_filenames)

    # Show results and timing
    print('\nACCURACY: {:.2f}'.format(accuracy))
    print('\nTOTAL TIME: {:.2f} s'.format(time.time() - start))

    classes = lin_svm.classes_

    # Create confusion matrix
    conf = confusion_matrix(test_labels, pred_class, labels=classes)

    # Create ROC curve and AUC score
    test_labels_bin = label_binarize(test_labels, classes=classes)
    fpr = []
    tpr = []
    roc_auc = []
    for i in range(len(classes)):
        c_fpr, c_tpr, _ = roc_curve(test_labels_bin[:, i], np.array(pred_prob)[:, i])
        c_roc_auc = auc(c_fpr, c_tpr)
        fpr.append(c_fpr)
        tpr.append(c_tpr)
        roc_auc.append(c_roc_auc)

    # Plot
    plotting.plot_confusion_matrix(conf, classes=classes, normalize=True)
    plotting.plot_roc_curve(fpr, tpr, roc_auc, classes=classes,
                            title='ROC curve for linear SVM with codebook of {} words'.format(settings.codebook_size)
                            )

    print('Done.')
Ejemplo n.º 2
0
        test_results = io.load_object('svm_denseSIFT_test_results', ignore=True)
        classes = io.load_object('svm_denseSIFT_classes', ignore=True)
        pred_results = [x[0] for x in test_results]
        pred_class = [x[1] for x in test_results]
        pred_prob = [x[2] for x in test_results]

        test_images_filenames, test_labels = io.load_test_set()

        # Create confusion matrix
        conf = confusion_matrix(test_labels, pred_class, labels=classes)

        # Create ROC curve and AUC score
        test_labels_bin = label_binarize(test_labels, classes=classes)
        fpr = []
        tpr = []
        roc_auc = []
        for i in range(len(classes)):
            c_fpr, c_tpr, _ = roc_curve(test_labels_bin[:, i], np.array(pred_prob)[:, i])
            c_roc_auc = auc(c_fpr, c_tpr)
            fpr.append(c_fpr)
            tpr.append(c_tpr)
            roc_auc.append(c_roc_auc)

        # Plot
        plotting.plot_confusion_matrix(conf, classes=classes, normalize=True)
        plotting.plot_roc_curve(fpr, tpr, roc_auc, classes=classes,
                                title='ROC curve for rbf SVM with codebook of {} words'.format(K)
                                )

    print('Done.')