Skip to content

Interactively create machine learning datasets using facets visualization tool and active learning or semi-supervised learning. Visualizations for machine learning datasets

License

Notifications You must be signed in to change notification settings

jsiddique/facets_labeling

 
 

Repository files navigation

Link to Colab Notebook

Click this link for a demo of FacetsLabeling tool in colab. The demo colab notebook works out of the box without any setup. It contains all the instructions needed to setup the tool in colab.

alt text

Introduction

One of the biggest obsticale to supervised learning is lack of training data. Using our tool you can interactively create your own training data in short amount of time. Our tool uses facets visualization tool for data exploration and captures user's interaction with the data. Overtime, you build a training dataset and a model by clicking the data. As the model matures, its prediction improves and the task of finding better examples becomes easier with each iteration.

Dive visualization of UCI census data

Introduction to Facets

The facets project contains two visualizations for understanding and analyzing machine learning datasets: Facets Overview and Facets Dive.

The visualizations are implemented as Polymer web components, backed by Typescript code and can be easily embedded into Jupyter notebooks or webpages.

Live demos of the visualizations can be found on the Facets project description page.

Facets Overview

Overview visualization of UCI census data

Overview gives a high-level view of one or more data sets. It produces a visual feature-by-feature statistical analysis, and can also be used to compare statistics across two or more data sets. The tool can process both numeric and string features, including multiple instances of a number or string per feature.

Overview can help uncover issues with datasets, including the following:

  • Unexpected feature valuess
  • Missing feature values for a large number of examples
  • Training/serving skew
  • Training/test/validation set skew

Key aspects of the visualization are outlier detection and distribution comparison across multiple datasets. Interesting values (such as a high proportion of missing data, or very different distributions of a feature across multiple datasets) are highlighted in red. Features can be sorted by values of interest such as the number of missing values or the skew between the different datasets.

Details about Overview usage can be found in its README.

Facets Dive

Dive visualization of UCI census data

Dive is a tool for interactively exploring up to tens of thousands of multidimensional data points, allowing users to seamlessly switch between a high-level overview and low-level details. Each example is a represented as single item in the visualization and the points can be positioned by faceting/bucketing in multiple dimensions by their feature values. Combining smooth animation and zooming with faceting and filtering, Dive makes it easy to spot patterns and outliers in complex data sets.

Details about Dive usage can be found in its README.

Setup

Installation

git clone https://github.com/jsiddique/facets.git
cd facets

Enabling Usage in Jupyter Notebooks

Pre-built versions of the jupyter extension visualization code can be found in the facets-dist directory.

To enable use of these visualizations in Jupyter notebooks:

  1. Install the jupyter notebook software: http://jupyter.org/install.html
  2. Install the visualizations into Jupyter as an nbextension.
  • If jupyter was installed with pip, you can use jupyter nbextension install facets-dist/ if jupyter was installed system-wide or jupyter nbextension install facets-dist/ --user if installed per-user (run from the facets top-level directory). You do not need to run any follow-up jupyter nbextension enable command for this extension.
  • Alternatively, you can manually install the nbextension by finding your jupyter installation's share/jupyter/nbextensions folder and copying the facets-dist directory into it.
  1. To enable the Overview visualization, you must also have the Protocol Buffers python runtime library installed: https://github.com/google/protobuf/tree/master/python. If you used pip or anaconda to install Jupyter, you can use the same tool to install the runtime library.

Note: When visualizing a large amount of data, as is done in the Dive demo Jupyter notebook, you will need to start the notebook server with an increased IOPub data rate. This can be done with the command jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000.

Building the Visualizations

If you make code changes to the visualization and would like to rebuild them for use in Jupyter notebooks, follow these directions:

  1. Install bazel: https://bazel.build/
  2. Build the visualizations: bazel build facets:facets_jupyter (run from the facets top-level directory)
  3. Move the resulting vulcanized html file into the facets-dist directory.
  4. Reinstall the facets-dist jupyter extension as in the previous section.

Known Issues

  • The Facets visualizations currently work only in Chrome - Issue 9.

Disclaimer: This is not an official Google product

About

Interactively create machine learning datasets using facets visualization tool and active learning or semi-supervised learning. Visualizations for machine learning datasets

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 60.2%
  • Jupyter Notebook 35.3%
  • TypeScript 3.6%
  • Other 0.9%