/spotlight

Interactively explore unstructured datasets from your dataframe.

Primary LanguageTypeScriptMIT LicenseMIT

Gray shape shifter

Renumics Spotlight

Interactively explore unstructured datasets from your dataframe.

Spotlight helps you to understand unstructured datasets fast. You can quickly create interactive visualizations and leverage data enrichments (e.g. embeddings, prediction, uncertainties) to identify critical clusters in your data.

Spotlight supports most unstructured data types including images, audio, text, videos, time-series and geometric data. You can start from your existing dataframe:

And start Spotlight with just a few lines of code:

from renumics import spotlight

spotlight.show(df, dtype={"image": spotlight.Image, "embedding": spotlight.Embedding})

🚀 Start with a use case

Machine learning and engineering teams use Spotlight to understand and communicate on complex unstructured data problems. Here are some examples on publicly available datasets along with code snippets (👨‍💻), interactive demos (🕹️) and blog articles (📝):

Modality Task Description Link
🖼️ Image [Classification] Find Issues in Any Image Classification Dataset 👨‍💻 📝 🕹️
Find data issues in the CIFAR-100 image dataset 🕹️
Fine-tuning image classification models from Bing image search 👨‍💻📝
🔊 Audio [Classification] Find Issues in Any Audio Classification Dataset 👨‍💻 📝🕹️
Debug pre-trained gender detection models on the emodb dataset 📝 🕹️
Compare gender detection models on the emodb dataset 📝 🕹️
📝 Text [Classification] Find Issues in Any Text Classification Dataset 👨‍💻 📝
📈🖼️ Mixed [EDA] Explore results from the Formula1 Montreal 2023 GP 🕹️
Explore a crash simulation dataset 🕹️

⏱️ Quickstart

Get started by installing Spotlight and loading your first dataset.

What you'll need

Install Spotlight via pip

pip install renumics-spotlight

We recommend installing Spotlight and everything you need to work on your data in a separate virtual environment.

Load a dataset and start exploring

import pandas as pd
from renumics import spotlight

df = pd.read_csv("https://renumics.com/data/mnist/mnist-tiny.csv")
spotlight.show(df, dtype={"image": spotlight.Image})

pd.read_csv loads a sample csv file as a pandas DataFrame.

spotlight.show opens up spotlight in the browser with the pandas dataframe ready for you to explore. The dtype argument specifies custom column types for the browser viewer.

Load a Hugging Face audio dataset with embeddings and a pre-defined layout

import datasets
from renumics import spotlight

ds = datasets.load_dataset('renumics/emodb-enriched', split='all')
layout= spotlight.layouts.debug_classification(label='gender', prediction='m1_gender_prediction', embedding='m1_embedding', features=['age', 'emotion'])
spotlight.show(ds, layout=layout)

Here, the data types are discovered automatically from the dataset and we use a pre-defined layout for model debugging. Custom layouts can be built programmatically or via the UI.

The datasets[audio] package can be installed via pip.

Usage Tracking

We have added crash report and performance collection. We do NOT collect user data other than an anonymized Machine Id obtained by py-machineid, and only log our own actions. We do NOT collect folder names, dataset names, or row data of any kind only aggregate performance statistics like total time of a table_load, crash data, etc. Collecting Spotlight crashes will help us improve stability. To opt out of the crash report collection define an environment variable called SPOTLIGHT_OPT_OUT and set it to true. e.G.export SPOTLIGHT_OPT_OUT=true

We are very happy to hear your feedback

Learn more about unstructured data workflows

Contribute

We are currently participating in the running Hacktoberfest 2023.

If you would like to contribute to Spotlight, the easiest way is to have a look at our Contribution Docs and the CONTRIBUTING.md.

We are also equally happy about non-code contributions -- whether it's reporting bugs, suggesting features, contributing design ideas, or offering feedback, every non-code contribution is highly valued and helps make our project better for everyone.