Визуализируйте свои данные с помощью Facets

Данные беспорядочные. Он часто несбалансирован, имеет неправильную маркировку и усыпан дурацкими значениями, чтобы помешать анализу и обучению машинному обучению.

Первый шаг к очистке набора данных - понять, где его нужно очистить. Сегодня у меня есть как раз инструмент для работы.

Визуализируйте свои данные

Понимание ваших данных - это первый шаг к очистке набора данных для машинного обучения. Но это может быть сложно сделать, особенно в любой обобщенной манере.

Проект с открытым исходным кодом от Google Research под названием Facets может помочь нам визуализировать наши данные и разрезать их всевозможными способами, что может помочь нам начать видеть, как устроен наш набор данных.

Позволяя нам обнаружить, где наши данные выглядят не так, как мы ожидали, Facets помогает уменьшить количество неудач в будущем.

Посмотрим, как выглядят Facets. У команды есть демонстрационная страница в сети, так что вы можете опробовать Facets из Chrome, ничего не устанавливая. Более того, визуализации Facets используют полимерные веб-компоненты, поддерживаемые кодом Typescript, поэтому их можно легко встраивать в записные книжки и веб-страницы Jupyter.

Facets состоит из двух частей: Facets Overview и Facets Dive. Давайте рассмотрим каждый из них более подробно.

Обзор фасетов

Обзор фасетов дает, в общем, обзор вашего набора данных. В предыдущих эпизодах мы видели, как такие инструменты, как панды, могут помочь нам понять, как распределяется наш набор данных. Мы можем получить немного улучшенное представление этого типа информации, используя инструмент Facets Overview.

Он разбивает столбцы наших данных на строки важной информации, отображая такую ​​информацию, как пропущенный процент, минимальные и максимальные значения, а также статистику, такую ​​как среднее значение, медиана и стандартное отклонение. В нем также есть столбец, который показывает процент значений, которые являются нулями, что полностью помогает отловить случаи, когда большинство ваших значений являются нулями.

Вы также можете увидеть распределение данных в обучающем и тестовом наборах для каждой функции вашего набора данных. Это отличный способ еще раз проверить, что набор тестов имеет такое же распределение, что и набор обучающих данных.

И что?

Да, действительно, технически лучше всего проводить хотя бы этот уровень анализа самостоятельно, но я определенно забыл проверить все из этих аспектов каждого столбец моих данных. Этот инструмент поможет вам не пропустить этот важный шаг и выявит любые отклонения от нормы.

Facets Dive

Теперь посмотрим на Facets Dive. Здесь все становится по-настоящему интересным. Это позволяет сделать ваш набор данных еще более ясным и даже полностью увеличить масштаб, чтобы увидеть отдельные фрагменты данных!

Вы можете «разбить» данные по строкам и столбцам по любой из функций вашего набора данных. Это будет похоже на то, когда вы покупаете в Интернете, например, обувь, и фильтруете по различным категориям, таким как размер, бренд и цвет. Давайте посмотрим на пример Deep Dive в действии, чтобы сделать его более конкретным.

Интерфейс разделен на 4 основных раздела. Основная область в центре - это масштабируемое отображение ваших данных. На левой панели вы можете изменить расположение данных с помощью различных раскрывающихся вариантов, чтобы управлять фасетированием, позиционированием и цветом. Прямо под ним находится легенда центрального дисплея. Справа находится подробный вид определенной строки данных. Вы можете щелкнуть любую строку данных в центральной визуализации, чтобы просмотреть подробные сведения об этой конкретной точке данных.

А теперь давайте посмотрим, как все это сочетается.

Для этого мы воспользуемся «набором данных переписи», классическим набором данных, извлеченным из переписи населения США 1994 года Барри Беккером. Его цель - предсказать, будет ли годовой доход домохозяйства выше или ниже 50 тысяч долларов на основе различных статистических данных переписи.

Фасет за строкой

Сначала мы разделим данные по возрастному диапазону и раскрасим точки данных в соответствии с целевым значением. Здесь синий означает менее 50К, а красный означает более 50К.

Фасет по столбцу

Теперь мы можем взглянуть на разбивку по возрасту еще одной характеристики данных. Разное количество часов в неделю дает разные результаты в зависимости от возраста? Давайте узнаем, разбив столбцы по часам в неделю.

Мы видим, что большая часть населения в возрасте 17–26 лет работает 15–29 часов в неделю, что может быть результатом того, что дети работают летом. Мы также можем видеть тенденцию все меньше и меньше людей, работающих по 29–43 часа по мере взросления, в то время как сегмент 43–57 часов остается относительно постоянным в средние годы диаграммы.

Позиционирование

Но это все еще не совсем показывает нам, что мы ищем. Попробуем изменить расположение сюжета и рассмотреть его подробнее. Мы переключим Позиционирование на «Разброс» и разберем только по возрасту. Я также собираюсь выбрать «Часы в неделю» в качестве вертикального порядка сортировки, чтобы упростить просмотр рабочих часов в разных возрастных группах. Теперь мы можем видеть, как количество часов в неделю растет в середине графика и уменьшается по обе стороны.

Вам следует продолжить изучение данных и посмотреть, какие тенденции и взаимосвязи вы сможете найти. Например, вы можете выполнить фасетирование по стране происхождения, что покажет, что данные сильно искажены. Это может сказать вам, что вы можете собрать больше точек данных, чтобы получить более сбалансированный набор данных.

Загрузите свои данные

Если это было интересно, вы, вероятно, задаетесь вопросом, как загрузить свой набор данных в фасеты. Здесь у вас есть 2 варианта.

Вы можете использовать веб-интерфейс и загружать данные напрямую и играть с ними в браузере, или вы можете установить библиотеку как расширение для блокнотов Jupyter, следуя инструкциям на странице проекта GitHub.

Фасеты - это полезный инструмент, позволяющий заглядывать в ваш набор данных и видеть взаимосвязи между различными объектами, а также следить за тем, чтобы в вашем наборе данных не было пропущенных или неожиданных значений.

Спасибо, что прочитали этот выпуск Cloud AI Adventures. Если вам нравится этот сериал, дайте мне знать, хлопнув по статье. Если вы хотите больше машинного обучения, обязательно подпишитесь на я на Medium или подпишитесь на канал YouTube, чтобы отслеживать будущие выпуски по мере их выхода. Скоро к вам будут добавлены новые серии!