Лекция 4. Обучение нейронных сетей в Keras, ч. 2 (Анализ данных на Python в примерах и задачах. Ч2)
HTML-код
- Опубликовано: 1 окт 2018
- compscicenter.ru/
Нейронные сети для прогнозирования. Сведение задачи прогнозирования к регрессионной задаче. Прогнозирование рядов с сезонной составляющей.
Лекция №4 в курсе "Анализ данных на Python в примерах и задачах. Часть 2" (осень 2018).
Преподаватель курса: Вадим Леонардович Аббакумов
Страница лекции на сайте CS центра: bit.ly/2OseAS7
Все видео курса: bit.ly/2NEwnWR
Коллеги, понятно
Почему я в своей жизни нигде не встречал таких преподавателей, максимально грамотно всё разжевал, то что я искал на протяжении месяцев просто в одном ролике на RUclips с примерами и практикой.
Лекции огонь просто! И лектор супер! Спасибо большое!
Какое чудо, что нашла ваши лекции! Записалась на платные курсы, про нейронные сети дают аж 40 минут видео и все. У вас разбито доступно по полкам с основательными объяснениями. И бесплатно ) Спасибо!
Спасибо за публикацию лекций! Вы восхитительный лектор! Также, вы мне напомнили персонажа из игры Detroit: Become Human, а именно Лейтенанта Андерсона. Ещё раз, спасибо вам
12/10 лектору.
13
20@@purplep3466
Спасибо большое за труд!
Иван Иванов присоединяюсь!
Спасибо за эту информацию я как раз и искал !
Хорошая лекция! Подскажите что вы за редактор в браузере используете?
CrazyMult это скорее всего Google colaboratory
jupyter notebook
jupyter notebook
Можно на colab.research.google.com тоже самое провернуть
А почему не работает ссылка на страницу лекции? Где брать обучающую выборку?
впн, дргуг мой
# Creating a model
model = Sequential()
model.add(Dense(6, input_dim=12, activation='relu'))
model.add(Dense(1, activation='linear'))
# Compiling model
model.compile(loss='mean_absolute_percentage_error', optimizer='adam', metrics=['mean_absolute_percentage_error'])
Задача 1: 6 нейронов во внутреннем слое, функция потерь MAPE, получил на тестовой выборке 7.77%
Во второй задаче получилось добиться 1.16%, используя только 4 нейрона, при этом итоговый график неплохо приближается к данным.
привет!
подскажи пожалуйста, не могу разобраться, как в итоге сделать прогноз на n периодов вперёд?
модель то мы сделали, а как её применить? в начале лекции говорилось, что уже обученную модель мы применяем к последним 12 значениям нашего набора и таким образом получаем 13ое. дальше используем это предсказанное значение и 11 предыдущих для прогнозирования 14го и так далее.
если получилось разобраться как это сделать, скинь эту часть кода пожалуйста
@@Sasha-je4do привет, давно проходил, уженк помню деталей, советую лекцию ещё раз посмотреть внимательно
А если у нас есть статистические данные за всю история существования чего-либо, и в Y вписываем не 1 выход, а несколько?
Будет ли сеть давать неточное предсказание на всех выходах сразу, или на первом мало ошибки, на втором больше и так далее?
Такую сеть трудно (долго) обучать. Вы хотите одну сеть для решения 12 задач одновременно. Проще построить 12 сетей для прогноза на 1, 2, ...12 месяцев вперед.
Отличная лекция! Это то, что мне было нужно! Спасибо!
Есть вопрос.
Можно задать цикл для внешних параметров нейронной сети. Для каждого варианта запустить,
оценить ошибку и точность. Далее выбрать тот вариант, где меньше ошибка и высокая точность. Но
тут получается каждый раз инициализируем, запускаем обучение нейронной сети и при этом не меняем
значения внешних параметров и результаты (потеря и точность) сильно отличаются. Почему так? И как этого
избежать, чтобы можно было смело использовать цикл для внешних параметров?
Вопрос 2.
Временной ряд имеет такое свойство как последовательность. Плюс влияние сезонности, номер дня недели, маркетинговые мероприятия. Предположим есть еще признаки-колонки "Дата" ("dd.mm.yyyy" или количество дней, прошедших с 0 января 1900 года), "Коэффициент сезонности" (0.01 - 1.00), "Номер дня недели" (1,2, ..., 7) и "Есть акция в торговой точке? (0 и 1)". Возможно ли задать такую модель, чтобы модель нейронной сети дополнительно отдельно брала информацию из этих четырех признаков? А также различала эти 4 признака от других признаков (t-1, t-2, ..., t-12)? Если да, то как это сделать?
Вопрос 3.
Предположим есть ежедневные данные по продажам одного SKU одной торговой точки за 12 месяцев. Продажи не каждый день, например,
Дата Продажи
01.01.2020 5
02.01.2020 3
03.01.2020 1
05.01.2020 4
07.01.2020 2
... ...
Скажите, для таких данных, где в каких-то датах отсутствуют продажи, как настраивать модель нейронной сети?
После построения модели и получения прогнозных данных суммируются с остальными SKU и торговыми точками.
@@mrx8312 Добавьте входы для каждого предиктора (тут их часто называют регрессорами). увеличьте матрицу входных данных на эти столбцы. С предикторами все как в линейной регрессии
@@mrx8312 Есть много стратегий... Самая простая - заполнять интерполяцией с учетом сезонности
@@Vadim_Abbakumov Скажите, будет ли видео, где используется рекуррентная нейронная сеть. Так как эта сеть учитывает последовательность, что и характерно для временного ряда.
Это же получается просто AR модель, которую обучают с помощью градиентного спуска
Тестить на самых свежих данных, конечно, логично, но упускать из обучающей выборки самые актуальные данные тоже не айс?
Упускаем на этапе отбора модели. На этапе окончательного прогнозирования все последние наблюдения снова в обучающей выборке!
Нельзя ли рассматривать пример с машинами как выборку распределения Пуассона ? Фиксированный интервал времени,Y - у нас количество случившихся событий....
Придется много модифицировать в определениях. Засунуть туда сезонность и тренд. Их же там нет. Что стоит сделать - модифицировать критерий качества под вариант с распределением Пуассона. Об этом критерии качества я кратко упоминал, когда показывал статью Ridgeway'я в теме Gradient Boosting
по моему не плохо было бы нормализовать данные ))))
Можно, но IMHO именно при прогнозировании неплохо получается и без стандартизации...
Где это все применять?
Я в растерянности. Прогноз продаж, прогноз складских запасов - все это никому не нужно?