Machine Learning for Socially Responsible Portfolio Optimisation