TGViewer
Data Science | Вопросы собесов Data Science | Вопросы собесов @easy_ds · 4.89K subscribers
Post #2698 188
🤔 Как валидировать временные ряды ?

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

🟠Train/Test Split
Простейший метод заключается в разделении данных на две части: обучающую и тестовую выборки. При этом важно, чтобы тестовая выборка содержала данные, которые следуют за данными из обучающей выборки.
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split

# Пример данных временного ряда
data = pd.Series(np.arange(100))

# Процент данных для тестовой выборки
test_size = 0.2
split_index = int(len(data) * (1 - test_size))

# Разделение данных
train_data = data[:split_index]
test_data = data[split_index:]

print("Обучающая выборка:", train_data)
print("Тестовая выборка:", test_data)


🟠Time Series Cross-Validation
Кросс-валидация для временных рядов (Time Series Cross-Validation) выполняется путем последовательного использования разных временных интервалов для обучения и тестирования. Два основных подхода включают rolling cross-validation и expanding window validation.

🟠Walk-Forward Validation
Похожа на expanding window validation, но отличается тем, что каждая новая модель обучается на данных, включающих предыдущие обучающие данные, и делает одно предсказание на каждом шаге.
import numpy as np
import pandas as pd

# Пример данных временного ряда
data = pd.Series(np.arange(100))

# Размер начального окна и шаг
initial_window = 20

# Walk-forward validation
for i in range(initial_window, len(data)):
train_data = data[:i]
test_data = data[i:i+1]
print("Обучающая выборка:", train_data)
print("Тестовая выборка:", test_data)


🟠Использование методов скользящего окна
Этот метод включает в себя создание фиксированного окна данных, которое движется по временной оси. Модель обучается на данных внутри окна и тестируется на следующем наборе данных. При валидации моделей для временных рядов следует учитывать временную структуру данных.
import numpy as np
import pandas as pd

# Пример данных временного ряда
data = pd.Series(np.arange(100))

# Размер окна и шаг
window_size = 20
step_size = 5

# Sliding window validation
for start in range(0, len(data) - window_size, step_size):
train_data = data[start:start+window_size]
test_data = data[start+window_size:start+window_size+step_size]
print("Обучающая выборка:", train_data)
print("Тестовая выборка:", test_data)


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_ds
  1. Oct 12, 2026🤔 Как происходит детекция без anchor box-ов? Обнаружение объектов без использования ancho…
  2. Oct 12, 2026Post #2701
  3. Oct 11, 2026🤔 Что такое декоратор? Это функция, модифицирующая или расширяющая поведение другой функц…
  4. Oct 11, 2026Post #2699
  5. Oct 10, 2026Post #2697
  6. Oct 10, 2026🤔 Что такое переобучение модели? Переобучение (overfitting) происходит, когда модель слиш…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →