How to interpret + and - precisions and recalls? I understand the general calculation and concept of precision and recall. But when I am trying to predict people's ethnicity using some feature, say for example, predicting a binary class Chinese vs non-Chinese. I get a pair of precisions and a pair of recalls from python.
For example: 
                     (Gold standard)
                   Chinese  non-Chinese
 (Predicted) Chinese    A         B
         non-Chinese    C         D

Results
Accuracy    0.9967
Precision + 0.4808
Precision - 0.999
Recall +    0.7095
Recall -    0.9976

I don't understand what the positive and negative classifications mean?
 A: Precision and recall both examine your system's performance on a specific class--typically the positive one. For example, recall can be computed as:
$$Recall = \frac{\textrm{True Positives}}{\textrm{True Positives} + \textrm{False Negatives}}$$Similarly , precision can be calculated as 
$$Precision = \frac{\textrm{True Positives}}{\textrm{True Positives + False Positives}}$$
In both cases, only one class--the positive class--shows up in the numerator. Your code appears to be computing precision/recall twice, once for the positive class (Chinese) and once for the negative class (non-Chinese).
If you set Chinese as the positive class, you'll get the following:
$$\begin{align} 
Recall_+ &= \frac{A}{A+C}\\
Precision_+ &= \frac{A}{A+B} \\
Recall_- &= \frac{D}{B+D} \\
Precision_- &= \frac{D}{C+D}
\end{align}
$$
This isn't exactly wrong, but it strikes me as a little unusual. Precision and recall are great metrics when you care about identifying one type of something in the middle of a sea of distracting and irrelevant stuff. If you're interested in the system's performance on both classes, another measure (e.g., aROC) might be better.
