В этом посте познакомим специалистов по изучению данных (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 и включить субтитры (можно задать перевод на русские субтитры в настройках видео).
Ниже — совсем краткий конспект по вебинару, раскрывающему книгу, и сорри за сухой текст:
Сьюзан МакГрегор выделяет два основных аспекта качества данных. Это целостность данных и пригодность данных, описываемых соответствующим набором параметров. Очень кратко это выглядит так:
Целостность данных:
Происхождение: Источник данных, кто их собрал и обработал.
Документирование: Наличие подробной и понятной документации о данных.
Своевременность: Актуальны ли вообще эти данные.
Полнота: Наличие или отсутствие пропусков в данных.
Объем: Достаточность объема данных для анализа.
Мультивариативность: Наличие нескольких параметров или измерений.
Атомарность: Гранулярность данных, наличие подробных измерений вместо сводной статистики.
Последовательность: Стабильность измерений во времени.
Ясность: Понятность данных и их структуры.
Структурированность: Взаимосвязь различных параметров данных.
Пригодность данных:
Валидность: Имеется ли соответствие данных исследуемому вопросу.
Надежность: Есть ли постоянство результатов при повторных измерениях.
Представительность: Отражают ли данные всю исследуемую тему.
Что касается понятия "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).
Успехов в обработке и анализе данных!