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

✅ Найденные теги: Kedro, Анализ Данных, Инструментарий, новости, Руководство

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

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

галерея

Прозрачный раствор в бутылочке с черной крышкой, химическая формула на этикетке.
Диаграмма ложной идентичности: реальность и самозванец, высокие и низкие частоты.
Изображение крупным планом дрона с логотипом Anduril.
ideipro logotyp
Предоставление врачам необходимой информации непосредственно в момент общения с пациентом.
Цифровая сеть и технологическая сфера, соединенные световым потоком.
Модель атома с ядром и вращающимися электронами на темном фоне.
Флуоресцентное изображение эмбриона синих и фиолетовых оттенков на черном фоне.
Компания GE HealthCare запускает новую ультразвуковую систему для диагностики сердечно-сосудистых заболеваний.
Image Not Found
Прозрачный раствор в бутылочке с черной крышкой, химическая формула на этикетке.

Ученые усовершенствовали метод получения промышленного спирта

Полученный α-кумиловый спирт © Елена Редина. Ученые разработали новый метод получения α-кумилового спирта — ключевого продукта для производства полимеров, косметики и моющих средств. Этот спирт также служит основой для получения вещества, придающего пластикам прочность и устойчивость к…

Мар 5, 2026
Диаграмма ложной идентичности: реальность и самозванец, высокие и низкие частоты.

Эффект наложения спектров в аудио, объяснение простое: от «колес телеги» до волновых форм.

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

Мар 5, 2026
Изображение крупным планом дрона с логотипом Anduril.

Компания Anduril планирует достичь оценки в 60 миллиардов долларов в новом раунде финансирования.

Вкратце Источник изображения: Кайл Гриллот/Bloomberg / Getty Images Согласно новому сообщению The Wall Street Journal, оборонно-технологическая компания Палмера Лаки находится в разгаре многомиллиардного раунда финансирования, возглавляемого Thrive Capital и Andreessen Horowitz. Этот раунд финансирования состоится менее чем…

Мар 5, 2026
ideipro logotyp

Компания Illumina на конференции JPM 2026: Успешный 4-й квартал, рост клинических исследований и запуск BioInsight.

Автор: Эллисон Проффитт 13 января 2026 г. | Джейкоб Тейсен во вторник вернулся на сцену конференции JP Morgan Healthcare Conference с посланием о восходящем тренде: компания Illumina снова демонстрирует рост, и клиническое секвенирование является движущей силой этого…

Мар 5, 2026

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