Формулы ML-алгоритмов¶
~4 минуты чтения
Справочник формул для 15 ключевых ML-алгоритмов: от линейной регрессии до Isolation Forest. Покрывает loss-функции, градиенты, kernel tricks и метрики качества. На собеседованиях по ML чаще всего просят вывести градиент logistic regression (встречается в 60%+ ML-интервью), объяснить разницу Gini vs Entropy для деревьев, и записать формулу attention из Transformer.
Linear Regression¶
Модель¶
Loss (MSE)¶
Аналитическое решение (OLS)¶
Ridge Regression (L2)¶
Lasso Regression (L1)¶
Elastic Net¶
Logistic Regression¶
Модель¶
Sigmoid функция¶
Binary Cross-Entropy Loss¶
Градиент¶
Softmax Regression (Multiclass)¶
Softmax функция¶
где \(z_k = \mathbf{w}_k^T \mathbf{x}\)
Cross-Entropy Loss¶
Decision Tree¶
Gini Impurity¶
Entropy¶
Information Gain¶
MSE для регрессии¶
Random Forest¶
Предсказание (классификация)¶
Предсказание (регрессия)¶
Out-of-Bag Error¶
Gradient Boosting¶
Общая формула¶
Pseudo-residuals¶
Для MSE loss¶
XGBoost objective¶
SVM¶
Primal формулировка¶
Dual формулировка¶
Kernel functions¶
- Linear: \(K(x, x') = x^T x'\)
- Polynomial: \(K(x, x') = (\gamma x^T x' + r)^d\)
- RBF: \(K(x, x') = \exp(-\gamma \|x - x'\|^2)\)
Hinge Loss¶
K-Nearest Neighbors¶
Расстояния¶
- Euclidean: \(d(x, x') = \sqrt{\sum_{i} (x_i - x'_i)^2}\)
- Manhattan: \(d(x, x') = \sum_{i} |x_i - x'_i|\)
- Minkowski: \(d(x, x') = (\sum_{i} |x_i - x'_i|^p)^{1/p}\)
- Cosine: \(d(x, x') = 1 - \frac{x \cdot x'}{\|x\| \cdot \|x'\|}\)
Предсказание¶
Weighted KNN¶
K-Means¶
Objective¶
Centroid update¶
Assignment¶
PCA¶
Covariance matrix¶
Eigendecomposition¶
Projection¶
где \(\mathbf{V}_k\) — первые k собственных векторов
Explained variance ratio¶
Naive Bayes¶
Bayes' Theorem¶
Naive assumption¶
Classifier¶
Gaussian Naive Bayes¶
AUC-ROC¶
True Positive Rate (Recall)¶
False Positive Rate¶
AUC интерпретация¶
Information Theory¶
Entropy¶
Cross-Entropy¶
KL Divergence¶
Mutual Information¶
DBSCAN¶
Core Point¶
Точка \(p\) — core point если \(|N_\epsilon(p)| \geq \text{MinPts}\)
где \(N_\epsilon(p) = \{q \in D : d(p, q) \leq \epsilon\}\)
Density-Reachability¶
\(p\) density-reachable from \(q\) если существует цепочка \(p_1, ..., p_n\) где \(p_1 = q\), \(p_n = p\), и каждый \(p_{i+1} \in N_\epsilon(p_i)\) при \(p_i\) — core point
Gaussian Mixture Model (GMM)¶
Likelihood¶
E-step (responsibilities)¶
M-step¶
t-SNE¶
Joint Probability (high-dim)¶
Joint Probability (low-dim, Student-t)¶
Objective (KL divergence)¶
UMAP¶
Fuzzy Set Membership¶
Cross-Entropy Loss¶
где \(\mu\) — high-dim graph weights, \(\nu\) — low-dim graph weights
Isolation Forest¶
Anomaly Score¶
где \(h(x)\) — path length, \(c(n) = 2H(n-1) - 2(n-1)/n\) — normalization
Interpretation¶
- \(s \approx 1\): anomaly
- \(s \approx 0.5\): normal
- \(s < 0.5\): dense region
Metrics: Precision, Recall, F1¶
Precision¶
Recall¶
F1-Score¶
F-beta Score¶
Average Precision (AP)¶
Silhouette Score (Clustering)¶
Per-sample¶
где \(a(i)\) = mean intra-cluster distance, \(b(i)\) = mean nearest-cluster distance
Interpretation¶
- \(s \approx 1\): well-clustered
- \(s \approx 0\): on boundary
- \(s < 0\): likely misclassified
Типичные заблуждения¶
Заблуждение: OLS всегда даёт оптимальное решение для линейной регрессии
Аналитическое решение \(\mathbf{w} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y}\) требует обратимости \(\mathbf{X}^T \mathbf{X}\). При мультиколлинеарности (rank-deficient matrix) решение нестабильно или невозможно. Ridge regression добавляет \(\lambda \mathbf{I}\) и гарантирует обратимость. Вычислительная сложность OLS -- \(O(n \cdot p^2 + p^3)\), для больших \(p\) предпочтителен SGD.
Заблуждение: Gini и Entropy дают одинаковые деревья
На практике разница между Gini impurity и Entropy менее 2% случаев. Но Entropy вычисляет логарифм (дороже), а Gini -- полином. scikit-learn использует Gini по умолчанию. Реальное отличие: Entropy сильнее "штрафует" неоднородные разбиения, что иногда даёт более сбалансированные деревья.
Заблуждение: K-Means всегда находит глобальный оптимум
K-Means минимизирует intra-cluster variance, но алгоритм гарантирует только локальный минимум. Результат зависит от начальной инициализации центроидов. K-Means++ (scikit-learn default) значительно улучшает инициализацию, но глобальный оптимум не гарантирован. Рекомендация: n_init=10 (запуск 10 раз, выбор лучшего).
Вопросы на собеседовании¶
"Выведите градиент logistic regression"
Слабый ответ: записывает формулу без вывода, путает знаки
Сильный ответ: "BCE loss = \(-\frac{1}{n}\sum[y\log\hat{y} + (1-y)\log(1-\hat{y})]\), где \(\hat{y} = \sigma(w^Tx)\). По chain rule: \(\frac{\partial L}{\partial w_j} = \frac{1}{n}\sum(\hat{y}_i - y_i)x_{ij}\). Это удобно -- тот же вид что и для MSE в линейной регрессии, благодаря свойству \(\sigma'(z) = \sigma(z)(1-\sigma(z))\)."
"В чём разница между L1 и L2 регуляризацией?"
Слабый ответ: "L1 -- абсолютные значения, L2 -- квадраты"
Сильный ответ: "L1 (Lasso) даёт sparse решения -- обнуляет неважные веса (feature selection). L2 (Ridge) уменьшает все веса, но не обнуляет. Геометрически: L1 -- ромб (углы на осях), L2 -- круг. Elastic Net комбинирует оба. Ridge гарантирует обратимость \(X^TX + \lambda I\), Lasso -- нет аналитического решения."
"Как выбрать K для K-Means?"
Слабый ответ: "Elbow method"
Сильный ответ: "Elbow method (inertia vs K) -- субъективен. Silhouette score -- объективнее (\(s \in [-1, 1]\), чем ближе к 1 -- тем лучше). Gap statistic сравнивает с uniform distribution. На практике: домен-знание важнее метрик. Для K-Means альтернативы: DBSCAN (не нужен K), GMM (мягкая кластеризация)."