Situation 1 : You want to fit your training set
Imagine that $x_i$ and $y_i$ are feature and target vector respectively for $i=1,\ldots,n$ observation pairs then if there's $n$ unique feature vectors you can perfectly fit your data with $n$ indicator functions... So stop when this is done.
Situation 2 : You want to build a predictive model
Try to imagine this question in a situation were you are randomly simulating feature $X$ and target data $Y$ $\sim (X,Y)$ i.e have infinite amount of data.
You want to find a function $f$ i.e your model minimizing some loss function $L$ which I assume is cross entropy. Since this should be minimized for new data what you want is to
$$\min_f E\left[ L(Y,f(X))\right]$$
How can I be sure that the features I'm using can predict the target?
With infinite data I assume you could fit this by using some infinite amount of basis functions to recover the predicted quantity your interested in. As an example say you have $K$ predictors and want to predict the bernoulli parameter $p$ for a binary prediction task then you could do this with logistic polynomial regression or more intuitively set
$$\hat{p}=f(x)=sigmoid\left(\sum_{i=0}^{\infty}\sum_{k=1}^{K}\alpha_{ik}X^i_k\right)$$
should do it. (I'm sure there's better examples)
If you see that $\alpha_{ik}=0$ for $i>0$ the correct model is a baseline model then you can conclude that your features can't predict the data.
You don't have infinite amount of data. In particular your test set is not infinite so being frugal with this essential to ensure you're estimating the expected error. This leads to be relying on best practices and domain heuristics about how high AUC$^{***}$ or some other ROC-metric can be for similar problems.
All models you mentioned are bagging basis functions based on such heuristics and it usually works well.
I think all good answers to this question should focus on what the best practices are. I think one important such on this type of open prediction problem is to plan ahead how the test set will be used.
When can we stop and say: "it's not possible to separate the classes using these parameters/features ?
When you've depleted your testing data
$^*$Accuracy is a useless metric and should never be used unless you have equal class prevalence
~1 Million records
in which I have~4000 positive cases
. I have~900 features
. I userandom sampling
to train the models and I create manyfolds
andtrain multiple models
on them. After that I perform avote
to get the final prediction. $\endgroup$