В этом посте познакомим специалистов по изучению данных (Data Scientists) с довольно интересной книгой Сьюзан МакГрегор, дающей пошаговые рекомендации по извлечению зависимостей (автор называет их insights) из неочищенных наборов данных с помощью конструкций на языке Python. «Эта книга заполняет пробел в литературе по обработке данных на Python. Она предлагает весьма необходимое практическое руководство по очистке, преобразованию и подготовке к анализу наборов сырых данных.» — рецензия на Amazon.

Об авторе

Сьюзан МакГрегор — научный сотрудник и ведущий специалист по обработке данных в Data Science Institute при Колумбийском университете. Книга «Practical Python Data Wrangling and Data Quality» синтезирует ее многолетний опыт и предоставляет читателям практические упражнения, доступные на GitHub.

В одном из своих интервью она отметила: «Я использую данные для получения инсайтов более 15 лет и работаю с Python более 10 лет. До работы в Колумбии я была профессиональным программистом и тем, кого сейчас называют „дата‑сайентист“. Сьюзан подчеркнула важность качества данных, добавив: „У компаний большие объемы данных низкого качества, и важно оценивать их пригодность, чтобы получать правильные результаты.“

Чтобы купить книгу «Обработка данных на Python. Data Wrangling и Data Quality» и любую другую компьютерную литературу со скидкой 25% на сайте издательства БХВ, введите промокод SSPSOFT как подарок от нашего блога для читателей Хабра. Пока доступна бумажная версия книги, электронную можно будет приобрести ближе к осени 2024, чтобы пираты сразу не растащили файл на свои ресурсы.

Кому будет полезна эта книга

Можно сразу сказать, что книга нацелена на аудиторию дата‑сайентистов уровня джун и джун+, хотя и мидлам это издание наверняка пригодится как полезный справочник с системным подходом. Кроме джунов, книга определенно «зайдет» для студентов и слушателей ИТ-курсов, и также будет полезна специалистам из других направлений в ИТ, желающих погрузиться в тематику анализа данных.

В меньшей степени книга будет интересна для дата-сайентистов со стажем или опытных программистов на Python.

С оглавлением русского издания книги можно ознакомиться в этом файле https://bhv.ru/pdfview/?to=view_2902_978-5-9775-1846-8.pdf, а англоязычное оглавление и разная полезная англоязычная информация доступна на сайте O’REILLY.

Далее, по традиции наших рецензий на книги по ИТ, пройдемся по плюсам и минусам.

Плюсы книги:

1.      Широта взглядов на задачу: охвачены различные источники данных, включая API, веб-данные XML и структурированные файлы.

2.      Подсказки по настройке программной среды: автор выделяет почти две главы для того, чтобы помочь читателю поставить среду на Python и немного попрактиковаться в ней.

3.      Есть практические примеры: автор предлагает выполнить упражнения как в формате блокнота и в формате отдельного сценария. Раздел в репозитории GitHub содержит учебные файлы кода и данных.

4.      Дополнительные инструменты: помимо Python, в книге рекомендуются другие полезные инструменты, такие как текстовые редакторы и программы для работы с электронными таблицами.

Минус, который очень бросается в глаза:

  • Попытка рассказать о Python «с нуля»: автор зачем-то начинает с самых азов Python, включая упражнение с выводом сообщения Hello World. Эта часть материала выглядит не вполне уместной, т.к. читатель ожидает побольше узнать про работу с данными, а не про элементарные конструкции языка.

Дополнительный материал по книге и его конспект

На YouTube есть подробный вебинар автора, где она на основе своей книги рассказывает про ключевые аспекты качества данных и про такое понятие как Data Fitness. За 1 час, посмотрев видео, можно таким образом освоить материал двух глав книги, причем даже более подробно.

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

Ниже — совсем краткий конспект по вебинару, раскрывающему книгу, и сорри за сухой текст:

Сьюзан МакГрегор выделяет два основных аспекта качества данных. Это целостность данных и пригодность данных, описываемых соответствующим набором параметров. Очень кратко это выглядит так:

Целостность данных:

  1. Происхождение: Источник данных, кто их собрал и обработал.

  2. Документирование: Наличие подробной и понятной документации о данных.

  3. Своевременность: Актуальны ли вообще эти данные.

  4. Полнота: Наличие или отсутствие пропусков в данных.

  5. Объем: Достаточность объема данных для анализа.

  6. Мультивариативность: Наличие нескольких параметров или измерений.

  7. Атомарность: Гранулярность данных, наличие подробных измерений вместо сводной статистики.

  8. Последовательность: Стабильность измерений во времени.

  9. Ясность: Понятность данных и их структуры.

  10. Структурированность: Взаимосвязь различных параметров данных.

Пригодность данных:

  1. Валидность: Имеется ли соответствие данных исследуемому вопросу.

  2. Надежность: Есть ли постоянство результатов при повторных измерениях.

  3. Представительность: Отражают ли данные всю исследуемую тему.

Что касается понятия "Data Fitness" (пригодность данных), с его помощью автор предлагает оценивать, насколько данные в принципе подходят для конкретных аналитических задач и моделирования (прогнозирования).

1. Валидность (Validity):

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

2. Надежность (Reliability):

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

3. Представительность (Representativeness):

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

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

Заключение

К достоинству книги можно отнести ее практическую направленность. Автор погружает читателя в работу с реальными наборами данных, демонстрируя, как справляться с типичными проблемами, возникающими при обработке "грязных" данных (также называемых неочищенными данными). Она подробно объясняет процесс очистки, преобразования и подготовки данных для дальнейшего анализа с помощью популярных библиотек Python, таких как Pandas, NumPy и scikit-learn (эти библиотеки являются ключевыми инструментами для анализа данных и машинного обучения).

«Я был впечатлен глубиной, с которой Макгрегор освещает каждую тему. Она предлагает множество советов и лучших практик, основанных на своем богатом опыте.» — Питер Бенуа, Towards Data Science

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

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

Добавим каплю рекламы от нашего блога: компания SSP SOFT приглашает на позиции инженеров QA и DevOps, системного аналитика, аналитика данных, разработчиков на Java, JS, React и Python, 1С — см. страницу на hh.ru. Если вашей специальности нет в текущих вакансиях, все равно присылайте резюме, т.к. новые позиции в командах открываются еженедельно (пишите в Telegram или на почту job@ssp-soft.com).

Успехов в обработке и анализе данных!

 

Комментарии (0)