сеньорчикОткрыть в Telegram
← все вопросывопросы для собеседований · Временные ряды

Вопросы по временным рядам на собеседовании

Первое, что проверяют на этой теме, это валидация. Случайное перемешивание строк во временном ряду выдаёт человека мгновенно, потому что модель начинает подглядывать в будущее.

51 вопросов в банке·4 подтем·ниже разбор 9

Из чего состоит тема

Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.

Разборы подтем

Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.

Примеры вопросов с разбором

  1. #ts_features1 / 9
    Что такое лаг-признак (lag feature) в задаче прогноза?
    A)Значение самого ряда на N шагов назад, поданное как признак для предсказания текущей точки
    B)Среднее вообще всех будущих значений ряда, специально усреднённых заранее для повышения точности прогноза
    C)Случайно перемешанная копия целевой переменной, добавленная в датасет ради дополнительной регуляризации модели
    D)Отметка о том, с каким именно техническим запаздыванием данные физически поступили в хранилище из источника
    показать ответ и разбор
    +A)Значение самого ряда на N шагов назад, поданное как признак для предсказания текущей точки

    // разбор: Лаг-признак — значение ряда (или связанной величины) со сдвигом назад: y(t-1), y(t-7), y(t-365). Это основной способ дать ML-модели (например, бустингу) историю ряда в табличном виде. Лаги строго из прошлого относительно прогнозируемой точки — иначе утечка. Усреднение будущего или копия таргета — это как раз ликаж, а не корректная фича.

  2. #ts_foundations2 / 9
    Чем прогнозирование временного ряда принципиально отличается от обычной табличной регрессии?
    A)Наблюдения упорядочены во времени и автокоррелированы — их нельзя перемешивать, будущее зависит от прошлого
    B)Ровным счётом ничем: временной ряд — это та же самая регрессия, просто одна из колонок называется датой
    C)Во временных рядах запрещено использовать какие-либо признаки, кроме самого целевого значения ряда
    D)Временной ряд по определению стационарен, поэтому модель для него подбирать проще, чем в регрессии
    показать ответ и разбор
    +A)Наблюдения упорядочены во времени и автокоррелированы — их нельзя перемешивать, будущее зависит от прошлого

    // разбор: У ряда есть ось времени: соседние точки автокоррелированы, а прогноз строится строго из прошлого в будущее. Отсюда всё специфичное — валидация по времени (нельзя перемешивать, будущее не должно попадать в трейн), лаг-признаки, работа с трендом и сезонностью. Табличная регрессия считает строки взаимозаменяемыми и независимыми — тут это неверно.

  3. #ts_modeling3 / 9
    Почему для прогноза спроса по тысячам SKU на проде часто берут градиентный бустинг на лаг-признаках, а не ARIMA на каждый ряд?
    A)Одна модель на лагах и экзогенных признаках тянет тысячи рядов сразу, ловит нелинейности и легко масштабируется
    B)ARIMA технически неспособна выдать прогноз более чем на один шаг вперёд, поэтому её вообще не используют на практике
    C)Градиентный бустинг точнее статистической модели временного ряда на большинстве данных
    D)ARIMA требует обязательного наличия видеокарты для обучения, а бустинг обходится процессором, отсюда и выбор
    показать ответ и разбор
    +A)Одна модель на лагах и экзогенных признаках тянет тысячи рядов сразу, ловит нелинейности и легко масштабируется

    // разбор: ARIMA моделирует один ряд и требует настройки на каждый — на тысячах SKU это не масштабируется. Бустинг на лаг- и календарных признаках плюс экзогенные переменные учит одну модель на всех рядах сразу, ловит нелинейности и взаимодействия, легко добавляет промо и цены. ARIMA хороша на одиночном стабильном ряде, но не как прод-конвейер на тысячи рядов. Универсального «всегда точнее» не бывает.

  4. #ts_validation4 / 9
    Почему для временного ряда нельзя валидироваться обычным случайным train/test split и k-fold?
    A)Случайное перемешивание сажает будущие точки в трейн — это утечка (look-ahead), метрики врут
    B)Случайный сплит для рядов запрещён из-за того, что он работает заметно медленнее по времени на больших исторических выборках
    C)K-fold технически не получится применить к числовым данным, содержащим колонку с датой
    D)При случайном сплите итоговая обучающая выборка получается вдвое меньше, чем нужно модели
    показать ответ и разбор
    +A)Случайное перемешивание сажает будущие точки в трейн — это утечка (look-ahead), метрики врут

    // разбор: Случайный сплит и k-fold перемешивают наблюдения, и в обучающую выборку попадают точки из будущего относительно теста — модель косвенно подсматривает ответы (look-ahead leakage). Метрики выходят завышенными, а в проде, где будущего нет, модель проваливается. Валидируют строго по времени: обучают на прошлом, проверяют на следующем за ним отрезке.

  5. #ts_features5 / 9
    Зачем в прогноз спроса добавляют календарные признаки — день недели, месяц, праздник?
    A)Календарные признаки нужны для сортировки строк датасета по дате перед обучением модели
    B)Спрос зависит от календаря (выходные, праздники, сезон); эти признаки объясняют регулярные всплески и провалы
    C)Они добавляются для того, чтобы искусственно увеличить число колонок и усложнить модель
    D)Праздники и дни недели не влияют на спрос, но их добавляют по устоявшейся привычке из шаблонов
    показать ответ и разбор
    +B)Спрос зависит от календаря (выходные, праздники, сезон); эти признаки объясняют регулярные всплески и провалы

    // разбор: Спрос сильно завязан на календарь: выходные, праздники, зарплатные дни, сезоны дают регулярные пики и провалы, которые лаги не всегда ловят (особенно перед редким праздником). Явные календарные признаки позволяют модели выучить эти эффекты. Особенно важны признаки предстоящих событий (завтра праздник) — они известны заранее и не создают утечки.

  6. #ts_foundations6 / 9
    Что значит, что временной ряд стационарен?
    A)Что ряд обязательно строго возрастает или строго убывает на всём своём протяжении без единого разворота
    B)Что его статистики — среднее, дисперсия, автокорреляция — не меняются во времени
    C)Что все без исключения значения ряда равны между собой и образуют идеально горизонтальную прямую линию
    D)Что ряд измеряется строго через равные промежутки времени без единого пропуска в наблюдениях
    показать ответ и разбор
    +B)Что его статистики — среднее, дисперсия, автокорреляция — не меняются во времени

    // разбор: Стационарность (в слабом смысле) — постоянство во времени среднего, дисперсии и структуры автокорреляции: у ряда нет тренда и меняющейся сезонной амплитуды. Многие классические модели (ARMA) требуют стационарности, поэтому ряд с трендом сначала дифференцируют. Это не про монотонность, не про равенство значений и не про равномерность отсчётов.

  7. #ts_modeling7 / 9
    Прогноз на 30 шагов вперёд: чем recursive-стратегия отличается от direct и в чём их трейдофф?
    A)Никакой разницы между ними нет: обе стратегии обучают одну и ту же модель ровно на один шаг вперёд
    B)Recursive катит прогноз шаг за шагом на своих же прогнозах; direct учит модель на каждый горизонт
    C)Recursive требует ровно 30 отдельных моделей, а direct обходится строго одной моделью на весь горизонт целиком
    D)Direct-стратегия применима к стационарным рядам, а recursive работает с нестационарными
    показать ответ и разбор
    +B)Recursive катит прогноз шаг за шагом на своих же прогнозах; direct учит модель на каждый горизонт

    // разбор: Recursive учит модель на один шаг и катит её вперёд, подставляя собственные прогнозы как лаги, — просто, но ошибка накапливается с горизонтом. Direct обучает отдельную модель под каждый горизонт h (или мультивыход), избегая накопления ошибки ценой большего числа моделей и данных. Трейдофф: простота и связность против устойчивости на длинном горизонте.

  8. #ts_validation8 / 9
    Что такое forward-chaining (rolling-origin) бэктест временного ряда?
    A)Однократное обучение модели на второй половине ряда с проверкой её качества на первой, более ранней половине
    B)Многократный прогон, где окно обучения растёт (или скользит) во времени, а тест всегда идёт сразу после него
    C)Случайное разбиение ряда на много непересекающихся фолдов с последующим усреднением метрики по всем ним
    D)Обучение отдельной независимой модели на каждой отдельной точке ряда с последующим голосованием их прогнозов
    показать ответ и разбор
    +B)Многократный прогон, где окно обучения растёт (или скользит) во времени, а тест всегда идёт сразу после него

    // разбор: Rolling-origin (forward-chaining) — серия сплитов, где обучающее окно расширяется или скользит вперёд, а тест каждый раз берётся из периода сразу после трейна. Так модель много раз проверяется на разных «будущих» отрезках, метрика усредняется и устойчивее, при этом порядок времени нигде не нарушается. Обучение на будущем ради проверки прошлого — как раз то, чего этот метод избегает.

  9. #ts_features9 / 9
    Скользящее среднее (rolling mean) как признак — какая типичная ловушка на границе окна?
    A)Rolling mean не получится использовать как признак в задачах прогнозирования временных рядов вообще
    B)Окно обязано включать ровно 30 точек, иначе признак становится полностью бесполезным для модели
    C)Включить в окно текущую (и тем более будущую) точку — это утечка; окно должно считаться только по прошлому, со сдвигом
    D)Скользящее среднее обязательно нужно считать по всему ряду сразу, а не по локальному окну наблюдений
    показать ответ и разбор
    +C)Включить в окно текущую (и тем более будущую) точку — это утечка; окно должно считаться только по прошлому, со сдвигом

    // разбор: Rolling-агрегат для прогноза точки t должен считаться строго по данным до t. Частая ошибка — окно, центрированное на t или включающее саму t (а то и будущее): тогда в признак попадает то, что модель предсказывает, — утечка. Правильно: rolling с последующим shift(1), чтобы окно заканчивалось на t-1. Размер окна подбирают под задачу, это не фиксированные 30.

это 9 из 51

Ещё 42 вопросов по теме — в тренажёре, с движком повторения

Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.

Частые вопросы