Two significant methodological challenges confront policy makers and practitioners in using crime data. The first challenge is that the models underestimate the extent of crimes occurring within a geographical space and the second is that the models need fully reflect uncertainties in prediction and inference. Combining machine learning techniques and new Bayesian estimation tools this paper develops a generic modelling strategy that learns and hence models crime in a spatial environment. This model will enable policy makers and police to make better and more informed decisions. The proposed method combines a parametric and non-parametric stochastic model which is fully probabilistic, i.e. captures the uncertainty in the prediction and the model parameters, using criminal records and demographic information. This provides more robust and informed estimates of crime activity. The model is estimated using machine learning sampling algorithms that can dynamically update the stochastic model as new information is fed into the model. We validate this method using real crime data from the state of NSW, Australia.