Знай свои данные — один из фундаментальных принципов надежной науки о данных. Другое название этого — профилирование данных. Я просто называю это первое свидание с вашими данными. Здесь мы расширяем профилирование данных, объясняя следующие четыре шага к получению информации о ваших данных: (1) предварительный просмотр и выбор данных; (2) очистка и подготовка данных; (3) выбор функций и проектирование; и (4) типизация данных для нормализации и преобразования.

Предварительный просмотр и выбор данных

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

Вызов простой команды SQL «SELECT UNIQUE *» может обнаружить удивительные результаты в реальных базах данных. Обобщение и агрегирование данных также могут быть информативными (например, путем выполнения агрегатной функции SQL «GROUP BY» в вашей базе данных). Например, с непрерывными числовыми данными или дискретными нечисловыми значениями данных график распределения данных (гистограмма) может быть весьма показательным: имеет ли гистограмма данных разумное распределение? У него длинный хвост? Является ли он симметричным?

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

Очистка и подготовка данных

После того, как вы выбрали атрибуты для своего проекта аналитики или машинного обучения, вы должны подготовить и очистить эти значения данных для использования. Авторы учебников часто сообщают нам, что 40–60% времени, затрачиваемого на проект по науке о данных, уходит на очистку и подготовку. Большинство из нас, кто занимается этим достаточно долго, знают, что такая оценка может быть очень ошибочной — на самом деле, 90–95% времени тратится на очистку и подготовку данных. Это не «потеря времени». Напротив, это «свидание с вашими данными» — это время, «хорошо вложенное» — вы будете больше доверять и защищать результаты своего аналитического проекта, работая с максимально чистыми данными.

Во время очистки и подготовки данных вы можете с удивлением обнаружить, что профилируете данные больше, чем на этапе предварительного просмотра данных. Например, вы обнаружите множество аспектов ваших данных, которые нужно будет каким-то образом обработать (очистить, удалить или исправить), в том числе: значения NULL, отсутствующие значения, ошибки, шум или неожиданные артефакты данных. Подготовка данных также включает нормализацию и преобразование данных, которые обсуждаются отдельно ниже, поскольку эти действия часто требуют знаний в предметной области и предметной области (например, преобразование атрибута в некоторые конкретные физические единицы или создание новой объясняющей переменной из соотношения двух конкретных атрибутов, или преобразование IP-адреса в географическое местоположение, например, в пару широта/долгота).

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

Выбор функций и проектирование функций

После выбора и последующей очистки атрибутов данных для использования пришло время выбрать подмножество атрибутов, которые будут использоваться для каждого вопроса, который вы будете задавать в отношении ваших данных (т. е. для проверки вашей гипотезы науки о данных). Разные вопросы требуют разных атрибутов, чтобы получить наиболее точный ответ. На этом этапе профилирования данных вы выбираете входные данные (атрибуты вектора признаков), которые будут использоваться в ваших задачах по науке о данных (например, прогнозная аналитика, сегментация, рекомендации или анализ ссылок). Выбор наиболее информативных и прогностических атрибутов имеет решающее значение для эффективности и успеха каждой конкретной задачи по науке о данных. Вектор признаков может содержать очень небольшое подмножество общего набора атрибутов данных — такие экономные модели часто предпочтительны (т. е. если вы не можете объяснить поведение ваших клиентов с помощью простых, прозрачных, объяснимых моделей, то кто поверит очень сложным модель?).

Некоторые модели обязательно намного сложнее, например алгоритм рекомендаций, который выиграл Конкурс Netflix на 1 миллион долларов — в таких случаях выбор функций еще более важен (чтобы избежать чрезмерно раздутых моделей). Тем не менее, важно выбирать разные комбинации объясняющих переменных для разных вопросов аналитики (например, это определяющая характеристика алгоритма случайных лесов).

Поиск оптимальных комбинаций атрибутов данных является примером Инженерии признаков. Я описал это так в недавней статье на Medium: Задача специалистов по данным состоит в том, чтобы найти наилучшее пространство признаков для различения, распутывания и устранения неоднозначности различных классов поведения. Иногда (хотя и не часто) эти лучшие признаки — это те, которые мы измеряли в начале, но обычно мы можем обнаружить улучшенные признаки классификации, исследуя различные комбинации (линейные и нелинейные) исходных измеренных признаков. Затем улучшенные инженерные функции представляют собой фазовое пространство, в котором ранее невидимый элемент данных получит более точную классификацию просто на основе местоположения этого элемента в улучшенном пространстве функций.

Тип данных для нормализации и преобразования

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

Точно так же часто очень удобно и научно обоснованно использовать нормализованные значения, например: масштабировать все числовые значения от минимального до максимального до масштаба от 0 до 1 или от 0 до 100; или масштабировать значения до нулевого среднего и единичной дисперсии (нормализация Z-показателя); или конвертировать дискретные категориальные данные в числовые значения или ранжированные списки (что особенно хорошо работает с порядковыми [упорядоченными] значениями данных); или дискретизировать непрерывные данные в ячейки. В случае масштабирования множество различных атрибутов последовательно взвешиваются в модели демократическим образом, вместо того чтобы придавать несправедливый вес атрибутам, которые естественным образом имеют большие числовые значения. Это особенно важно при расчете метрики расстояния (или подобия), где один атрибут может доминировать и несправедливо искажать расчет метрики.

Наконец, типизация данных важна при использовании алгоритмов, которые предполагают ввод данных определенного типа, например: непрерывные числовые данные для регрессионных моделей; дискретные значения данных для байесовского анализа, анализа графиков, ассоциаций или ссылок; бинарные данные для логистической регрессии; или последовательные данные для марковских моделей.

Заключение

Глубокое знание ваших данных дает точные и эффективные модели науки о данных. В конечном счете, профилирование данных — это лучший путь к «знанию своих данных» для ваших проектов аналитики и машинного обучения.

Подпишитесь на меня в Твиттере на @KirkDBorne

Узнайте больше о моем внештатном консалтинговом/обучающем бизнесе: ООО Дата Лидершип Групп

Посмотрите, что мы делаем в ИИ-стартапе DataPrime.ai