Visualizations for machine learning datasets
The facets project contains two visualizations for understanding and analyzing machine learning datasets: Facets Overview and Facets Dive.
Live demos of the visualizations can be found on the Facets project description page.
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:
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.
The python code to generate the statistics for visualization can be installed through
pip install facets-overview.
Details about Overview usage can be found in its README.
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.
Both Facets visualizations make use of HTML imports. So in order to use them, you must first load the appropriate polyfill, through, as shown in the demo notebooks in this repo.
Note that for using Facets Overview in a Jupyter notebook, there are two considerations: 1. In the notebook, you will need to change the path that the Facets Overview python code is loaded from to the correct path given where your notebook kernel is run from. 2. 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.
When visualizing a large amount of data in Dive in a Juypter notebook, 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.
git clone https://github.com/PAIR-code/facets cd facets
If you make code changes to the visualization and would like to rebuild them, follow these directions:
bazel build facets:facets_jupyter(run from the facets top-level directory)
If you want to use the visualizations you built locally in a Jupyter notebook, follow these directions:
cp -f bazel-bin/facets/facets-jupyter.html facets-dist/
jupyter nbextension install facets-dist/if jupyter was installed system-wide or
jupyter nbextension install facets-dist/ --userif installed per-user (run from the facets top-level directory). You do not need to run any follow-up
jupyter nbextension enablecommand for this extension.
share/jupyter/nbextensionsfolder and copying the facets-dist directory into it.
/nbextensions/facets-dist/facets-jupyter.html, which is the locally installed facets distribution. from the previous step.
Disclaimer: This is not an official Google product