Властелин машин
@dt_analytic
Всё о передовых инструментах исследования и трюках продуктивности, чтобы стать крутым аналитиком и специалистом по машинному обучению на Python.
420 posts
обработка данных

Наглядный способ визуализации разницы в двух таблицах

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

Функциональный трансформер, как создавать и когда использовать

Функциональная трансформация поможет быстро создать преобразование колонок для пайплайна без сохранения состояния (создание других описывал здесь). Эта возможность реализована в классе FunctionTransformer из модуля sklearn.preprocessing. Например, это могут быть преобразования для создания цикличных признаков (из месяца, часа как здесь) или для извлечения слов из текста, его длины или других характеристик. Создадим демонстрационный набор из температур по месяцам и сделаем из месяца цикличный признак с помощью функционального трансформера:

Библиотека missingno для исследования пропусков

Рассмотрим возможности инструмента missingno для изучения пропусков в датафрейме. Сначала сгенерируем тренировочный датасет:

Простые способы maping-а значений с Pandas

Жизнь любого человека — зеркальное отражение его представлений о ней (Макс Фрай). Очень распространенной табличной операцией является отображение значений колонки по некоторому словарю. Рассмотрим основные способы и их специфику.

Анатомия пайплайнов, рассеиваем туман над сложной структурой данных

Оттого что мысли мои не облекаются в слова, чаще всего они остаются хлопьями тумана. Они принимают смутные, причудливые формы, набегают одна на другую, и я тотчас их забываю (Жан-Поль Сартр). Разберем ключевые свойства sklearn пайплайна (pipeline) и приемы их модификации. Сначала создадим демонстрационный датафрейм:

Передовой способ вычисления взаимосвязи с библиотекой  phik

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

Корреляция Спирмена, когда полезна и почему о ней надо знать

Осознанность — это восприятие всех деталей происходящего по отдельности и в целом. Когда ты переживаешь их, видишь, понимаешь суть и взаимосвязи (Ольга Нестерова). Самым распространенным способом определения зависимости между признаками является корреляция Пирсона, но она обладает рядом особенностей, в том числе не устойчива к выбросам. В демонстрационных целях рассмотрим корреляцию для двух датафреймов, в которых отличаются только последние строки (используем метод corr, в котором по умолчанию применяется способ Пирсона - method='pearson'):

Быстрый способ загрузки тренировочных данных для машинного обучения

Причина моего провала очевидна: я мало тренировался. И кроме того, я мало тренировался. И еще — я мало тренировался. Это если так, вкратце (Харуки Мураками). Во многих библиотеках машинного обучения есть встроенные способы загрузки наборов данных. В силу того, что scikit-learn является де-факто стандартом для разработки моделей, она обладает богатым инструментарием для этого. Он компактно сконцентрирован в модуле sklearn.datasets и для его первичного обзора проще всего воспользоваться функцией dir:

Скрытые ошибки выборки колонок по типам, которые сделают отладку кода мучительной

В большинстве случаев аналитики данных используют способ выборки колонок по типам через атрибут dtypes Pandas датафрейма. В то же время данный способ имеет подводные камни:

Как определить взаимосвязь между категориями

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