Добрался до 5 недели Курса Яндекса и ВШЭ по машинному обучению. После достаточно напряжного начала, когда было необходимо поставить и освоить кучу программ, далее обучениях пошло достаточно просто — лекции вполне доступные, а задания решаются в несколько строчек кода, особенно если немного покопаться в описании библиотек.
Дополнительно решил послушать лекции Школы анализа данных Яндекса — материалы во многом пересекаются, но охват больше и раскрывается много интересных интерпретаций алгоритмов машинного обучения и их взаимосвязей.
Записался на курс Введение в машинное обучение Яндекса и ВШЭ. Лекции достаточно легкие, но практические задания даются непросто, так как знания по программированию близки к нулю. Возможно дальше пойдет легче, но пока кучу времени уходит на установку и освоение софта, чтение документации к библиотекам, освоение регулярных выражений и т.д. Первый блок заданий удалось сделать.
Система Quill способна практически мгновенно формировать бизнес-отчеты с заданной периодичностью — и все это без вмешательства человека http://narrativescience.com
Пример технологии Quill (Система написания нарративных текстов) демонстрирует, насколько уязвимыми для автоматизации оказываются задачи, которые когда-то считались исключительной прерогативой высококвалифицированных профессионалов с высшим образованием. Опрос экспертов: «Какой будет доля новостных материалов, написанных с помощью программных алгоритмов, в ближайшие 5 лет. Ответ: более 90 %»
Деятельность компании Target, Inc. является примером куда более спорного подхода к использованию огромных массивов чрезвычайно подробных данных. Компания с очень большой долей вероятности предсказывать наличие беременности на раннем сроке у покупательниц на основе анализа продаж по двадцати пяти различным видам косметической и медицинской продукции. Проводимый компанией анализ был настолько точным, что даже позволял с высокой степенью точности определять срок беременности у конкретной женщины. Получив эти данные, сотрудники Target начинали забрасывать женщин предложениями о покупке товаров для беременных, да еще и на столь раннем сроке, что во многих случаях ближайшее окружение женщины даже не знало о ее положении.
Оригинал опубликован на blog.dti.team
Читать предыдущее исследование: Интернет вещей
В работе Oxford Martin School 2013 года говорилось о том, что 47% всех
рабочих мест может быть автоматизировано в течение следующих 20 лет. Основным драйвером этого процесса является применение искусственного интеллекта, работающего с большими данными, как более эффективной замены человеку.
Машины теперь способны решать все больше процессов, за которые раньше отвечали люди. Кроме того, делают это качественнее и во многих случаях дешевле. О том, что это значит для рынка труда, в июле этого года говорил Герман Греф, выступая перед студентами Балтийского федерального университета им. Канта:
“Мы перестаём брать на работу юристов, которые не знают, что делать с нейронной сетью. <...> Вы — студенты вчерашнего дня. Товарищи юристы, забудьте свою профессию. В прошлом году 450 юристов, которые у нас готовят иски, ушли в прошлое, были сокращены. У нас нейронная сетка готовит исковые заявления лучше, чем юристы, подготовленные Балтийским федеральным университетом. Их мы на работу точно не возьмем.”
Предыдущие части сериала про машинное обучение
Часть 1. я думал-думал, я все понял — про машинное обучение в применении к трейдингу
Часть 2. грааль почти не виден

вот все говорят, что Смартлаб читать — только время терять.
Я не соглашусь.
Иногда можно встретить очень умных людей, и получить полезную инфу.
В комментариях к одному из моих предыдущих постов про машинное обучение, уважаемый пользователь AlexeyT сказал, что adaboost -алгоритм для лошков, и все пацаны на районе давно используют xgboost.
Мне стало стыдно перед пацанами, быстренько почитал про xgboost, не без танцев с бубном поставил его на свой третий питон, и начал фигачить торговую систему, уже на новом алгоритме.
По ходу нашел кучу багов, пофиксил их по мере сил.
Подключил к брокеру, настроил все эти его кривые web apis, и понеслось !
Пока что, результатом работы системы стала эпичная поездка на Красное Море (sea of red). С глубоким погружением к рыбам в акваланге.
Копался в статьях по алготрейдингу, решил присмотреться в сторону машинного обучения. Но это в моем случае не про какой-то искусственный интеллект с нейросетями, в нейросети пока не хочу лезть, слишком сложно. Для начала хочу использовать простые алгоритмы для классификации и оценки хороших точек входа на основе обучения модели на истории.
Я исходил из того, как сам разрабатываю обычно торговую систему: ищу хорошие точки входа на истории и классифицирую их. Но так как человеческие возможности ограничены, использую только 3 таймфрейма и около 10 индикаторов в сумме. Кроме этого, история в точности никогда не повторяется и нужна какая-то более умная модель, которая не просто сравнивает индикаторы, как делают сейчас мои роботы, а дает оценку данной рыночной ситуации на основе всей совокупности индикаторов.
С помощью машинного обучения можно создать и обучить много моделей по разным алгоритмам, эта область уже хорошо развита (Logistic regression, Linear discriminate analysis, Stochastic gradient boosting, Decision trees, Support Vector Machine, KNN и другие). Можно быстро попробовать разные модели (Spot-checking algorithms). Модели могут работать вместе и делать предсказания. Можно улучшать точность моделей (Algorithm parameter tuning, Ensemble methods). Можно посчитать точность предсказаний по модели, обучив сначала модель на части выборки, а затем протестировав ее на другой части выборки (resampling).
Как я понял, R для машинного обучения идеально подходит. Сделал первые шаги сегодня: cоздал модель по туториалу, которая определяет по размеру чашелистиков и лепестков растения ирис точный вид (всего 4 вида) какого-то одного растения(особи) на основе обучения по выборке из 500 других растений(особей).
Код:
# Скачивание и инициализация библиотек mlbench(используется для machine learning), caret (используется для нормализации данных)
install.packages("mlbench")
library(mlbench)
install.packages("caret")
library(caret)
# Краткая информация про базу данных iris
data(iris)
summary(iris)
# Определение тренировочной выборки
trainControl <- trainControl(method="cv", number=10)
# Оценка точности алгоритма Naive Bayes на данном dataset
fit <- train(Species~., data=iris, trControl=trainControl, method="nb")
# Вывод оценки точности
print(fit)
Сейчас я точно так же хочу сделать модель, которая на основе 30-300 хороших точек входа на истории определяет, насколько хороша данная пятиминутка для входа в лонг или шорт.
Что скажете? Есть ли там грааль? Есть ли у кого-то опыт использования машинного обучения для торговли? Что посоветуете?
Также представляю вашему вниманию грубую оценку того, на сколько в среднем ходят нефть Brent и Si за час и 1 день. Посчитал с использованием библиотеки rusquant на R. Также делюсь элементарным кодом.
# Инициализация библиотеки rusquant (русская версия от quantmod, поддерживает все функции quantmod)
library(rusquant)
# Получение исторических данных с Финама
getSymbols("SiM6", from=Sys.Date()-30, src="Finam", period="day")
# Рисуем график, чтобы увидеть данные
candleChart(SIM6)
# Расчет доходностей встроенной функцией библиотеки rusquant (унаследована от quantmod)
rr <- OpCl(SIM6)
# Цены закрытия
p <- Cl(SIM6)
# Получение абсолютного значения среднеквадратичного отклонения доходности
sd(rr)*mean(p)
[1] 757.7013
# Аналогично для часовика
getSymbols("SiM6", from=Sys.Date()-30, src="Finam", period="hour")
candleChart(SIM6)
rr <- OpCl(SIM6)
p <- Cl(SIM6)
sd(rr)*mean(p)
[1] 234.9929
#Аналогично для BRK6.