Data Science

Regression и Classification

Kaggle 2022: команда предсказывает цены акций. Accuracy 95% на test set. На production - 52%, не лучше монетки. Разгадка: data leakage - в признаки случайно попала будущая цена. Умение выбирать правильные метрики и валидировать модели честно - разница между ML инженером и академиком.

  • Netflix Prize ($1M): Ridge regression как компонент winning ensemble - простые линейные модели в ансамбле часто обгоняют сложные
  • Stripe Radar (fraud detection): logistic regression с 4000+ признаками обнаруживает мошенничество при precision>95%, recall>90% - interpretable модель важна для compliance
  • Airbnb dynamic pricing: gradient boosting + Ridge ensemble прогнозирует оптимальную цену листинга - RMSE в $15 на суточную ставку

Linear Regression: прогноз непрерывных значений

Linear regression предсказывает числовое значение через линейную комбинацию признаков: y = w0 + w1*x1 + w2*x2 + ... Оптимизация: минимизировать MSE (Mean Squared Error). Аналитическое решение через OLS (Ordinary Least Squares) или градиентный спуск для больших датасетов.

R² (R-squared) = 1 означает идеальный fit, 0 = модель не лучше предсказания средним. R² может быть отрицательным если модель хуже среднего. Adjusted R² штрафует за лишние признаки. RMSE - в тех же единицах что target (удобно), MAE - робастна к outliers.

Когда Lasso регрессия полезнее Ridge?

Logistic Regression: классификация через вероятности

Logistic regression предсказывает вероятность класса через sigmoid функцию: P(y=1|x) = 1/(1+exp(-z)), где z = w*x. Несмотря на название - это классификатор. Порог 0.5 по умолчанию, но можно менять под задачу (precision vs recall tradeoff).

Coef_ в LogisticRegression - log-odds. exp(coef_[i]) = odds ratio для признака i. Если коэффициент 0.5 для 'age', то каждый год увеличивает odds оттока в exp(0.5)=1.65 раз при прочих равных. Это ценно для интерпретации бизнес-стекхолдерам.

При дисбалансе классов (98% - нет мошенничества, 2% - мошенничество) какую метрику НЕЛЬЗЯ использовать как основную?

Метрики: выбор под задачу

Нет универсальной лучшей метрики. Выбор зависит от бизнес-задачи: что дороже - ложноположительное или ложноотрицательное срабатывание? Для медицинской диагностики (не пропустить болезнь) - recall. Для спам-фильтра (не помещать важные письма в спам) - precision.

  • Accuracy: доля правильных предсказаний. Бесполезна при дисбалансе классов.
  • Precision: из предсказанных positive, сколько верных. Важна когда ложные срабатывания дороги.
  • Recall (Sensitivity): из всех реальных positive, сколько найдено. Важна когда пропуск дорог.
  • F1: гармоническое среднее precision и recall. Компромисс.
  • ROC AUC: устойчива к дисбалансу, оценивает ранжирование, не конкретный threshold.
  • PR AUC: лучше ROC AUC при сильном дисбалансе классов (1:100 и хуже).
  • RMSE/MAE/R²: для regression задач.

Для детектора онкологии (пропустить рак критично) какая метрика приоритетна?

Model Selection: выбор и валидация модели

Bias-variance tradeoff: простые модели - высокий bias (underfitting), сложные - высокая variance (overfitting). Cross-validation оценивает generalization. GridSearchCV и RandomizedSearchCV для hyperparameter tuning. Train/validation/test split - тест нельзя трогать до финальной оценки.

Data leakage - главная ошибка: если scaler fit на всём датасете до split, тестовые данные 'протекают' в train. Решение: Pipeline в scikit-learn применяет fit только на train fold при CV. Temporal leakage: для временных рядов нельзя перемешивать - использовать TimeSeriesSplit.

Что такое data leakage и почему он опасен?

Ключевые идеи

  • Linear/Logistic regression: интерпретируемые baseline модели. Lasso = feature selection, Ridge = мультиколлинеарность.
  • Метрика выбирается под бизнес: recall для медицины, precision для спама, ROC AUC при дисбалансе классов.
  • Pipeline предотвращает data leakage: scaler.fit только на train, CV честно оценивает generalization.

Связанные темы

Regression и classification - база для более сложных ML задач:

  • Работа с грязными данными — Качество данных напрямую влияет на метрики: outliers искажают RMSE, пропуски требуют imputation до обучения
  • ML Pipeline: от notebook к production — scikit-learn Pipeline становится основой production ML pipeline с MLflow tracking и model registry

Вопросы для размышления

  • Когда стоит выбрать интерпретируемую logistic regression вместо black-box XGBoost при одинаковых метриках?
  • Как Bias-Variance tradeoff проявляется на практике: признаки высокого порядка (x², x³) и regularization?
  • Почему тестовый сет нельзя использовать для выбора threshold - только для финальной оценки?

Связанные уроки

  • ml-06-linear-regression
Regression и Classification

0

1

Войти