Автоматизированное конструирование признаков с Featuretools
EntitySet, DFS (Deep Feature Synthesis), примитивы признаков, объединение агрегаций
«Автоматизированное конструирование признаков с Featuretools» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Автоматизация создания признаков
Ручное создание признаков выполняется медленно, и при нём легко упустить важные сочетания. Специализированный инструмент автоматически строит множество возможных признаков из реляционных данных с помощью метода, называемого глубоким синтезом признаков.
Реляционные данные и сущности
Реальные данные часто распределены по нескольким связанным таблицам: клиенты, заказы, товары. Специализированный инструмент моделирует эти связи и автоматически создаёт признаки, агрегирующие данные по связанным таблицам.
Создание EntitySet
EntitySet — это контейнер, в котором хранятся ваши таблицы данных и сведения об их связях. Начните с создания пустого контейнера.
import featuretools as ft
es = ft.EntitySet(id="customers_data")Добавление DataFrames
es.add_dataframe регистрирует таблицу. Вы указываете её index (уникальный ключ) и при необходимости time_index для данных, меняющихся во времени.
import featuretools as ft
es = es.add_dataframe(
dataframe_name="customers",
dataframe=customers_df,
index="customer_id",
)
es = es.add_dataframe(
dataframe_name="orders",
dataframe=orders_df,
index="order_id",
time_index="order_date",
)Определение связей
Укажите инструменту связи между таблицами с помощью add_relationship: родительский ключ связывается с внешним ключом дочерней таблицы (у одного клиента может быть много заказов).
es = es.add_relationship(
"customers", "customer_id",
"orders", "customer_id",
)Глубокий синтез признаков
DFS (ft.dfs) — это основной механизм. Он объединяет операции по цепочкам связей и создаёт такие признаки, как «средняя стоимость заказа для клиента», без необходимости программировать каждый из них вручную.
import featuretools as ft
feature_matrix, feature_defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
)Примитивы агрегации
Примитивы агрегации сводят строки дочерних таблиц к родительской: SUM, MEAN, COUNT, MAX, STD. Они превращают множество заказов в статистики для каждого клиента.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
agg_primitives=["mean", "sum", "count", "max"],
)Примитивы преобразования
Примитивы преобразования работают в пределах одной строки или таблицы: извлекают месяц из даты, вычисляют прошедшее время или находят абсолютные значения.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
trans_primitives=["month", "weekday", "time_since_previous"],
)Управление глубиной
max_depth ограничивает количество объединяемых в цепочку примитивов. Глубина 1 означает непосредственную агрегацию; при глубине 2 сначала выполняется преобразование, а затем агрегация (например, вычисляется среднее значение дня недели для заказов). Большая глубина даёт больше признаков, но повышает риск появления ненадёжных признаков.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
max_depth=2,
)Использование матрицы признаков
Полученная feature_matrix — это чистая таблица данных с индексом целевой сущности, готовая для подачи на вход модели. В feature_defs описывается каждый созданный признак.
print(feature_matrix.shape)
print(feature_matrix.head())
X = feature_matrix.fillna(0)
# now train any sklearn model on XПреимущества и предостережения
Инструмент быстро создаёт множество признаков и выявляет зависимости между связанными таблицами. Однако он может сгенерировать сотни столбцов, поэтому сочетайте его с отбором признаков. Чтобы избежать утечки при работе с данными, меняющимися во времени, правильно задавайте cutoff_time.
Быстрая проверка
Проверьте свои знания об автоматическом создании признаков.
Итоги
Итоги: Автоматизация создания признаков упрощает разработку признаков. Создайте EntitySet, зарегистрируйте таблицы с помощью es.add_dataframe, определите связи, а затем запустите ft.dfs с параметром max_depth. Примитивы агрегации сводят строки дочерних таблиц к родительским; примитивы преобразования работают в пределах одной строки. feature_matrix готова для модели, но её следует использовать вместе с отбором признаков.
Часто задаваемые вопросы
Урок «Автоматизированное конструирование признаков с Featuretools» бесплатный?
Да — полный текст урока «Автоматизированное конструирование признаков с Featuretools» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Автоматизированное конструирование признаков с Featuretools»?
EntitySet, DFS (Deep Feature Synthesis), примитивы признаков, объединение агрегаций Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Автоматизированное конструирование признаков с Featuretools»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Методы отбора признаков
- Создание взаимодействий и полиномиальных признаков
- Целевое кодирование и расширенная обработка категорий
- Автоматизированное конструирование признаков с Featuretools