ИСПОЛЬЗУЕМ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ (нейронные сети) ДЛЯ ПРЕДСКАЗАНИЯ ЦЕНЫ АКЦИЙ!
🔥 Индивидуальная программа по обучению data science под вашу цель с моей менторской поддержкой до результата:
ershov.io/dsprogram?...
Тут я рассказываю почему я создал эту программу, для кого она подходит и в чем ее преимущества:
• Video
🔥 Telegram: t.me/ershovds
ИСПОЛЬЗУЕМ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ (нейронные сети) ДЛЯ
ПРЕДСКАЗАНИЯ ЦЕНЫ АКЦИЙ!
В этому видео я покажу как предсказать цену на акции компании Apple используя
искусственный интеллект (нейронные сети). А именное RNN (LSTM блок).
Ссылки из видео
Датасет: www.kaggle.com/borismarjanovi...
Код: colab.research.google.com/dri...
Контакты:
Instagram: / ershovio
Twitter: / ershovio
Facebook: / ershovio
#ershovds
Таймкоды:
0:00 Введение
1:00 Обзор датасета с Kaggle
2:09 Анализ данных используя Pandas
8:16 Создание датасета для временного ряда
14:33 Обучение RNN модели используя Tensorflow
искусственный интеллект,нейронные сети,ии,нейросети,alexander ershov,александр
ершов
Пікірлер: 141
Важно понимать что смысл этого видео не доказать, что с помощью этого алгоритма можно заработать, а показать, как работать с временными рядами используя нейронные сети (RNN). Поэтому: 1. Не нужно пытаться использовать это для реальной торговли, в реальности цена актива зависит от многих параметров, а не только от предыдущей цены. 2. Не нужно предъявлять претензии к видео с точки зрения качества алгоритма для трейдинга / инвестирования, как я уже сказал, цель видео - научиться работать с временными рядами, а не заработать с помощь этого алгоритма. Можно было бы для этого взять другую задачу на временной ряд - например предсказание погоды.
@konakona2456
3 жыл бұрын
Про второй пункт. «Научиться работать с временными рядами» ? Чел, ты же делаешь shuffle, а это самая грубая ошибка, когда работаешь с данными включающие время. После шафла ты как бы заглядываешь в будущее. Кто хочет реально научиться МЛу чекайте ods, а ты чел просто молча удали видос.
@AlexanderErshov
3 жыл бұрын
Shuffle делается внутри train и test отдельно, смотри видео внимательнее, там нету лика данных.
@yankakupala4464
3 жыл бұрын
@@konakona2456 наглый двоечник! что еще за "данные включающие время"? :)
@ClosiusBeg
3 жыл бұрын
@@AlexanderErshov Кажись он не про это. Он к тому, что ты вот когда делал фичи и лейблы из времянного ряда, ты за лейбл принял будущее значение и делаешь придикт по будущему, которого в реальности нет. Интересно, а можно ли сделать лейбл перед фичами и что это даст? хмм
@annaarbuz3277
3 жыл бұрын
@@ClosiusBeg Так по лэйблу и не делается предикт, а вычисляется ошибка в обучении с учителем. А что касается shuffle, то это перемешивание батчей, а не позиций внутри батча. Так как использовалась stateless lstm, то последовательность батчей не имеет значения - на каждой итерации состояние сбрасывается.
Наконец-то не занудный контент по дата сайенсу) Вангую, этот канал в скором времени взлетит до небес Удачи автору!
Какую ещё тему я хочу?... БЕЗ ПОНЯТИЯ! Я вообще как в тумане в этой теме. Твои эти практические примеры очень классно придают форму всем абстрактным знаниям, которыми обычно пестрит интернет. Лайк, подписка и буду смотреть любые примеры, которые ты посчитаешь, что они похожи на реальные. Спасибо огромное за твой труд!
Как вовремя! Прямо сейчас разбираю эту тему, и тут видос вышел)
@user-vj2vm9bi2g
3 жыл бұрын
совет: подавайте на вход разные данные, и период исторических данных 80-100, ну и сетка несколько сложнее должна быть, чтобы обработать вход
Спасибо за видео. Успехов в развитии канала.
Спасибо! Топовый контент!
Спасибо за видео!
Круто, было бы интересно увидеть видео про компьютерное зрение👀 - какоенибудь yolo без трансферного обучения, а с нуля, с определением всех ошибок, датасетов, моделей и т.д.🤔
Лайк и благодарность за практические руководства!
Чел, можно видосики только такого формата! Успех тебе!!
У меня на работе стоит задача, люди играют в теннис и нужно обучить модель, чтобы она определяла счет игры. Хотелось бы увидеть проект по cv
Крутяк крутяк крутяк
Спасибо за видео,хотелось бы, (обучение с подкреплением ) reinforcement learning q learning , Спасибо
круто. очень мало видео о том как применять дата сайнс на практике!
Видос прикольный, пару моментов подчеркнул для себя, но осталось ощущение неполноты видео, нет еще пару команд для просмотра результата предсказания, хотелось бы увидеть концовку. а так еще буду ждать видео про CNN, классификация изображения и еще крутая тема по созданию Генератора и Дискриминатора.
Добрый день. Отличное видео, спасибо за контент. С практической точки зрения, более ценно если бы модель предсказывала флуктуации цены, когда прирост цены сменяется убыванием. Гипотетически это можно сделать проанализировав корреляцию торговых объемов и цены закрытия. Скажите, такого рода задача принципиально отличается от того, что показано в видео?
Александр, привет. Если есть возможность, сними пожалуйста видео про практические методы максимизации. Про scipy optimize или что-то подобное. Т.к. задачи этого типа очень востребованные (распределение рабочих ресурсов по предприятию и т.д.), а нормального видео про эту тему я не находил.
Дааа, это то что надо! Крутое видео, прям тогда, когда оно мне понадобилось. Только я не совсем понял, а как теперь использовать эту модель. Я так понимаю мы как-то должны передать ей диапазон дат и получить цену акции на эти даты. А можно этой модели передать не только даты, но и, например, ещё цену акции при открытии продажи, чтобы получить рассчитанную стоимость для закрытия? Каналу - развития! Хочется ещё подобных видео с примерами разных задач и также с примерами настройки моделей.
@AlexanderErshov
3 жыл бұрын
данная модель принимает n предыдущих цен (где n - windows size) и возвращает n + 1 цену. Даты передавать не нужно. Можно обучить модели, которые будут выдавать цену закрытия.
@enotbert
2 жыл бұрын
@@AlexanderErshov Подозреваю, вопрос был в том, где посмотреть предсказанную цену. Сколько долларов стоит акция 5 мая 2025 года например.
клево)
просто топ канал.... просто топ канал
Очень конечно интересно, но где результат тестовых предсказаний?
чел, жду еще подобных видео, как только заработаю на этом денег я тебе задоначу! как же все понятнее стало намного, ты класный
@nataliaermakova7222
3 жыл бұрын
а если проиграешь то что?))) спросишь за негодный контент)))
@Woodreack
3 жыл бұрын
@@nataliaermakova7222 проиграю?...
@nataliaermakova7222
3 жыл бұрын
@@Woodreack ага
Давай что-нибудь со сверточными нейронными сетями, например классификатор изображений
Александр, здравствуй. Ты очень крутой специалист! Спасибо больше за твой канал! Скажи пожалуйста какой ВУЗ ты заканчивал ? И по какой специализации ?
@AlexanderErshov
3 жыл бұрын
СПбГУ, специальность связана с программированием
@igorm6314
3 жыл бұрын
@@AlexanderErshov спасибо большое !)
Давай видео про сегментацию сверточныя нейросетей!
Ждем следующее видео из ванной комнаты))) шутка. Контент топ!
Предлагаю сделать распознавание предметов по фото, деталей одежды например. Недавно была такая задача, было бы интересно разобрать)
Так какая цена будет? :) Получается, что на этих данных цена непредсказуема?
Последняя колонка openint это открытый интерес, это ценные данные, обычно они платные.
Здравствуйте. Очень интересная данная тема. В данный момент учусь на 1 курсе, планирую поступить в этом либо следующем году в computer science center. Что можете сказать о нем ?
@AlexanderErshov
3 жыл бұрын
хорошее место, можете от них посмотреть курсы на stepik что бы оценить
Интересная тема для табличных данных - Tabnet от Яндекса. Это не совсем нейронка, но при грамотном использовании может дать результат даже лучше, чем стандартные деревянные
@AlexanderErshov
3 жыл бұрын
не слышал про такую, можешь скинуть ссылку?
Расскажи что-то про матан в DS
Было бы здорово про computer vision
Несбалансированных классы в временных рядах. Задача: Есть бинарная разметка временного ряда . Например цена и точки где была поставка товара. Необходимо используя временное окно в 20 точек (например 1 точка - 5 минут), предсказать точки где стоило бы довезти товар. Несбалансирование 0.5%
вообще колаб ссылку писать в комментарии не плохо бы было =)
А можно этот же датасет на алгоритмах Sarima, arima и других алгоритмах?
А можно эту тему как помощь в ставках на спорт использовать для вангования?
@AlexanderErshov
3 жыл бұрын
как помощь - наверное да, но в реальности исход спортивных событий зависит от многих факторов, не только от прошлого проигрыша / выигрыша
Подскажи для чего шафл при создании датасета ты ведь сам внале говорил что может быть лик или это имеелось ввиду чтоб тест-датасет был хронолргически после трейна а в пределах каждого датасете уже можно перемешивать
@AlexanderErshov
3 жыл бұрын
Сначала идет разделение на train / test хронологически по времени, а уже внутри них делается shuffle. Так что лика данных не будет.
Некоторые моменты вызывали боль в моей тонкой душевной организации 1) Ценовые ряды - не стационарные временные ряды 1.1) Не стоит использовать "масштабирование" построенное по всему временному ряду, поскольку последующие данные могут выходить за пределы и все масштабирование сломается. Вместо этого нужно строить обучение по приращениям, самое оптимальное - посчитать разницу логарифмов между текущим и предыдущим значениями 2) Разбивать, по-хорошему, надо на три блока - обучение, валидация и тест. Блоки обучения и валидации гоняются по нескольким эпохам, а тестовые данные используются для финальной проверки модели. Валидационный блок, по сути, тоже влияет на обучение
Как в итоге использовать predict? Можно код?
Благодарю за видео, но не могли бы вы добавить в описание версии пакетов библиотек. Новичок. Стоит локально анаконда на ноуте. Запуск примера кода завершается ошибкой (не может подружить нумпай массив с керасом. Советы гугла пока не увенчались успехом. Хочу сверится с версиями пакетов, чтобы понять, проблема в них или в чем то еще :)
@AlexanderErshov
3 жыл бұрын
Запустите код в colab, импортируйте библиотеки (самый первый блок). А после него вызовите название библиотеки (как вы ее импортировали).___version___ Например для pandas это "pd.__version__" и вам напечатается версия библиотеки. Или просто можно работать в colab, тогда проблем с импортом будет)
@karlzinher4181
3 жыл бұрын
@@AlexanderErshov Благодарю, да, проблема была в версиях пакетов. Сутки ушли на настройку окружения( не скажу, что впустую потратил время, но настораживает, что со старта столько проблем)
Попробуй использовать DataGen = TimeseriesGenerator(xTest, yTest, length=300, sampling_rate=1, batch_size=len(xTest))
А где же само предсказание цены акции? Не получилось?
Привет. А почему в конце не было результата? Вот допустим предсказание от нейронки на 2017 год и вот, что было реально. Или я чтото упустил?
@AlexanderErshov
3 жыл бұрын
Я метрики показал. Или ты имеешь ввиду графики реальной цены и предсказанной?
@user-kd9qt6bq8y
3 жыл бұрын
@@AlexanderErshov да, реальной и предсказанной. для конечной визуализации так скажем) а так, спасибо за ролик, было интересно)
@NikolaiPismennyi
3 жыл бұрын
@@user-kd9qt6bq8y да потому, что на этом графике стало бы ясно, что нейросеть тупо предсказывает будущее текущим значением. То есть никакой нейросеть для этого не надо строить) а ошибка на валидации больше из-за того, что автор даже не удосужился прологарифмировать входные данные)
Ну а где конец? Зачем вот это в конце "делать я этого не буду" и т.д.?. Ну доделайте же, покажите как получилось по итогу, какая точность, как использовать потом предсказание. А то часть сделали, а то ради чего всё делалось идет лесом
Самого предсказания не было, только метрики. Надо было графически показать факт и прогноз, было бы наглядно
Актуалочка, над этим думал, как инструмент трейдинга зайдет
Давай нейронку которая хакнет сеть биткоин, без обдолбанных расчетов хэшей, с го получилось без пересчетов
Проверь на сколько отличается предсказание и реальность с учетом сдвига, возможно ты научил сеть предсказывать те же значения но со сдвигом, что видно из переобучения =)
Все это круто конечно, вот тут нужно такая функция, тут такая. А вот почему такая функция нужна, и именно такая, с такими параметрами и т.п, эту инфу откуда брать книги читать, медитировать, гадать или че, не догоняю. Или это приходит со временем, с практикой, но опять же не просто же догадаться, что нужна нормализация, или нужен вот такие слои и т.п Вот я сейчас смотрю и реально психую, что больше половины не понятно.
@AlexanderErshov
2 жыл бұрын
Это видео - разбор практической задачи для тех, кто уже знает базовые вещи. Можешь посмотреть мою менторскую программу в описании, где я помогаю с обучением, либо изучай базу самостоятельно.
Все неплохо, но есть одно но - предсказать цену акций невозможно ) +не совсем понял, где собственно написание какого-то кода, который отвечает за предсказание цены акций. И последнее - может кто-то подсказать, когда я запускаю кусок history = compile_and_fit(lstm_model, train_ds, val_ds, num_epochs=500), выдаёт TypeError и пишет Missing required positional argument. Перепробовал разные варианты, кусок так и не заработал. Кто-то с таким сталкивался?
Где взять датасет с английскими предложениями, разделёнными по 12 типам времен?
@lox_ne_ya
3 жыл бұрын
в интернете
@AlexanderErshov
3 жыл бұрын
поищи на kaggle или google datasets
А почему не Яху финанс?
Наш мозг - нейронка. Прогнозирование цены = цены (изменение цен) + факторы (человеческий, политический, мировые рынки, события) + нейронка с индивидуальной попыткой определить цену с указанием причины и отметанием ложных или ведущих к заблуждению. И то не факт, что будет точно или правильно. Слишком много факторов. Думайте сами. Иметь или не иметь. А лучше быть инсайдером в правильных учреждениях.
Прикольно было б нейронная сеть для музыки чтоб он сам писал )
@bishkek8699
3 жыл бұрын
Просто я видел пару видосиков и не зашло 😂 хотя рабочая тема
@AlexanderErshov
3 жыл бұрын
есть такая openai.com/blog/jukebox/
Сделал алгоритм с акциями Теслы Два дня подряд обучался (25000 поколений) Уже начал думать какого брокера выбрать для торговли Выдало, что должно расти Проверяю - либо способ не работает, либо я тупой, либо акции невозможно предсказать...
@user-nb6pj3hz6e
3 жыл бұрын
А вообще для дейтрейдинга на стабильных рынках, когда работает чисто алгоритм биржи, на каких-нибудь нефтяных фьючерсах, может зайти (проверю)
Надо было изобразить на графике сравнение факт-предикт, но я знаю что было бы на этом графике - линия прогноза повторяла бы линию факта, но с опозданием на 1 тик свечи, то есть 1 день. Такой оракул, который после наступления события говорит - я так и знал!). Делов в том, что нельзя предсказывать цену по цене, может и можно, но дело гиблое)
@purplep3466
3 жыл бұрын
шумов в цене слишком много, нужны менее сжатые данные
@AlexanderErshov
3 жыл бұрын
Да, я понимаю, что такая модель плохо подходит для реальной торговли. Но цель этого видео не доказать, что на ней можно заработаь, а показать как работать с временными рядами используя RNN. Просто я выбрал задачу предсказания цены, можно было взять другую - например погоду предсказывать.
@abenderbey
3 жыл бұрын
@@AlexanderErshov Я понимаю, урок отличный, вопросов нет - техника исполнения корректная. Просто многие в комментах решили, что смогут заработать на трейдинге таким образом)
@yankakupala4464
3 жыл бұрын
А других-то вариантов аппроксимировать случайное блуждание у LSTM и нет...
@AlexanderErshov
3 жыл бұрын
@@abenderbey написал в закрепленном комментарии об этом
Здравствуйте, Александр! Я практикующий трейдер. Давайте замутим проект. Создадим типа фонда, прибыль пополам. Я даю фичи, вы пишете код.
ну предсказания то не было самого
Грустно, что непосредственного предсказания так и не случилось, научить работать с нейронкой это конечно круто, но хотелось бы получить какой-то результат
@AlexanderErshov
3 жыл бұрын
В качестве результата я посчитал значение метрики. Или ты имеешь ввиду именно сравнить предсказанные и реальные значения цены?
@kirilldikalin
3 жыл бұрын
@@AlexanderErshov Да, хотелось бы видеть результат работы, а то получается кликбейт какой-то, значение метрик посчитали, а дальше? Если цель видео показать как можно работать с нейронными сетями и временными рядами, то следует так и называть видео. В этом же случае было бы супер показать насколько модель хорошо справляется со своими задачами, чтобы человек, который посмотрел это видео смог применить эти знания на практике ) В общем ждём продолжение, потому что материал подаётся супер классно, спасибо за то, что ты делаешь!
@AlexanderErshov
3 жыл бұрын
@@kirilldikalin да, я понял, что уже несколько человек ожидало именно хороший алгоритм с точки зрения трейдинга / инвестирования и написал об этом в закрепленном комментарии
@kirilldikalin
3 жыл бұрын
@@AlexanderErshov Нет нет, не важно насколько хорош алгоритм в предсказании цены, цель же была не бота трейдера писать. В теории вся работа должна быть разделена на несколько этапов (1. постановка задачи, 2. обучение тому как работать с временными рядами используя нейронные сети (RNN) и непосредственно 3. результат). Так вот как раз результата очень не хватает, я бы хотел применить то, что ты показал в видео на абсолютно других данных, но не знаю что делать дальше. Как мне получить искомые значения, после того как я получил хорошие значения метрики?
@AlexanderErshov
3 жыл бұрын
У модели есть метод predict, его надо вызвать чтобы получить результат предсказаний. Да можно было это сделать в конце, что-то не подумал(
Все расчеты основанны на прошлом. Надо в прогноз внести будущее. Тогда ты станешь миЛЛиардером. И я тоже. Так как я понимаю как заглянуть в будущее.....
В году торговых дней ведь не 365, а меньше намного. 200 вроде бы
@AlexanderErshov
3 жыл бұрын
Торговых - да, но там в колонке date обычные даты
Так а где сам прогноз цены акции?) Ты же просто обучил модель, но по итогу так и не сделал прогноз
Standard scaler будет изменять суть данных, дял этой задачи не подойдёт
@ClosiusBeg
3 жыл бұрын
кстати рил! "The idea behind StandardScaler is that it will transform your data such that its distribution will have a mean value 0 and standard deviation of 1" так вот делает он это преобзазование относительно sd всего датасета. А датасет твой это сэмпл а не вся популяция (ген совокупность). А в подобном времянном ряду центральная предельная теорема то не работает (ну я так полагаю)... Поэтому другой сэмпл может иметь другое sd и скеллер херню сморозит... Кстати мб тут стационарность (индеграция ряда) поможет?
@user-tj4ut8ox9r
3 жыл бұрын
@@ClosiusBeg насколько я знаю здесь лучше всего подойдёт Z-Score
@ClosiusBeg
3 жыл бұрын
@@user-tj4ut8ox9r так z-score это и есть стандард скелер вроде?
@user-tj4ut8ox9r
3 жыл бұрын
@@ClosiusBeg standard scaler разве не мапит все числа от 0 до 1? В моем понимании з скор берет среднее число из ряда чисел и мапит все остальные под это среднее значение
почему данные не качаются напрямую с yahoo? зачем эти сложности с файлами. уже какой видос про предсказание цен на просторах ютюба и везде файлы какие-то с данными
@karlzinher4181
3 жыл бұрын
как по мне, нормально, лично я при обучении не хочу зависеть от интернета...
@nataliaermakova7222
3 жыл бұрын
@@karlzinher4181 вообще то без интернета не будет никакого обучения 🤣
@karlzinher4181
3 жыл бұрын
@@nataliaermakova7222 у меня не будет )) вы правы))) а у нейронки все будет окей :)
Нет учёта опыта Нокия, Моторолла.
Регрессия здесь работать не будет, а вот классификация, я думаю, имеет шансы.
@ClosiusBeg
3 жыл бұрын
А причем тут регрессия вообще? У него RNN
@user-tj4ut8ox9r
3 жыл бұрын
@@ClosiusBeg я что-то попутал 😂😂 не посмотрел видео до конца, в начале он говорит, что-то о регрессии
@user-tj4ut8ox9r
3 жыл бұрын
@@ClosiusBeg ещё я имел ввиду, что предсказание значения цены невозможно
+1
Предсказание продаж.
Комментарий
Набегут ща высокочастотники
Все иетересно
Ребят, предсказать что-то невозможно, хватит мусолить какую-то херь!
@AlexanderErshov
3 жыл бұрын
Уже ответил про это в другом комментарии, но повторю: Цель этого видео не доказать, что с помощью такой ML модели можно заработать, а показать как можно работать с временными рядами используя RNN сети, просто для этого я выбрал задачу предсказания цены, можно было взять другую (например погоду предсказывать).
plt.figure(figsize=(14,7)) plt.plot(history.history['loss'], label='Средняя абсолютная ошибка на обучающем наборе') plt.plot(history.history['val_loss'], label='Средняя абсолютная ошибка на проверочном наборе') plt.ylabel('Средняя ошибка') plt.legend() plt.show()
Спасибо за видео !