Which metric should I trust to evaluate my predictive model I am working on predictive model and when I evaluate it, I find good accuracy_score, precision_score, recall_score, and f1_score. But I don't get good results using confusion matrix. 
What is the metric that should I Trust ?
accuracy_score:  0.987727165447
confusion_matrix: [[338961   3857 ]
                   [   252     27  ]]
precision_score: 0.998449790932
recall_score:    0.987727165447
f1_score:        0.993031083087

I am using Scikit-Learn metrics.
‘precision’ sklearn.metrics.precision_score
‘recall’    sklearn.metrics.recall_score
‘f1’        sklearn.metrics.f1_score

 A: The problem is that you have highly unbalanced classes. If 99% of the data have y = 0, to get high accuracy, all you have to do is predict y = 0 regardless of the features in the data set. This shows that your model is accurate only because the classes are so highly unbalanced, but it is not good at actually differentiating between the two classes. None of the statistics are best, they just tell you different things about your model's fit.
A metric like AUC, Gini or KS would be better for comparing models and evaluating model fit when you have highly unbalanced classes. These statistics rank order the predictions and remove the effect of unbalanced classes. Even with an unbalanced sample, if you predict y = 0 for all of your data, you will get AUC = 0.5. Keep in mind that you also want to use a hold out sample for these evaluation metrics.
For AUC details, check out http://en.wikipedia.org/wiki/Receiver_operating_characteristic or http://scikit-learn.org/stable/modules/generated/sklearn.metrics.auc.html for implementation in Python.
