Обновить
19
Александр Петренко@AlexanderPetrenko

Машинное обучение

64
Подписчики
Отправить сообщение
Александр, спасибо за рекомендацию. Думаю в следующий заход, когда потребуются временные ряды изучу подробно Prophet.
Отличное предложение

Когда начинал писать статью, то собственно так и планировал от простого к сложному и примерчиков думал разных добавить, в том числе с разных соревнований, причем нашел несколько хороших на мой взгляд примеров, но разобрать не успел — жизнь внесла свои коррективы :)

На этом примере, мне показалось не разумным использовать градиентный бустинг, так как в принципе деревянные модели не умеют обобщать, а учитывая наличие здесь явно выраженного тренда требует как раз таки способность обобщения, а с другой стороны после того как ряд стал стационарным (когда мы убрали тренд), то необходимость в деревяшках тоже отпала.

LSTM модель здесь вообще не зашла. Можно конечно было еще что-то погородить, но по ощущениям это как микроскопами гвозди забивать :)
Вот интересная статья на Хабре про то как используются RNN для прогноза ряда динамики

Также мой интерес привлекла модель Prophet от Facebook, но дальше того, что собрал по ней несколько статей дело не ушло. На всякий случай приведу их:


Спасибо, что прочитали статью :)
собственно анализ текстов это самостоятельный процесс, который может применяться как в сельском хозяйстве, так и в нефтянке… применительно к этому случаю все еще проще — если предприятию нужно делать рассылку писем и при этом, например из 5-ти зависимых организаций рассылку нужно сделать только в одну, то вот пожалуйста :)
Спасибо за отличный материал. Столько лет прошло, а мне пригодилось :)
Классно излагаете мысль без лишней воды
У меня ни гитхабе или на платформе соревнования конечно :) ссылки есть в конце статьи. Могу продублировать
Гитхаб — github.com/AlexanderPetrenko83/Articles/tree/master/20201130_SIBUR_CHALLENGE
Платформа — sibur.ai-community.com/competitions/4/tasks/12

Через неделю, может раньше я выложу свое окончательное решение по этой задаче на гитхаб
Смотрите, в начале статьи говорится, что для понимания материала, читатель должен иметь минимальный опыт в data science (хотя бы пройти первые два курса специализации «Машинное обучение и анализ данных» или что-то сопоставимое). То есть, читатель должен уметь решать задачи бинарной классификации, предсказывать вероятность отнесения объекта к тому или иному классу. Если понимание как это нужно делать есть, то остальное относительно просто.

Скажу по себе, первые несколько часов, я совсем не понимал как подступиться к решению задачи. В голову приходили какие-то большие матрицы слов и было не ясно как их использовать. В общем полная каша. Судорожное чтение статей по работе с текстом тоже не принесли результата. А потом, как будто по щелчку появилась первая рабочая мысль, совершенно несвязанная с data science, примерно следующего содержания. Раз нам нужно из пары названий компаний определить зависимы ли они или может вообще это одна и та же компания просто написанная с ошибкой или на другом языке, то значит надо просто найти общее между названиями компаний. Именно эта мысль сдвинула меня с места. Дальше стало понятно, что нужно как-то перевести в цифры схожесть и различие слов в названии компаний из каждой пары датасета. Сначала я просто искал в каждой паре повторяющиеся слова в названиях компаний и фиксировал их количество, а также количество разных слов. Понятно, что чем больше совпадений слов, тем больше вероятность, что речь идет об одной и той же компании. Однако, очень быстро стало понятно, что в названиях компаний могут быть названия стран (например 'total usa' и 'daewoo usa'), городов, форм собственности (ООО, ЗАО, ltd и т.д.) и это приводит к тому, что повторяющиеся слова есть, а компании совсем разные. Значит нужно исключить часто повторяющиеся слова. А дальше я нашел файл от организаторов конкурса, в нем было базовое решение, которое содержало еще одну интересную фичу — дистанцию Левенштейна. Такими шажками и получился план исследования. Как можете заметить здесь data science не так и много: только дистанция Левенштейна и модель обучения — одно решающее дерево.

Надеюсь как то помог Вам :)
Согласен, просто было жизнерадостное настроение и много эмоций. Надеюсь они Вам не сильно испортили впечатление от статьи :)
Не успело пройти и 10 минут, а знатоки уже нашли ошибку :)
Мы сначала перевели текст в нижний регистр, а потом начали удалять слова типа ПАО ЗАО…
По результатам всех замечаний и иных инициатив, по завершению соревнования, на гитхаб выложу поправленное решение. Посмотрим какой будет скор.
Илья, было бы совсем здорово, если бы к статье прилагался хотя бы один пример с реальными данными и кодом для каждого метода, описание (интерпретация) и на выходе сравнение доверительных интервалов полученных разными методами. А так придется исследовать Ваши ссылки самостоятельно :) но и на том, спасибо
Хорошая статья, спасибо.
Есть несколько небольших вопросов
Первый, касательно обособления коэф-та w_0. Зачем это делается?
Второй, в функционале качества коэф-т альфа у Вас стоит перед вектором w, в тоже время в системе условий коэф-т альфа стоит перед суммой «кси» итых. Откуда такая трансформация?
Третий, откуда собственно этот коэф-т альфа взялся?
Теперь мне вот захотелось как можно быстрее реализовать на РЦБ свой алгоритм, чтобы сказать «Да все работает! Просто надо немного проявить гибкость мышления», ну или на крайний случай — «Да Вы были правы, черт подери! Лютые комиссии губят на корню все благие намерения.» :)
Спасибо за поднятую тему, оказалось очень актуально

Толстые пальцы, это в общем случае, когда какие-то трейдеры крупных фондов, допускают ошибки в заявках (цены, количество), в т.ч.из-за своих толстых пальцев :))

ru.qwe.wiki/wiki/Fat-finger_error
Комиссии не считал, так как давно не торгую. Этим летом, если получится, то вернусь на рынок. По результатам, вероятно, напишу статью. И на случай «толстых пальцев» тоже посмотрим :)
«Толстые пальцы» это же из казуса с Самсунг или какая-то специфичная терминология?
ну это в начале 2000-х было, то есть почти 20 лет назад

да и что уж говорить, все-таки ЮКОС — исключение, нежели закономерность

плюс и новость там была не о выпуске какой-то неудачной продукции, а это было политическое решение
Если из-за одной новости о начале выпуска какого-то неудачного продукта компания может допустить технический дефолт или совсем обанкротиться, то скорее всего эта компания вряд ли имеет высшие кредитные оценки и ее бумаги вряд ли находится в ломбардном списке ЦБ. И торговля такими бумагами изначально считается высокорискованной. Я же говорил о торговле облигациями, которые заменяют банковские депозиты, так как посыл статьи был именно в альтернативе депозитов, а не в погоне за сверх доходами. А это в первую очередь надежность эммитентов.

За последние 10 лет в России я не припомню банкротств эмитентов т.н.голубых фишек или субъектов РФ из-за одного неудачного решения. Так что мне такой фильтр о котором Вы говорите не нужен. Здесь важнее всего будет фильтр на отсев не надежных эмитентов, у которых есть риск банкротства/не выполнения обязательств.

Насчет тарифов. Уже не в первый раз пишу о том, что более 10 лет назад вышел с РЦБ и как раз статья меня побудила к возвращению. Про тарифы еще предстоит узнать. Но когда я торговал, тарифы не были уж больно грабительскими, сейчас по логике они должны быть еще ниже. Но здесь могу ошибаться.
именно это и имелось ввиду

по старой памяти, основным препятствием для проведения таких сделок раньше была низкая ликвидность. Как сейчас — не знаю

В июле/августе буду входить на рынок спустя более чем 10 летнего перерыва. Может что-то изменилось
так за счет курсовых изменений стоимости облигаций и условно гарантированного дохода

Ну например, это чисто теоритическая ситуация, Вы считаете, что бумаги Роснефти и Газпрома равнозначны с точки зрения риска банкротства и неплатежей и сроки погашения облигация плюс/минус одинаковые. Но когда, Вы решились на покупку, по Роснефти был доход 5%, по Газпрому 4,7%. Вы берете Роснефть, так как она дает Вам большую доходность.
Предлагаю на этом этапе внести уточнение — эти облигации с купонным доходом, то есть доход выплачивается раз допустим в квартал.
Прошел допустим месяц с момента сделки. Никаких финансовых потрясений не происходило, спекулятивных новостей не было, а значит за месяц цены на облигации Роснефти и Газпрома в общем случае должны были немного вырасти, так чтобы сохранить доходность для других покупателей бумаг на том же уровне: 4,7% и 5%.

Но!!! Допустим в какой-то момент, какой-то фонд решил затариться бумагами Роснефти и они начали расти в цене. Доходность бумаг в таком случае будет падать. Допустим она упала до 3,5%. А бумаги газпрома показывают такую же доходность как и месяц назад — 4,7%. В этот момент бот и действует: он продает Роснефть, и покупает Газпром.
Что Вы получите в итоге? 4,7% годовых по купону от Газпрома плюс курсовая разница в (5-3,5) 1,5% от сделки с Роснефтью.
Безусловно это очень упрощенная модель и мысли о таком боте у меня были более 10 лет назад. Тогда мне казалось это возможным, но торговал в то время я ручками.
Не уловил сарказма.
Предлагаю не вырывать текст из контекста. В самом начале комментария я обозначил, что есть список равнозначных бумаг, мы с ним и работаем. Что это значит?
Например у нас в списке облигации только эмитентов с наивысшим кредитным риском, которые находятся еще и в ломбардном списке ЦБ. Вероятность банкротства таких эмитентов крайне низкая, еще ниже риск их непогашения. Соответственно задача бота ловить разницу изменений стоимости таких облигаций и на этом зарабатывать дополнительно к облигационному доходу.
Ну или еще один Вам пример — облигации разного выпуска одного эмитента. Не знаю как сейчас, а раньше, лет 10-15 назад были и такие варианты. Понятно, что разные бумаги одного эмитента могут быть по разному защищены, однако мы с самого начала договорились иметь ввиду равнозначные бумаги.
Повторюсь, в этой схеме наиболее значимым является ликвидность бумаг.
И да, еще раз, прошу не вырывать слова из контекста. У меня нет бота, который будет что-то предсказывать и создавать такой бот я не намерен. Вообще заниматься предсказаниями на рынке бумаг дело на благодарное.
не читал :)
я для себя давно еще решил не торговать в кредит, да и производные бумаги меня тоже настораживают
Как я и сказал раньше, это условный арбираж (то есть не классический), возможно кто-то скажет это не арбираж вовсе. Так что прошу сразу не критиковать жестко :)
В чем суть. Допустим мы составили список из 10 облигаций, которые, как мы считаем равнозначны между собой в соотношениях (например как пары евро/доллар, евро/рубль, доллар/рубль). Затем мы выбрбали наиболее доходную бумагу, пусть это будет бумага №7 и купили ее. Теперь мы ждем, когда какая-нибудь другая бумага из списка будет показывать большую доходность или же наша бумага просто подоражет относительно других. И вот здесь наступает момент, когда нам требуется быстро переложиться из бумаги №7 в более доходную.
Основная проблема с облигациями — низкая ликвидность. Поэтому не факт, что если одну бумагу из списка легко будет купить (более доходную), то другую, также легко можно будет продать из-за отсутствия предложения. А сделать то это нужно одновременно.
Но это очень упрощенный подход, на практике всегда возникает куча нюансов. Надеюсь к концу лета пройти весь этот путь, после чего тоже смогу написать статью :)
Спасибо за статью. Много лет назад ушел с рынка ЦБ, а некоторое время назад пришел к выводу, что пора вернуться. Как раз думал о том, что стоит написать какой-нибудь алгоритм под себя. Не знаю, воспользуюсь ли я Вашими наработками, но толчок в нужном направлении получил.
Плюс для себя буду добавлять возможность условного арбитража по облигациям. То есть у меня будет список облигаций, которые бот сможет покупать и продавать для получения чуть большей доходности. Это на самом деле достаточно простой алгоритм, но тут действительно вопрос ликвидности очень важен.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность