Что такое feature в ML
Коротко
Feature (фича, признак) — входной параметр ML-модели, который используется для предсказания.
Если модель предсказывает churn пользователя, features могут быть:
- Возраст аккаунта.
- Количество заходов за 30 дней.
- Суммарные траты.
- Платформа (iOS/Android).
- Канал привлечения.
Виды features
1. Numerical (числовые)
age = 25
total_spent = 15000
sessions_last_week = 72. Categorical (категориальные)
platform = 'iOS' | 'Android' | 'Web'
country = 'Russia' | 'USA' | ...Перед подачей в модель преобразуют:
- One-hot encoding:
['iOS', 'Android']→[[1,0], [0,1]]. - Label encoding:
['iOS', 'Android']→[0, 1]. - Target encoding: заменяем категорию на средний target.
3. Binary (бинарные)
is_paid_user = 1 | 0
has_email = 1 | 04. Временные
day_of_week = 3 (среда)
is_weekend = 1
days_since_signup = 455. Текстовые
Преобразуют в числа через:
- TF-IDF — важность слов.
- Word embeddings — Word2Vec, BERT.
- Bag of words — просто частоты.
Feature Engineering
Feature engineering — процесс создания features из сырых данных.
Часто 80% успеха ML — это правильные features, а не алгоритм.
Примеры
Имеем: user_id, event_time, event_name, amount.
Создаём features:
df['sessions_last_7d'] = df.groupby('user_id')['event_time'].apply(
lambda x: (x > pd.Timestamp.now() - pd.Timedelta(days=7)).sum()
)
df['total_spent'] = df.groupby('user_id')['amount'].transform('sum')
df['days_since_last_event'] = (
pd.Timestamp.now() - df.groupby('user_id')['event_time'].transform('max')
).dt.days
df['avg_order_size'] = df.groupby('user_id')['amount'].transform('mean')
df['is_weekend'] = df['event_time'].dt.dayofweek >= 5Каждая — новая feature для модели.
Попробовать силы на подобных вопросах проще всего в тренажёре Карьерник — прямо в Telegram, без регистрации через сайт.
Типичные features для аналитика
Churn prediction
- days_since_last_event
- sessions_last_30d
- total_lifetime_value
- tenure_months
- changes_in_activity
Segmentation
- rfm_recency, rfm_frequency, rfm_monetary
- platform_usage
- channel
Fraud detection
- transaction_amount
- time_from_registration
- device_fingerprint_mismatch
- ip_country != billing_country
Feature Selection
Отбор важных features из многих:
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
feature_importance = pd.Series(model.feature_importances_, index=X.columns)
feature_importance.sort_values(ascending=False).head(20)Топ-20 фич объясняют 80% результата.
Feature Scaling
Многие модели (линейная регрессия, SVM, нейросети) требуют масштабирования:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)Deep trees (XGBoost, Random Forest) — не требуют.
Leakage — главная ошибка
Data leakage — когда feature содержит информацию, которой не могло быть в момент предсказания.
Пример:
- Хотите предсказать churn на 30 дней вперёд.
- Добавили фичу
had_support_ticket_in_next_week. - Модель покажет 99% accuracy.
- В реальности — бесполезна (в момент предсказания этой информации нет).
Всегда проверяйте: доступна ли feature в момент prediction?
Пройти 30–50 задач по теме за вечер можно в Telegram-тренажёре. Это то, что отличает «знаю» от «уверенно отвечу на собесе».
Аналитик и ML
Джуниор-аналитик
Features обычно не делает. Даёт данные, DS строит модели.
Middle+ аналитик
Участвует в feature engineering — лучше понимает бизнес и данные, чем DS.
Senior / Analytics Engineer
Владеет feature store, делает production-ready features.
Feature Store
Для крупных ML-пайплайнов — централизованное хранилище фич:
- Один раз посчитал → используют все модели.
- Консистентные имена и определения.
- Real-time feature serving для production.
Популярные решения: Feast, Tecton, собственные внутренние.
Читайте также
FAQ
Feature или column?
Feature — в контексте ML (вход модели). Column — в контексте данных (столбец таблицы). На практике часто взаимозаменяемы.
Сколько features нужно?
Начинайте с 10–20. Больше может привести к переобучению. XGBoost справляется с сотнями, линейная регрессия — до десятков.
Что такое feature store?
Централизованный каталог фич для ML-моделей. Используется в больших компаниях (Airbnb, Uber).
Надо ли аналитику знать feature engineering?
На middle+ — да. Это главный вклад аналитика в ML-проекты.