Image

Руководство по Kedro: ваш готовый к внедрению инструментарий для анализа данных.

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

Руководство по Kedro: ваш готовый к внедрению инструментарий для анализа данных.
Изображение предоставлено редактором.

# Введение

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

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

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

# Начало работы с Kedro

Первый шаг для использования Kedro, конечно же, — это его установка в среду выполнения, в идеале — IDE; Kedro не может быть в полной мере использован в средах блокнотов. Откройте свою любимую IDE для Python, например, VS Code, и введите в терминале:

pip install kedro

Далее мы создаём новый проект Kedro, используя следующую команду:

кедро новый

Если команда сработает, вам будет задано несколько вопросов, в том числе о названии вашего проекта. Мы назовем его Churn Predictor. Если команда не сработает, это может быть связано с конфликтом, вызванным установкой нескольких версий Python. В этом случае наиболее чистым решением будет работа в виртуальной среде внутри вашей IDE. Вот несколько быстрых команд для создания виртуальной среды (игнорируйте их, если предыдущая команда для создания проекта Kedro уже сработала!):

python3.11 -m venv venv source venv/bin/activate pip install kedro kedro —version

Затем выберите в своей IDE следующий интерпретатор Python для дальнейшей работы: ./venv/bin/python.

На этом этапе, если всё прошло успешно, слева (в панели «ПРОВОДНИК» в VS Code) должна отображаться полная структура проекта внутри churn-predictor. В терминале перейдём в основную папку нашего проекта:

cd churn-predictor/

Пришло время познакомиться с основными функциями Kedro с помощью нашего нового проекта.

# Изучение основных элементов Кедро

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

В структуре проекта уже создан пустой файл, который будет служить каталогом данных. Нам просто нужно найти его и заполнить содержимым. В обозревателе IDE, внутри проекта churn-predictor, перейдите в файл conf/base/catalog.yml, откройте его и добавьте следующее:

raw_customers: тип: pandas.CSVDataset путь к файлу: data/01_raw/customers.csv processed_features: тип: pandas.ParquetDataset путь к файлу: data/02_intermediate/features.parquet train_data: тип: pandas.ParquetDataset путь к файлу: data/02_intermediate/train.parquet test_data: тип: pandas.ParquetDataset путь к файлу: data/02_intermediate/test.parquet trained_model: тип: pickle.PickleDataset путь к файлу: data/06_models/churn_model.pkl

Вкратце, мы только что определили (пока не создали) пять наборов данных, каждый из которых имеет доступный ключ или имя: raw_customers, processed_features и так далее. Основной конвейер обработки данных, который мы создадим позже, должен иметь возможность ссылаться на эти наборы данных по их имени, тем самым абстрагируя и полностью изолируя операции ввода/вывода от кода.

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

Далее переходим в папку data/01_raw, создаем новый файл с именем customers.csv и добавляем в него содержимое используемого нами примера набора данных. Проще всего посмотреть содержимое файла с исходными данными в репозитории GitHub, выделить все, скопировать и вставить в созданный файл в проекте Kedro.

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

kedro pipeline create data_processing

Эта команда создаст несколько файлов Python в папке src/churn_predictor/pipelines/data_processing/. Теперь откроем файл nodes.py и вставим следующий код:

import pandas as pd from typing import Tuple def engineer_features(raw_df: pd.DataFrame) -> pd.DataFrame: «»»Создание производных признаков для моделирования.»»» df = raw_df.copy() df['tenure_months'] = df['account_age_days'] / 30 df['avg_monthly_spend'] = df['total_spend'] / df['tenure_months'] df['calls_per_month'] = df['support_calls'] / df['tenure_months'] return df def split_data(df: pd.DataFrame, test_fraction: float) -> Tuple[pd.DataFrame, pd.DataFrame]: «»»Разделение данных на обучающую и тестовую выборки.»»» train = df.sample(frac=1-test_fraction, random_state=42) test = df.drop(train.index) return train, test

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

В той же подпапке находится ещё один файл Python: pipeline.py. Давайте откроем его и добавим следующее:

from kedro.pipeline import Pipeline, node from .nodes import engineer_features, split_data def create_pipeline(**kwargs) -> Pipeline: return Pipeline([ node( func=engineer_features, inputs=»raw_customers», outputs=»processed_features», name=»feature_engineering» ), node( func=split_data, inputs=[«processed_features», «params:test_fraction»], outputs=[«train_data», «test_data»], name=»split_dataset» ) ])

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

Осталось выполнить всего пару последних шагов по настройке, чтобы всё заработало. Доля тестовых данных для узла разделения определена как параметр, который необходимо передать. В Kedro мы определяем эти «внешние» параметры в коде, добавляя их в файл conf/base/parameters.yml. Давайте добавим следующее в этот пока пустой файл конфигурации:

test_fraction: 0.2

Кроме того, по умолчанию проект Kedro неявно импортирует модули из библиотеки PySpark, которые нам, по сути, не понадобятся. В файле settings.py (внутри подкаталога «src») мы можем отключить это, закомментировав и изменив первые несколько строк кода следующим образом:

# Созданы экземпляры хуков проекта. # from churn_predictor.hooks import SparkHooks # noqa: E402 # Хуки выполняются в порядке «последний вошел — первый вышел» (LIFO). HOOKS = ()

Сохраните все изменения, убедитесь, что pandas установлен в вашей среде выполнения, и приготовьтесь запустить проект из терминала IDE:

кедро рун

В зависимости от установленной версии Kedro, это может сработать, а может и нет с первого раза. Если не сработает и вы получите ошибку DatasetError, вероятным решением будет установить kedro-datasets или pyarrow с помощью pip (или, возможно, оба варианта!), а затем попробовать запустить снова.

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

В заключение, вы можете дополнительно установить kedro-viz с помощью pip и запустить kedro viz, чтобы открыть в браузере интерактивный график вашего эффектного рабочего процесса, как показано ниже:

Kedro-viz: интерактивный инструмент визуализации рабочих процессов

# Завершение

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

Отличная работа!

Иван Паломарес Карраскоса — лидер, писатель, спикер и консультант в области искусственного интеллекта, машинного обучения, глубокого обучения и магистратуры. Он обучает и направляет других в применении ИИ в реальном мире.

Источник: www.kdnuggets.com

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

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

галерея

Многоразовая ракета New Glenn компании Blue Origin успешно приземлилась, но доставка полезной нагрузки не удалась.
Какой язык выбрать программисту в 2026 году?
Vantage Markets представит торговые решения на Blockchain Forum 2026
Моделирование данных для инженеров-аналитиков: полное руководство
В методе моделирования новых материалов обнаружилась «слепая зона»: Химия и науки о материалах
Компания Tesla запускает свою службу роботакси в Далласе и Хьюстоне.
Ученые говорят: Клонировать
dummy-img
Как максимально эффективно использовать возможности коворкинга в Claude
Image Not Found
Многоразовая ракета New Glenn компании Blue Origin успешно приземлилась, но доставка полезной нагрузки не удалась.

Многоразовая ракета New Glenn компании Blue Origin успешно приземлилась, но доставка полезной нагрузки не удалась.

Однако ей не удалось доставить полезную нагрузку с космической вышки сотовой связи. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Апр 20, 2026
Vantage Markets представит торговые решения на Blockchain Forum 2026

Vantage Markets представит торговые решения на Blockchain Forum 2026

14–15 апреля 2026 года в Москве, в Крокус Экспо, пройдет Blockchain Forum 2026 — одно из ключевых событий региона для профессионалов в сфере криптовалют, трейдинга и блокчейн-технологий. По мере того как индустрия продолжает развиваться в направлении цифровых…

Апр 20, 2026
Моделирование данных для инженеров-аналитиков: полное руководство

Моделирование данных для инженеров-аналитиков: полное руководство

Лучшие модели данных затрудняют постановку неправильных вопросов и упрощают ответы на правильные. Делиться Ваша модель данных — это не технические характеристики. Это мышление с точки зрения бизнеса. Рассматривайте её как план всей вашей аналитической системы. Если план…

Апр 20, 2026
В методе моделирования новых материалов обнаружилась «слепая зона»: Химия и науки о материалах

В методе моделирования новых материалов обнаружилась «слепая зона»: Химия и науки о материалах

Графическое резюме исследования © Михаил Медведев / Институт органической химии имени Н.Д. Зелинского РАН. Исследователи показали, что широко используемые методы квантовой химии могут не различать некоторые варианты распределения электронов в молекулах, из-за чего допускают ошибки при моделировании…

Апр 20, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых