ML

Линейная регрессия. Задачи к собеседованию.

Задача 1:

Вам дали датасет с числом комнат, площадью и ценой на жильё. Постройте модель линейной регрессии. Как интерпретировать коэффициенты?

Возможно, стоит выполнить нормализацию признаков, так как число комнат и площадь могут отличаться на порядки.

Коэффициенты показывают, какой признак более значим при формировании цены.

Задача 2:

Вы обучили модель и получили высокое значение R^2, но при этом плохое качество на тесте. Что пошло не так?

Это похоже на переобучение, когда модель слишком сильно подстроилась под обучающие данные и не может точнее интерпретировать новые данные.

Вот на что стоит обратить внимание:

  • Возможно, модель слишком сложна для данной задачи. Необходимо ее упростить, удалив избыточные признаки, снизив степень полиномиальных признаков или выбрав более простую модель.
  • Проверить, была ли выполнена нормализация признаков.
  • Проверить, применялась ли регуляризация при обучении модели.
  • Проверить, является ли выборка данных достаточной по объему. Данных должно быть как можно больше, так как коэффициент детерминации в значительной степени зависит от их объема и дисперсии.
  • Помнить, что коэффициент детерминации напрямую зависит от количества признаков. Некоторые из них могут быть незначимыми или сильно скоррелированными с другими. Необходимо найти и устранить эти признаки. Более точная метрика, учитывающая качество признаков, это Radj^2.

Задача 3:

Данные содержат один категориальный признак. Как его учесть в линейной регрессии?

Здесь ключевое слово – категориальный. Это не числовой признак. Его сначала необходимо перевести в числовой.

Стандартный способ кодирования категориальных признаков – One Hot Encoding, при котором каждый категориальный признак становится столбцом в данных со значением 1 или 0.

Как правило, при выполнении кодирования удаляют один из полученных столбцов для снижения вероятности переобучить модель.

Если вариантов категориального признака много, то One Hot Encoding приведет к значительному увеличению числа признаков. В этом случае лучше применить целевое кодирование – Target Encoding. Его суть – замена значения категориального признака средним значением его таргета.

Задача 4:

Построй модель с Lasso и Ridge. Как изменились веса? Что ты замечаешь?

Веса изменились в соответствии с важностью признаков.

Для модели Lasso (L1) некоторые веса обратились в 0. Модель их выключила.

Задача 5:

Построй полиномиальную регрессию. Как выбрать степень полинома?

Общий код может выглядеть так:

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.linear_model import LinearRegression

model = make_pipeline(PolynomialFeatures(degree=3), StandardScaler(), LinearRegression())

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

Однако, если сама логика задачи диктует определенную степень (скажем, речь о площадях – тогда вторая степень оптимальна), это стоит учитывать.

Задача 6:

Вы обучили модель, а коэффициенты оказались нестабильными при малом изменении данных. Почему? Как решить проблему?

Основные причины нестабильности коэффициентов:

  • мультиколлинеарность – признаки могут сильно коррелировать между собой, поэтому модель “затрудняется” определить, какой из них важнее. Необходимо найти и удалить (или преобразовать) лишние признаки. Можно также использовать PCA или другие методы понижения размерности.
  • мало признаков – если количество наблюдений примерно равно числу признаков, значит, данных очень мало. Это называется плохой обусловленностью данных. Необходимо увеличить или сгенерировать дополнительные наблюдения.
  • в данных есть нерелевантные признаки или признаки с высоким шумом. Модель начинает подстраиваться под шум. Необходимо удалить эти признаки или обработать для снижения шума.
  • данные не нормализованы, имеют разный масштаб. Необходимо выполнить нормализацию данных перед подачей в модель.
  • отсутствие регуляризации – в классической модели линейной регрессии не предусмотрена регуляризация. Необходимо добавить L1, L2 или ElasticNet регуляризацию.

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить