  A major trend in academia and data science is the rapid adoption of Bayesian
statistics for data analysis and modeling, leading to the development of
probabilistic programming languages (PPL). A PPL provides a framework that
allows users to easily specify a probabilistic model and perform inference
automatically. PyAutoFit is a Python-based PPL which interfaces with all
aspects of the modeling (e.g., the model, data, fitting procedure,
visualization, results) and therefore provides complete management of every
aspect of modeling. This includes composing high-dimensionality models from
individual model components, customizing the fitting procedure and performing
data augmentation before a model-fit. Advanced features include database tools
for analysing large suites of modeling results and exploiting domain-specific
knowledge of a problem via non-linear search chaining. Accompanying PyAutoFit
is the autofit workspace (see https://github.com/Jammy2211/autofit_workspace),
which includes example scripts and the HowToFit lecture series which introduces
non-experts to model-fitting and provides a guide on how to begin a project
using PyAutoFit. Readers can try PyAutoFit right now by going to the
introduction Jupyter notebook on Binder (see
https://mybinder.org/v2/gh/Jammy2211/autofit_workspace/HEAD) or checkout our
readthedocs(see https://pyautofit.readthedocs.io/en/latest/) for a complete
overview of PyAutoFit's features.
