I'm reading through Sklearn's tutorial on computing precision/recall! I came across this curve called "Iso-F1" curve they are plotting: link.
I tried to read their code for generating it, but I can't seem to understand -- the idea seems to be fixing F1 score, generating x points, and then generate y based on the f-score?
for f_score in f_scores:
x = np.linspace(0.01, 1)
y = f_score * x / (2 * x - f_score)
l, = plt.plot(x[y >= 0], y[y >= 0], color='gray', alpha=0.2)
plt.annotate('f1={0:0.1f}'.format(f_score), xy=(0.9, y[45] + 0.02))
I can't find a lot of information about this curve online, and the only one that seems to be discussing about creating this curve: https://github.com/scikit-learn/scikit-learn/issues/8313
Another question I have is:
For precision-recall curve, if the curve is concave like below, does it mean I have a very good classifier?