In [1]:
def f1(precision,recall):
    if precision == 0.0 and recall == 0.0:
        return 0.0
    else:
        return 2 * float(precision)* float(recall) / ( precision+recall )

In [2]:
f1(0.31,0.76)


Out[2]:
0.44037383177570094

In [3]:
f1(0.64,0.38)


Out[3]:
0.4768627450980392

In [4]:
f1(0.39,0.16)


Out[4]:
0.2269090909090909

In [5]:
f1(0.22,0.18)


Out[5]:
0.19799999999999998

In [6]:
f1(0.11,0.39)


Out[6]:
0.1716

In [11]:
f1(0.0,0)


---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-11-abd1e492a31b> in <module>()
----> 1 f1(0.0,0)

<ipython-input-1-7e34dfb05a45> in f1(precision, recall)
      1 def f1(precision,recall):
----> 2     return 2 * float(precision)* float(recall) / ( precision+recall )

ZeroDivisionError: float division by zero

AP and MAP


In [ ]:
import numpy as np

In [ ]:
lst = []

In [ ]:
lst.append(np.array([1,2,3]))

In [ ]:
lst.append(np.array([4,4,4]))

In [ ]:
matrix = np.vstack(lst)

In [ ]:
matrix

In [ ]:
matrix.sum(axis=1)

In [ ]:
arr = np.array([1,2,3]).reshape(1,-1)

In [ ]:
np.sum(arr,axis=1)

In [ ]:
np.argsort(arr,axis=1)

In [ ]:
np.array([1,1]).shape

In [ ]:
original_y_true = np.array([[0.,1.],[1.,1.]]);original_y_true

In [ ]:
original_y_true.shape

In [ ]:
original_y_score = np.array([[0.,0.4],[0.9,0.1]]);original_y_score

In [ ]:
score_indices_top_k = np.array([[0,0],[0,0]]);score_indices_top_k

In [ ]:
row_indices_to_select = [i for i in range(original_y_true.shape[0])];row_indices_to_select

In [ ]:
column_indices_to_select = score_indices_top_k.T

In [ ]:
out = original_y_true[row_indices_to_select,column_indices_to_select];out

In [ ]:
out.shape

In [ ]:
arr1 = np.array([[0.5]])

In [ ]:
arr2 = np.array([[1.0]])

In [ ]:
lst = []
lst.append(arr1)
lst.append(arr2)

In [ ]:
np.vstack(lst)

In [ ]: