Model Interpretability

How Explainable Boosting Machines reap both of them

Photo by Alternate Skate on Unsplash. All other Figures by the author.

Since ever, one had to choose between efficient models and explainable models. On one side, simple models like logistic regression are interpretable but lag on performances. On the other side complex models like Boosted Trees or Neural Network reach incredible accuracy but are hardly understandable.

Since 2012, researchers from Microsoft studied and implemented an algorithm that breaks the rules: Explainable Boosting Machines (EBM). EBM is the only algorithm that gets free of this performances vs explainability ratio curve.

How to master the three Musketeers of ReactiveX

Photo by Sid Balachandran on Unsplash

Every technology, paradigm, or framework relies on some foundations. ReactiveX is no exception. Whether you are a beginner or fluent in it, you will rely on three base operators: Map, Filter, and Scan. These are the three Musketeers of ReactiveX. Independently, they are the basic blocs to create full applications. Combined together, they let you implement almost any transformation you may need.

If you are new to ReactiveX, I suggest that you first read my introduction article before continuing.


Let’s start with the most basic operation and the one that is probably…

Kafka + ReactiveX = Maki Nage

Photo by Mike Lewis HeadSmart Media on Unsplash

More and more data science use cases are done in real-time: Alerting, defect detection, prediction, automated recovery are some examples. Yet implementing and deploying them can be very challenging. Maki Nage is a Python framework that aims at simplifying the development and deployment of real-time processing applications. This article introduces how to use it, showing that stream processing should be simplified!

Addressing The Inference Gap

Before we get our hands on some examples, let me briefly explain why we created Maki Nage. In my DataLab, we often work on real-time streaming services. In practice, the algorithms and machine learning models that we build are…

Photo by Naneen Photography Services on Cap D’antibes Carpentry

Why are you using an asynchronous IO framework on a reactive application? This is a question I am often asked when presenting a design I use a lot in RxPy based applications. This a very interesting question because the answer is not obvious: Asynchronous and Reactive programming are both event-driven programming tools. So at first, they look more like competitors than allies.

This article clarifies what each technology is exactly, and shows why they shine when being combined. I make some focus on Python AsyncIO and RxPY, but most of the following explanations apply to any programming language and framework.

Asynchronous IO Programming

Photo by Louise Eckerström on Unsplash

ReactiveX is a wonderful framework that allows to write event based code in a very elegant and readable way. Still, getting started in it can be challenging, and intimidating. In practice once you understand few key principles of ReactiveX, you can start writing reactive code easily.

The aim of this article is to explain these keys principles, and show how they apply though a simple example. By the way, the first half of this article is language agnostic. So feel free to read it even if you use another programming languages than Python.

Before reading on, be aware of one…

Photo by Crystal Kwok on Unsplash

Reactive Programming is really great to write event driven applications, data driven applications, and asynchronous applications. However, it can be difficult to find a good way to structure the code. Fortunately for JavaScript developers, there is CycleJs. So I developed a similar framework for Python and RxPY: Cyclotron.

edit 2020/10: Updated examples to RxPY v3, and cyclotron drivers list.

Cyclotron is a functional and reactive framework. It allows structuring reactive code in a functional way. More specifically, functional means the following:

  • Pure code and side effects are clearly separated
  • All the code is implemented via functions (no class)

Moreover, it…

Romain Picard

Data Scientist, former software architect, author, core developer of RxPY.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store