I would look into a variant of fuzzy systems such as the one suggested by Wojciech Sałabun. Also look into fuzzy c-means clustering and Type II systems.
There is no such basic rule...it is case sensitive...some times ANNs, sme times GEP, etc. But the most important is to avoid overtraining...if you can avoid overtraining and get accurate results, you can trust the model's output.