예제 #1
0
 def testing_suite(self, map_test, prediction_prob):
     v_print('generating visuals', self.verbose)
     heat_fig = analyze_results.probability_heat_map(map_test, prediction_prob, self.test_name, save = True)
     analyze_results.ROC(map_test.getLabels('damage'), prediction_prob, self.test_name, save = True)
     map_test.newPxMask(prediction_prob.ravel()>.4, 'damage_pred')
     sbs_fig = analyze_results.side_by_side(map_test, 'damage', 'damage_pred', self.test_name, True)
     v_print('done generating visuals', self.verbose)
예제 #2
0
def main_haiti():
    from Xie import EM
    from labeler import Labelers
    model      = ObjectClassifier(0,1)
    labelers   = Labelers()
    y          = labelers.majority_vote()
    train       = np.ix_(np.arange(4096/3, 4096), np.arange(4096/2))
    test      = np.ix_( np.arange(4096/3, 4096), np.arange(4096/2, 4096))
    haiti_map  = map_overlay.haiti_setup()
    train_map  = haiti_map.sub_map(train)
    test_map   = haiti_map.sub_map(test)
    #em = EM(train_map, labelers)
    #em.run()
    #y2 = em.G[:,1]>0.5
    g_truth    = y[test_map.segmentations[20]]
    FPRs = []
    TPRs = []
    for email in labelers.emails:
        print email
        a = time.time()
        labels = labelers.labeler(email)[test_map.segmentations[20]]
        b = time.time()
        FPR, TPR = analyze_results.confusion_analytics(g_truth.ravel(), labels.ravel())
        c = time.time()
        FPRs.append(FPR)
        TPRs.append(TPR)

    probs = model.fit_and_predict(train_map, test_map, y[train_map.unique_segs(20)])
    print analyze_results.FPR_from_FNR(g_truth.ravel(), probs.ravel(), TPR = .95)
    analyze_results.probability_heat_map(test_map, probs.ravel(), '')
    fig, _, _, _, _, _ = analyze_results.ROC(g_truth.ravel(), probs.ravel(), 'Classifier')
    plt.scatter(FPRs, TPRs)
    names = labelers.emails
    for i in range(len(FPRs)):
        plt.annotate(names[i], (FPRs[i], TPRs[i]))

    fig.savefig('All_ROCs/{}_ROC.png'.format('Classifier'), format='png')
    plt.show()