Вопрос или проблема
У меня есть следующая задача: тренировочная программа на протяжении 3 дней для прогнозирования 4-го дня. Каждодневные данные представлены в виде одного CSV файла с размерами 24×25. Каждая точка данных в каждом CSV файле соответствует пикселю. Мне нужно использовать модели, такие как регрессия (линейная, гребневая) и LSTM.
Для тренировки по 3 дня для каждой модели:
Для модели регрессии: После обработки данных за каждый день с помощью выравнивания, я транспонирую данные с формой: (600, 3).
Для модели LSTM: После обработки данных за каждый день с помощью выравнивания, я оставляю данные как есть с формой: (3, 600).
Например, так:
day_1 = [0.1, 0.2, ..., 0.6] # 600 признаков для Дня 1
day_2 = [0.15, 0.25, ..., 0.65] # 600 признаков для Дня 2
day_3 = [0.2, 0.3, ..., 0.7] # 600 признаков для Дня 3
X_train_linear_ridge = np.array([
[0.1, 0.15, 0.2], # Признак 1 по Дню 1, Дню 2, Дню 3
[0.2, 0.25, 0.3], # Признак 2 по Дню 1, Дню 2, Дню 3
# ...
[0.6, 0.65, 0.7] # Признак 600 по Дню 1, Дню 2, Дню 3
]) # Форма: (600, 3)
X_train_lstm = np.array([
[0.1, 0.2, ..., 0.6], # Признаки Дня 1
[0.15, 0.25, ..., 0.65], # Признаки Дня 2
[0.2, 0.3, ..., 0.7] # Признаки Дня 3
]) # Форма: (3, 600)
Может кто-нибудь сказать мне, являются ли подготовка данных для регрессионных моделей с формой: (600, 3) и LSTM с формой: (3, 600) концептуально правильным подходом?
Моя мотивация:
LSTM: LSTM предназначены для обработки данных с последовательными, временными взаимосвязями. Подавая данные с формой (3, 600) (представляющие 3 временных шага, каждый из которых имеет 600 признаков), LSTM может учить паттерны на протяжении всей последовательности. Каждый временной шаг соответствует дню в данных, в то время как 600 признаков представляют собой отдельные значения за этот день. Эта структура необходима для того, чтобы LSTM могла использовать временные зависимости.
Линейная и гребневая регрессия: Эти модели не обладают встроенной способностью к последовательной обработке. Они интерпретируют каждый ввод как единый плоский вектор. Для приблизительного обучения последовательностям мы можем рассматривать данные каждого дня как отдельный признак, создавая конфигурацию с формой (600, 3), где 600 признаков «накапливаются» за 3 дня. Каждый день становится признаком для модели регрессии, но не может уловить временные зависимости так, как это делает LSTM.
Моя концепция правильна для регрессий и модели LSTM в отношении формы?
Ответ или решение
Подготовка данных для обучения с использованием многовариантных наборов данных
Ваша задача по подготовке данных для моделей регрессии (линейная и ридж-регрессия) и LSTM (долгая краткосрочная память) в контексте предсказания значения за 4-й день на основе данных за 3 предыдущих дня имеет важное значение. Давайте рассмотрим, как правильно подготовить ваши данные с учетом особенностей каждой модели и концептуально оценим ваш подход.
1. Подготовка данных для регрессионных моделей
Для моделей регрессии, таких как линейная и ридж-регрессия, вы используете метод "плоской" структуры, преобразуя данные в форму (600, 3)
, что логически верно. В этой форме:
- Ребята – это 600 отдельных характеристик, представляющих каждый пиксель из 24×25 изображения.
- Столбцы – это последовательные 3 дня.
Каждый столбец представляет значения для определенной характеристики (пикселя) в течение трех дней. Приведенный вами пример кода полностью соответствует этому подходу. Важно помнить, что модели регрессии не учитывают временные зависимости, поэтому мы представляем данные как отдельные конструкции, фактически игнорируя порядок.
2. Подготовка данных для LSTM
Для LSTM вы правильно сохраняете данные в форме (3, 600)
:
- Здесь несколько временных этапов (3 дня) представляются как последовательности.
- Каждая "строка" теперь является временным шагом, а "столбцы" – это характеристики.
Этот подход позволяет модели LSTM извлекать временные зависимости между днями, что критично для анализа временных рядов. Вы можете оптимально использовать скрытые слои LSTM для обучения на таких входных данных, что дает возможность выявлять паттерны, выходящие за рамки простого объединения данных.
Заключение
Ваши концепции для подготовки данных для регрессионных моделей и LSTM верны и подходят к целям вашего предсказания. Модели регрессии и LSTM имеют разные структуры ввода из-за своих ключевых различий в обработке данных: регрессия рассматривает каждый временной шаг развёрнуто, а LSTM – в соответствии с временной зависимостью.
Учитывая все эти детали, вы делаете шаги в правильном направлении для успешного обучения и предсказания на основе многовариантных наборов данных. Поддерживайте свою работу с адекватной валидацией и тестированием, чтобы оценить, насколько ваши модели эффективны на практике.