01.04.2015 Views

1FfUrl0

1FfUrl0

1FfUrl0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Classification – Detecting Poor Answers<br />

Predicting one class with acceptable performance does not always mean that the<br />

classifier will predict the other classes acceptably. This can be seen in the following<br />

two graphs where we plot the Precision/Recall curves for classifying bad (left graph<br />

of the next screenshot) and good (right graph of the next screenshot) answers:<br />

In the previous graphs, we have also included a much better description<br />

of a classifier's performance: the area under curve (AUC). This can be<br />

understood as the average precision of the classifier and is a great way<br />

of comparing different classifiers.<br />

We see that we can basically forget about predicting bad answers (the left graph of<br />

the previous screenshot). This is because the precision for predicting bad answers<br />

decreases very quickly, at already very low recall values, and stays at an unacceptably<br />

low 60 percent.<br />

Predicting good answers, however, shows that we can get above 80 percent precision<br />

at a recall of almost 40 percent. Let us find out what threshold we need for that with<br />

the following code:<br />

>>> thresholds = np.hstack(([0],thresholds[medium]))<br />

>>> idx80 = precisions>=0.8<br />

>>> print("P=%.2f R=%.2f thresh=%.2f" % \ (precision[idx80][0],<br />

recall[idx80][0], threshold[idx80][0]))<br />

P=0.81 R=0.37 thresh=0.63<br />

[ 112 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!