A novel algorithm can generate data to train machine learning models in conditions of extreme scarcity of real world data