Giter Site home page Giter Site logo

azure-customer-churn's Introduction

Customer churn prediction

This sample is an update of the customer churn sample previously made available as part of Azure Machine learning workbench templates.

https://github.com/Azure-Samples/MachineLearningSamples-ChurnPrediction

Latest Azureml-sdk tested: 1.0.57

Changes introduced:

  • Training using Azure Machine Learning Service pipeline.
  • Model training done with a probabilistic deep network using deep kernel learning approach.
  • Hyperparameters tunning using Azure ML's Hyperdrive

Prerequisites:

Before running this notebook, make sure you have gone through the steps listed below:

  • You have a workspace created listed here

  • In order to get started with Azure Machine learning SDK, please go through the getting started tutorials on Azure ML official repo

Pipeline

Preprocessing

The preprocessing done consist of one hot encoding the categorical features and normalizing the numeric features.

Model architecture

The model consist of training a binary classifier using a Deep kernel learning approach which combines the non-parametric flexibility of gaussian process with the inductive biases of deep learning architectures using stochastic variational inference to tackle the intractable marginal likelihood.

This novel DKL appoach used in this example,named stochastic-variational deep kernel learning (SV-DKL) is described in the paper[1]. The model was built using Gpytorch[2]. An awesome Gaussian process library built using pytorch

As depicted in the figure above, the input features matrix is fed to a fully connected network with relu activation function and batch normalization that learns a 2 dimensional top level features corresponding to the number of classes, next we place a Gaussian process on each dimension of these features using spectral mixing kernels[2].This additive Gaussian processes layer is then followed by a linear mixing layer that is finally mapped to labels.

Finally, the weights of the deep network, spectral mixture kernels, and mixing layer are all learned jointly through the variational marginal likelihood of the SV-DKL model[1].

The resulting model can be viewed as a Gaussian process which uses an additive series of deep kernels with weight sharing.

Result

The pipeline is composed as a DAG using Azure ML pipeline[6]. The model is trained on Azure ML Compute[4] on a GPU based cluster and hyperparameters are tuned throught Azure ML hyperdrive[5].

The experiment was set to run for twenty run on a four nodes based GPU cluster. The overall execution last for a duration around ~39 minutes.

The best run achieve an AUC of 86% on evaluation set.

References

[1] Stochastic Variational Deep Kernel Learning https://arxiv.org/pdf/1611.00336.pdf

[2] Gpytroch

@inproceedings{gardner2018gpytorch,
  title={GPyTorch: Blackbox Matrix-Matrix Gaussian Process Inference with GPU Acceleration},
  author={Gardner, Jacob R and Pleiss, Geoff and Bindel, David and Weinberger, Kilian Q and Wilson, Andrew Gordon},
  booktitle={Advances in Neural Information Processing Systems},
  year={2018}
}

[3] Specture Mixture kernel https://arxiv.org/pdf/1302.4245.pdf

[4] Azure ML compute https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute

[5] Azure ML Hyperparameters tuning https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-tune-hyperparameters

[6] Azure ML pipeline https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines

azure-customer-churn's People

Contributors

hafizurcse avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.