Exemplo n.º 1
0
 def Eval(self, test):
     Y_pred = self.PredictLabel(test.X,0,True)
     recall_pos = []
     recall_neg = []
     precision_pos = []
     precision_neg =[]
     ev = Eval(Y_pred, test.Y)
     accy = ev.Accuracy()
     #print(ev.EvalRecall())
     #print(ev.EvalPrecision())
     probThresh = [0.2,0.4,0.6,0.8]
     for i in range(len(probThresh)):
         pred = self.PredictLabel(test.X,probThresh[i],False) 
         ev = Eval(pred, test.Y)
         #ev.EvalRecall()
         #print('Threshold Value %f'%probThresh[i])
         recallP,recallN=ev.EvalRecall()
         recall_pos.append(recallP)
         recall_neg.append(recallN)
         precisionP,precisionN=ev.EvalPrecision()
         precision_pos.append(precisionP)
         precision_neg.append(precisionN)
     plt.pause(0.1)
     plt.xlabel('Recall')
     plt.ylabel('Precision')
     fig=plt.figure()
     plt.title('For +1 Label')
     plt.plot(recall_pos,precision_pos,'r')
     fig.savefig('Pos_class.png')
     plt.title('For -1 Label')
     fig1=plt.figure(1)
     plt.plot(recall_neg,precision_neg,'b')
     fig1.savefig('Neg_class.png')
        
     return accy
Exemplo n.º 2
0
 def Eval(self, test):
     Y_pred = self.PredictLabel(test.X)
     # Y_pred = self.PredictLabel(test,len(test))
     ev = Eval(Y_pred, test.Y)
     # ev = Eval(Y_pred.pred, test.Y)
     return [ev.Accuracy(), ev.EvalPrecition(), ev.EvalRecall()]
Exemplo n.º 3
0
    '''
    print("Log Probability of first 10 review")
    nb = NaiveBayes(traindata, float(sys.argv[2]))
    for i in range(10):
        res = nb.PredictProb(testdata, i)
        print(i, res)

    print("Predict Label with Threshold")
    precition = []
    recall = []

    for i in np.arange(0.1, 1.0, 0.1):
        pred = nb.PredictLabelTh(testdata, i)
        ev = Eval(pred, testdata.Y)
        precition.append(ev.EvalPrecition())
        recall.append(ev.EvalRecall())
        # ev = Eval(Y_pred.pred, test.Y)
        print('Threshold:', i, ' Accuracy: ', ev.Accuracy(), ' Precition: ',
              ev.EvalPrecition(), ' Recall: ', ev.EvalRecall())
    '''
    # Create some mock data
    t = recall
    data1 = precition
    data2 = np.arange(0.05, 1.0, 0.05)
    fig, ax1 = plt.subplots()
    color = 'tab:blue'
    ax1.set_xlabel('Recall')
    ax1.set_ylabel('Precition', color=color)
    ax1.plot(t, data1, color=color)
    ax1.tick_params(axis='y', labelcolor=color)
    ax2 = ax1.twinx()