Не далее как вчера
Мальчик buybuy написал топик
Рыночный профит — прогноз или паттерн?, где в ходе обсуждения он загорелся желанием использовать ML для своих задач и возник такой диалог:
3Qu, нивапрос
Давай ему (ML) реальный рыночный сэмпл скормим? )))
Если не подавится — бабла поднимем по самое не балуйся )))
Практически гарантирую )))
С уважением
Мальчик buybuy
…
Мальчик buybuy, Запасы данных у меня почти бесконечные
Постановка задачи тоже понятна
Мне непонятна.)
Подготовь данные для обучения, скажи каким ML обучать. Так и быть, накормлю твоими данными.
Только расскажи чему и на чем учим. Верняк скажу, что в такой постановке не прокатит и данные не подходят.) Поди туда не знаю куда, принеси то, не знаю что, или дай бабла не прокатит.
3Qu
.
3Qu, я понятия не имею, как обучаются ML
Мальчик buybuy
Далее мы договорились, что, возможно, вместе поработаем с ML. Однако, чтобы вместе поработать, нужно, чтобы товарищ хоть что-то понимал в специфике обучения ML. Хотел было написать в ответ коммент, но для коммента слишком громоздко получается, благодаря чему появился этот топик.
Для начала обучим ML таблице умножения от 0 до 10.
Эту задачу можно решать двумя путями: классификацией и регрессией.
Классификация — это задача раскладывания яблок, апельсинов и ботинок лежащих в одной куче по разным ячейкам. Для таблицы умножения нам понадобится 101 ячейка от 0 до 100.
Регрессия — это уже больше задача, типа, вычислительной, но ML не оч хорошо справляется с вычислениями и будет предлагать нам не точные, а наиболее вероятные ответы.
Короче, выбор конкретного метода обучения в зависимости от конкретной задачи за вами.
Итак, для таблицы умножения берем ML с двумя входами для сомножителей и одним выходом для произведения. Готовим обучающую последовательность вида 5*5 = 25, 6.8*3.2 = 21.76,… итак несколько тысяч таких примеров, может поменьше. Подаем на вход сомножители, смотрим на ответ ML, и если ответ неправильный, запускается процесс меняющий параметры или даже структуру ML в рамках выбранного нами метода.
Когда обучение завершено, можно подавать на вход сомножители и на выходе видеть ответы. Мало того, в процессе обучения у ML появляются способности к обобщению и она даст более-менее правильные ответы даже на те сомножители, которых не было в обучающей последовательности.
Напомню, ML не оч приспособлена для решения прямых вычислительных задач, но и с ними она может неплохо справляться. Достигается это тем, что в ML при обучении строятся некие гиперплоскости, и в этом пространстве ищутся решения. Практически, это похоже на апроксимацию.
Обратите внимание, что для обучения ML нужен Учитель, который знает правильные ответы на все поставленные при обучении вопросы.
Есть еще так называемое обучение без Учителя, когда ML начинает работать с реальной средой, но здесь нам понадобится Оценщик, который контролирует правильность действий ML и в случае ошибки запускает механизм обучения. Т.е., без Учителя по любому никуда.)
Теперь рассмотрим задачу прогнозирования знака свечи по двум предыдущим свечам, предложенную нашим Мальчиком. Задача эта даже проверялась на Smart-Lab и плохонько, но работала. Решим ее с помощью ML.
Здесь мы на истории уже знаем правильный ответ. На входы ML подаем нормированные приращения свечей (dС = Close — Open), на выходе получаем знак, а можно даже и предполагаемый размер следующей свечи. Для обучения используем dC1, dC2 и как правильный ответ dC3, и так несколько тысяч выбранных случайно из истории троек. Здесь тоже можно использовать классификацию, если нужен только знак след-й свечи, либо регрессию, если мы хотим получить и предполагаемый размер свечи. Далее, обучаем как в первом случае.
Если между размерами свечей существует сильная связь, то ML идеально справится с задачей. Если связь слабая, но хоть какая-то есть, то ML ее также обнаружит и будет прогнозировать не хуже алгоритма
Мальчик buybuy, а скорее всего, даже лучше. Вы че думаете, яйцеголовые от нечего делать ML в своих исследованиях применяют для чего ни попадя.
Ну, вот, пожалуй все про обучение ML. Если что еще надумается, дополню.
PS Критика в комментах не принимается, писал как можно проще. Если хотите дополнить — дополняйте.