10 Lesser-Known Python Libraries for Machine Learning
By: Rebecca Vickery
Tags: Technology, Artificial Intelligence, Machine Learning, Data Science, Programming

1. Pandas-ml

This library integrates the pandas, Scikit-learn, XGBoost and Matplotlib functionality together to simplify data preparation and model scoring.

In terms of data handling, pandas-ml uses a data format called ModelFrame which contains metadata including information about the features and target so that statistics and model functions can be more easily applied.

As ModelFrame inherits all the features of the pandas.DataFrame all pandas methods can be directly applied to your machine learning data.

2. Category encoders

The category encoders library simplifies the handling of categorical variables in machine learning. It can be used alone to transform variables but is also integrated with Scikit-learn and can be used within Sckit-learn pipelines.

Although Scikit-learn has some functions to convert categorical features to numeric such as one-hot encoding and ordinal encoders, category encoders provide a much wider range of methods for handling these data types. In particular, it includes a number of methods for handling high cardinality features (features with a large number of unique values), such as the weight of evidence transformer.

3. Yellowbrick

Yellowbrick is a visualisation library specifically designed for Scikit-learn developed machine learning models. This library provides a wide range of simple to use visualisations that aid various aspects of the machine learning process including model selection, feature extraction and model evaluation and interpretation.

4. Shap

The Shap library uses a technique based on game theory to provide explanations for the output of any machine learning model. It can provide interpretability for models developed using most popular python machine learning libraries including Scikit-learn, XGBoost, Pyspark, Tensorflow and Keras.

5. Feature-engine

Feature engine is an open-source python library designed to make a wide range of feature engineering techniques easily available. Feature engineering generally covers the following steps:

Imputing missing values

Outlier removal

Encoding categorical variables

Discretization and normalisation

Engineering new features

The feature-engine library contains functions and methods to carry out most of these tasks. The code follows the Scikit-learn functionality with fit() and transform() methods and can be used within Scikit-learn pipelines.

6. Feature tools

Feature tools is a Python framework for automated feature engineering. This library takes either a single data set or a set of relational data sets and runs Deep Feature Synthesis (DFS) to create a matrix of both existing and newly generated features. This tool can save considerable time during the feature engineering process.

7. Dabl

The Dabl package aims to automate some of the common repetitive machine learning tasks such as data cleaning and basic analysis. Dabl uses a “best guess” philosophy to apply data cleaning processes but allows the user to inspect and amend the processes if necessary.

I previously wrote a more comprehensive guide to Dabl in this post last year.

8. Suprise

This library is designed for simple implementation of explicit recommendation engines in Python. It has an interface which is very similar to scikit-learn so is very intuitive if you are already a user of that library. It has a wide range of built-in algorithms you can evaluate your data on but you can also build your own. There are also tools for cross-validation and hyperparameter optimisation.

9. Pycaret

Pycaret is designed to be an extremely low code machine learning library for Python. It is aimed at both data scientists who want to build models more quickly and also non-data scientists who are interested in building simple models.

The library contains low code examples for the entire machine learning process including preprocessing, model training, evaluation and tuning. All of the common estimator types are included such as logistic regression, decision trees, gradient boosting classifier and cat boost. This library also contains a very simple deployment solution that will deploy the final model on an AWS S3 bucket. The model can always be saved as a pickle file for alternative deployment solutions.

10. Prophet

Prophet is a python library designed to greatly simplify time series forecasting open-sourced by Facebook. This library uses a similar interface to Scikit-learn and enormously simplifies the process of time series forecasting. There are some useful plotting functionalities included to visualise and evaluate the models. It is also very easy to model in seasonality and holiday effects including your own custom date periods.