2
There is nothing wrong with this and nothing you can do. Compared to a 400-400 split, you have less precision; compared to a 200-200 split, you have more precision; compared to a 300-300 split, you have less precision. But it doesn't matter; the data you have is the data you have. No weighting or sampling can change that. You can increase precision by ...
2
See the description of probability in the documentation, and the note in the User Guide.
The issue is that SVC is not probabilistic by nature, and setting probability=True just fits a (Platt) calibration model on top of the support vector model. The predict method still uses the raw support vector decision surface, while the predict_proba method uses the ...
1
I actually think that AUPRC is a good way to go -- it essentially measures precision as a function of recall at varying thresholds -- but since you've mentioned that already, there's one more thing you can consider -- the F-beta measure.
This builds directly off of F1-score. As you know, F1 is given by
$$F_1 = \frac{2P\cdot R}{P+R}$$
where $P$ is precision ...
1
SMOTE creates artificial data-points, and in my opinion, it should always be the last option to try. The reason being "creating artificial data-points."
I would follow these steps:
1 - Test some classifiers with the data you have. If the metrics are good enough for your particular goal, you are done.
2 - If the metrics are not good enough, try to ...
Only top voted, non community-wiki answers of a minimum length are eligible
Related Tags
unbalanced-classes × 818classification × 301
machine-learning × 232
logistic × 77
r × 68
regression × 59
svm × 49
random-forest × 49
cross-validation × 45
precision-recall × 44
neural-networks × 37
oversampling × 35
anova × 32
sampling × 30
predictive-models × 30
binary-data × 30
python × 29
scikit-learn × 26
smote × 26
multi-class × 25
model-evaluation × 24
roc × 24
auc × 23
resampling × 23
dataset × 22