This is a case study that documents how a small data science team in a big bank took on the challenge to transform a fragmented sales process into a data-driven one using Python and machine learning. This talk outlines the various ways Python has been instrumental in delivering a production solution that serves advisers and relationship manager on a continuous basis. The Challenge - A bank has many clients with diverse needs and cost pressures mean fewer advisers resulting in reduced client coverage. - Multiple sales channels and mixed service levels meant sales processes were uncoordinated and driven by heuristics and often very subjective. - And... Excel sheets everywhere! Solution - Go data-driven! - Learn from clients and understand product usage - Empower and inform advisers and call centre agents - Build a front-to-back sales process (no more Excels!) - How? With Python! The Python Bits - Scikit learn machine learning pipelines that implement two distinct approaches to product affinity in banking and wealth management - SQL Alchemy based API for data engineering and rapid prototyping of analytics - Pandas and Jupyter for development and collaboration - Luigi pipeline for daily processing of millions of transactions and engineering features - Extracting features from text with NLP (Spacy) - Delivering machine learning interpretability in production, e.g. with Random Forests and treeinterpreter - A Python module that we built with all the reusable bits: building training and prediction datasets, developing pipelines, generating monitoring data and enabling explainability |