Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
Один прогноз — три разных способа смотреть на данные.
На этой неделе модели разошлись по характерам. kNN спрашивает похожих, дерево задаёт полезные вопросы, а временной ряд смотрит назад и уважает порядок наблюдений.
◎ Соседи
Новый объект получает ответ от похожих объектов: голосование для класса, среднее — для числа.
🌳 Дерево
Решение строится как последовательность вопросов: от корня к листу.
〽 Время
Во временном ряду порядок — часть данных. Перемешали строки — могли уничтожить историю.
Что делает kNN?
Что делает дерево?
Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
«Скажи мне, кто твои соседи, и я скажу, кто ты».
Классификация
Соседи голосуют. Если 4 из 5 ближайших — синий класс, прогноз обычно синий.
Регрессия
Соседи дают числа. Берём среднее или, при необходимости, сильнее взвешиваем более близких.
Чтобы выбрать соседей, нужна метрика расстояния. На уроке основная геометрическая интуиция — евклидово расстояние: строка таблицы становится точкой, признак — координатой.
Как выбирать k?
Не угадывать. Сравнивать несколько значений на validation / cross-validation и смотреть качество.
Проклятие размерности: когда признаков очень много, даже ближайшие объекты могут оказаться не такими уж близкими. Лишние признаки вредят понятию «сосед».
Почему доход может захватить расстояние у возраста?
Как выбирать k?
Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
Дерево не ищет похожих. Оно ищет хороший вопрос.
Интуиция начиналась с «Угадай кто?»: хороший вопрос быстро уменьшает число вариантов. В данных персонажи заменяются строками таблицы, а вопросы — условиями по признакам.
Хороший split
После вопроса группы становятся более однородными. Gini и entropy измеряют эту «путаницу»; формулы на этой неделе не главное.
Порог для числа
Дерево само может искать вопрос вроде «возраст ≤ 35?» или «площадь ≤ 70?».
Слишком мелкое
Мало вопросов → грубая картина → underfitting.
Слишком глубокое
Запоминает детали train → overfitting. Глубину и другие ограничения проверяем на новых данных.
А если одно дерево нестабильно?
Random Forest строит много немного разных деревьев. Для классификации они голосуют, для регрессии усредняют ответы. Обычно устойчивее, но объяснять целый лес труднее.
Что важнее: красивый вопрос или полезный split?
Почему train может обмануть?
Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
Во временном ряду порядок — часть данных.
Первое действие — не запускать модель, а построить график. Иначе тренд, сезонность, шум, выбросы и смены режима легко спрятать в таблице чисел.
Тренд
Долгосрочный рост, спад или другое постепенное изменение уровня.
Сезонность
Повторяющийся рисунок через сутки, неделю, месяц, год…
Шум
Случайные колебания без устойчивой структуры.
Выброс
Пик ≠ ошибка автоматически. Это может быть событие или новый режим.
Difference
Делает видимыми пики, падения, волны и изменения скорости процесса.
Moving Average
Сглаживает шум. Малое окно сохраняет детали; слишком большое может спрятать важный скачок.
Periodogram
Помогает искать выраженные ритмы. Но найденный период должен иметь предметный смысл — это не кнопка «объяснить всё».
1050 сегодня, 1000 вчера. Что показывает Difference?
Большое окно сглаживания всегда лучше?
Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
Прошлое → train. Будущее → test.
Даже при правильной границе train/test утечка может прийти через признаки. Все features должны быть доступны в момент прогноза.
lag1
вчера
lag2
позавчера
lag7
тот же день недели неделю назад — полезно при недельном ритме
Лаги превращают прошлое временного ряда в обычные признаки. После этого с ними могут работать Tree, kNN, Regression и другие табличные модели.
SARIMAX — только идея
Прошлые значения + сезонность + прошлые ошибки + внешние факторы → прогноз. На уроке не выводили формулы и не требовали подбирать p,d,q.
Prophet — только идея
Тренд + сезонности + праздники/события. Это ещё один способ разложить бизнес-ряд на понятные компоненты.
Можно ли использовать завтрашнюю температуру, чтобы предсказать сегодняшнее потребление?
Зачем lag7?
Прокрутите лист вниз: примеры и самопроверка продолжаются ниже.
Не кнопки, а маршрут мышления.
kNN в Orange
Data / File → Preprocess → Neighbors → Test & Score
Меняем k, сравниваем качество, помним про масштаб.
Decision Tree в Orange
File / Data → Tree → Test & Score → Tree Viewer
Сравниваем сложность и читаем один путь от корня к листу.
COVID → Time Series
File → Data Table → Transpose → As Timeseries → Line Chart → Difference → Moving Transform → Periodogram
Сначала понимаем форму таблицы, потом превращаем её во временной ряд — не наоборот.
kNN
Ищет похожих.
Tree
Задаёт вопросы.
Time Series
Учитывает историю.
Финальная мысль: у разных моделей разный способ смотреть на данные. А человек должен понять, проверить и объяснить, почему результату можно доверять.