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 - только для финальной оценки?