Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 16.04.2022
Сообщений: 1,032

Предварительная обработка данных

11.06.2024, 10:18. Показов 655. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть такой код, который создает временной ряд и строит простую нейронную сеть. Акцент на предобработку данных до нейронной сети. В tf.keras.utils.timeseries_dataset_from_a rray создаются соответствующие окна из 7 ячеек (первые 6 как исторические данные (input) и 7-ая как label). Потом через функцию make_dataset идет разделение на input и label.

Сам код частично взят отсюда.

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import numpy as np
import tensorflow as tf
 
data = np.arange(1,1001,1)
data = np.expand_dims(data, axis=1)
data = np.hstack([data, data + 100])
 
n = data.shape[0]
train_data = data[0:int(n*0.7)]
val_data = data[int(n*0.7):int(n*0.9)]
test_data = data[int(n*0.9):]
 
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
 
train_data = (train_data - mean) / std
val_data = (val_data - mean) / std
test_data = (test_data - mean) / std
 
def split_window(features): 
    inputs = features[:, :6, :]  
    labels = features[:, 6:, :]  
    labels = tf.stack([labels[:, :, 1]], axis=-1)  
    inputs.set_shape([None, 6, None])   
    labels.set_shape([None, 1, None])   
    return inputs, labels
 
def make_dataset(data):
    data = np.array(data, dtype=np.float32)
    ds = tf.keras.utils.timeseries_dataset_from_array(
        data=data,
        targets=None,
        sequence_length=7,
        sequence_stride=1,
        shuffle=True,
        batch_size=32,
    )
    ds = ds.map(split_window)
    return ds
 
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1)
])
 
model.compile(
        loss=tf.losses.MeanSquaredError(),
        optimizer=tf.optimizers.Adam(),
        metrics=[tf.metrics.MeanAbsoluteError()]
)
 
history = model.fit(
    make_dataset(train_data),
    epochs=100,
    validation_data=make_dataset(val_data)
)
 
scores = model.evaluate(make_dataset(test_data))

Вопрос 1
Python
1
2
3
4
n = data.shape[0]
train_data = data[0:int(n*0.7)]
val_data = data[int(n*0.7):int(n*0.9)]
test_data = data[int(n*0.9):]
Здесь отсутствует перемешивание окон в целом, то есть тестовые данные свежее, чем валидационные. Следовательно, валидационные данные свежее, чем обучающие.

Скажите, как правильно смешать окна в данном кейсе?

Вопрос 2
Насколько эта запись
Python
1
2
3
4
5
6
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
 
train_data = (train_data - mean) / std
val_data = (val_data - mean) / std
test_data = (test_data - mean) / std
правильнее, чем
Python
1
2
3
4
5
6
train_mean = np.mean(train_data, axis=0)
train_std = np.std(train_data, axis=0)
 
train_data = (train_data - train_mean) / train_std
val_data = (val_data - train_mean) / train_std
test_data = (test_data - train_mean) / train_std
?

Вопрос 3
По данному кейсу какие есть еще замечания по предобработке данных?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2024, 10:18
Ответы с готовыми решениями:

Предварительная обработка входных данных
Всем привет! Возник вопрос по предварительной обработке данных для задачи прогнозирования временных рядов. Нужна ли это предварительная...

Предварительная обработка данных в архиваторе
Здравствуйте! Помогите, пожалуйста с делемой. Пишу архиватор, код архивирования и разархивирования есть (только путаюсь с С и С++,...

Предварительная обработка формы Javascript
Доброго! Вопрос такой: как сделать предварительную обработку данных формы перед отправкой? То есть <form...

1
2 / 2 / 1
Регистрация: 16.04.2022
Сообщений: 1,032
13.06.2024, 07:21  [ТС]
Цитата Сообщение от MConst Посмотреть сообщение
Вопрос 2
Насколько эта запись
Python
1
2
3
4
5
6
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
 
train_data = (train_data - mean) / std
val_data = (val_data - mean) / std
test_data = (test_data - mean) / std
правильнее, чем
Python
1
2
3
4
5
6
train_mean = np.mean(train_data, axis=0)
train_std = np.std(train_data, axis=0)
 
train_data = (train_data - train_mean) / train_std
val_data = (val_data - train_mean) / train_std
test_data = (test_data - train_mean) / train_std
?
Актуален этот вопрос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2024, 07:21
Помогаю со студенческими работами здесь

Предварительная обработка речевых сигналов
Добрый день! Задача состоит в обработке .wav файла. Необходимо загружаемый файл разбить на блоки, например, по 80 отсчетов и...

Сбор и предварительная обработка информации
Сделал задание но немного неправильно задание скину в word и сделанное задание в архиве. Вот мои ошибки и я не знаю как исправить...

VSFlexGrid и предварительная распечатка данных.
Всем здравствуйте !!! На форму имеется таблица (VSFlexGrid) со всеми данными. Распечатать ее содержимое можно просто: Dim...

Предварительная сборка
Процессор intel i5 - 9600kf или обычный материнская плата - MSI Z390-A PRO или Z370 Micro-ATX Оперативная память вся по 16 GB (...

Предварительная декларация
Как известно, подключать хидеры в хидеры нехорошо. Вместо этого рекомендуется использовать предварительную декларацию. Как использовать её...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru