WTTE-RNN a framework for churn and time to event prediction

Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|

Tensorflow | 172,420 | 327 | 77 | 7 hours ago | 46 | October 23, 2019 | 2,287 | apache-2.0 | C++ | |

An Open Source Machine Learning Framework for Everyone | ||||||||||

Keras | 57,707 | 330 | 6 hours ago | 68 | May 13, 2022 | 371 | apache-2.0 | Python | ||

Deep Learning for humans | ||||||||||

Handson Ml | 24,969 | 2 months ago | 136 | apache-2.0 | Jupyter Notebook | |||||

⛔️ DEPRECATED – See https://github.com/ageron/handson-ml3 instead. | ||||||||||

Data Science Ipython Notebooks | 23,924 | 5 months ago | 26 | other | Python | |||||

Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines. | ||||||||||

Netron | 21,728 | 4 | 63 | 20 hours ago | 489 | July 04, 2022 | 22 | mit | JavaScript | |

Visualizer for neural network, deep learning, and machine learning models | ||||||||||

Deepspeech | 21,130 | 29 | 11 | 5 months ago | 100 | December 19, 2020 | 120 | mpl-2.0 | C++ | |

DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers. | ||||||||||

Tfjs | 17,172 | 660 | 508 | a day ago | 126 | August 23, 2022 | 680 | apache-2.0 | TypeScript | |

A WebGL accelerated JavaScript library for training and deploying ML models. | ||||||||||

Ncnn | 16,726 | a day ago | 19 | July 01, 2022 | 959 | other | C++ | |||

ncnn is a high-performance neural network inference framework optimized for the mobile platform | ||||||||||

Onnx | 14,323 | 148 | 245 | 6 hours ago | 26 | June 18, 2022 | 368 | apache-2.0 | Python | |

Open standard for machine learning interoperability | ||||||||||

Nni | 12,641 | 8 | 22 | 11 hours ago | 51 | June 22, 2022 | 279 | mit | Python | |

An open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning. |

Alternatives To Wtte RnnSelect To Compare

Alternative Project Comparisons

Readme

Weibull Time To Event Recurrent Neural Network

A less hacky machine-learning framework for churn- and time to event prediction. Forecasting problems as diverse as server monitoring to earthquake- and churn-prediction can be posed as the problem of predicting the time to an event. WTTE-RNN is an algorithm and a philosophy about how this should be done.

- blog post
- master thesis
- Quick visual intro to the model
- Jupyter notebooks: basics, more
- Gianmario Spacagna's implementation for Time-To-Failure.
- Korean README

Check out README for Python package.

If this seems like overkill, the basic implementation can be found inlined as a jupyter notebook

You have data consisting of many time-series of events and want to use historic data
to predict the time to the next event (TTE). If you haven't observed the last event
yet we've only observed a minimum bound of the TTE to train on. This results in
what's called *censored data* (in red):

Instead of predicting the TTE itself the trick is to let your machine learning model
output the *parameters of a distribution*. This could be anything but we like the
*Weibull distribution* because it's
awesome.
The machine learning algorithm could be anything gradient-based but we like RNNs
because they are awesome
too.

The next step is to train the algo of choice with a special log-loss that can work
with censored data. The intuition behind it is that we want to assign high
probability at the *next* event or low probability where there *wasn't* any events
(for censored data):

What we get is a pretty neat prediction about the *distribution of the TTE* in each
step (here for a single event):

A neat sideresult is that the predicted params is a 2-d embedding that can be used to
visualize and group predictions about *how soon* (alpha) and *how sure* (beta). Here
by stacking timelines of predicted alpha (left) and beta (right):

There's alot of mathematical theory basically justifying us to use this nice loss function in certain situations:

So for censored data it only rewards *pushing the distribution up*, beyond the point
of censoring. To get this to work you need the censoring mechanism to be independent
from your feature data. If your features contains information about the point of
censoring your algorithm will learn to cheat by predicting far away based on
probability of censoring instead of tte. A type of overfitting/artifact learning.
Global features can have this effect if not properly treated.

The project is under development. The goal is to create a forkable and easily deployable model framework. WTTE is the algorithm but the whole project aims to be more. It's a visual philosophy and an opinionated idea about how churn-monitoring and reporting can be made beautiful and easy.

Pull-requests, recommendations, comments and contributions very welcome.

- Transformations
- Data pipeline transformations (
`pandas.DataFrame`

of expected format to numpy) - Time to event and censoring indicator calculations

- Data pipeline transformations (
- Weibull functions (cdf, pdf, quantile, mean etc)
- Objective functions:
- Tensorflow
- Keras (Tensorflow + Theano)

- Keras helpers
- Weibull output layers
- Loss functions
- Callbacks

- ~~ Lots of example-implementations ~~
- Basic notebook will be kept here but to save space and encourage viz check out the examples-repo or fork your notebooks there

- MIT license

```
@MastersThesis{martinsson:Thesis:2016,
author = {Egil Martinsson},
title = {{WTTE-RNN : Weibull Time To Event Recurrent Neural Network}},
school = {Chalmers University Of Technology},
year = {2016},
}
```

Contributions/PR/Comments etc are very welcome! Post an issue if you have any questions and feel free to reach out to egil.martinsson[at]gmail.com.

- Egil Martinsson
- Dayne Batten (made the first keras-implementation)
- Clay Kim
- Jannik Hoffjann
- Daniel Klevebring
- Jeongkyu Shin
- Joongi Kim
- Jonghyun Park

Popular Tensorflow Projects

Popular Neural Network Projects

Popular Machine Learning Categories

Related Searches

Get A Weekly Email With Trending Projects For These Categories

No Spam. Unsubscribe easily at any time.

Python

Tensorflow

Neural Network

Keras

Rnn

Probability

Machine Learning Algorithms