Какие коэффициенты (параметры) подбираются в процессе машинного обучения?

«Какие коэффициенты (параметры) подбираются в процессе машинного обучения?» — вопрос из категории Классическое ML, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В процессе обучения модели машинного обучения оптимизируются различные параметры (коэффициенты), минимизирующие функцию потерь. Основные типы:

  1. Веса модели (Model Weights/Parameters):

    • Линейная/Логистическая регрессия: Коэффициенты θ (тета) для каждого признака и смещение (intercept/bias) θ₀.
    • Нейронные сети: Веса и смещения всех нейронов в полносвязных и других слоях.
    • Деревья решений (в ансамблях): Не коэффициенты в классическом смысле, а структура дерева (пороги разбиений в узлах) и значения в листьях.
  2. Параметры регуляризации: Коэффициенты, контролирующие сложность модели и предотвращающие переобучение.

    • alpha (λ) в Lasso (L1) и Ridge (L2) регрессии.
    • Параметры штрафа C в SVM или логистической регрессии в sklearn (обратно пропорционален силе регуляризации).

Пример подбора весов в линейной регрессии:

import numpy as np
from sklearn.linear_model import LinearRegression

# Генерация синтетических данных
np.random.seed(42)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

model = LinearRegression()
model.fit(X, y)

print(f"Подобранное смещение (intercept): {model.intercept_[0]:.4f}")
print(f"Подобранный коэффициент для признака: {model.coef_[0][0]:.4f}")
# Вывод будет близок к истинным значениям 4 и 3.

Важно отличать параметры модели (коэффициенты, которые алгоритм подбирает из данных), от гиперпараметров (настраиваемые до обучения, например, max_depth в дереве или learning_rate в бустинге).