Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
To: CyberCortex
Извини СанСаныч что встряю.
Не мог пройти мимо такого верхоглядства и агрессивного непрофессианализма.
Рассмотрим по порядку утверждения автора из его описания прикладной программы
Цитата: «Преимущества CyberCortex в сравнении с существующими аналогами:
Используемый алгоритм. Для многих трейдеров технологии из области искусственного интеллекта начинаются и заканчиваются на избитой теме классических нейронных сетей. Но алгоритм бустинга, реализованный в CyberCortex – это на порядок более мощный и современный инструмент(?), потому что: “
Возражение:
Откуда это пренебрежительно величественное мнение о многих трейдерах?Вообще эта область называется «Машинное обучение», искусственный интеллект это несколько другое. Уверен, что многие трейдеры знакомы с большим количеством типов нейронных сетей о которых Вы даже не слышали ( глубокие сети, сверточные и другие современные ). Тема нейросетей избита для тех кто ограничился изучением MLP. Спешу Вас огорчить, тема нейросетей сейчас получила второе дыхание после разработки методов глубокого обучения и для знающих и умеющих это далеко не закрытая тема. Кроме этого нам известны много других алгоритмов классификации, которые реализованы в многочисленных пакетах языка R.
Алгоритм бустинга в самых разнообразных модификациях известен довольно давно (1996) и никак не является более мощным чем нейросетевой. Кстати нужно было бы озвучить по какому конкретно алгоритму работает Ваша программа. На вскидку по пакетам R -
“ADA”- адаптивный стохастический бустинг. одна из моих любимых, реализовано три модификации оригинального алгоритма : Gentle-, Logit-, and Real AdaBoost
«adabag” - в пакете применены мультиклассалгоритмы Adaboost.M1(Freund and Schapire's), AdaBoost-SAMME(Zhu et al., 2009) и Breiman's Bagging algorithm;
«boost” - содержит набор методов бустинга таких как - 'BagBoost', 'LogitBoost', 'AdaBoost' and 'L2Boost' дополненных предвыбором признаков(предикторов) с помощью Wilcoxon test statistic;
«pga” - содержит ансамбль алгоритмов объдиняющий AdaBoost и Random Forest эволюционным алгоритмом( в простонародии генным)
Если у Вас оригинальный всемирно неизвестный алгоритм — донесите хотя бы в общих чертах отличие от существующих и какие то преимущества над ними да и ссылку на описание желательно бы.
Как видите выбор довольно широк.
Для тех кто не в теме. «Бустинг»(усиление) — метод ресемплинга предложенный первоначально для решения задач в областях науки, где изначально количество примеров(результатов экспериментов) для использовании их в стат расчетах было мало, добыть новые невозможно или очень дорого. Суть метода заключается в извлечении из первоначального небольшого набора выборку меньшего размера сформированную случайным образом. Эту процедуру повторяют многократно и в результате получают достаточно большую суммарную выборку которую и используют в последующем в стат расчетах.
Во первых. Рынок форекс не является случаем «дефицита данных». Напротив — это как раз случай «изобилия данных».
Во вторых. Длительный опыт исследования и применения бустинга и кроссвалидации на практике и в университетах показал, что эти методы нежелательно применять в процессе обучения, т. е. при выборе модели по внутренней ошибке. Но очень полезно на стадии оценки обученной модели, т. е. получении внешней ошибки. Поэтому для нашего случая «изобилия данных» разделение на train/valid/test при обучении идеальное решение. Есть много других тонкостей, которые нужно учитывать в процессе выбора и предподготовки данных и от которых в большой степени зависит результат моделирования, но это отдельная большая тема.
Из своего опыта длительных экспериментов с ADA могу сказать- иногда отличные результаты, иногда отвратительные = очень нестабилен.
Цитата: «Алгоритм не требует сокращать размерности входных данных и выискивать какие признаки несут информативность, а какие нет. Напротив, чем больше входных данных имеется, тем выше вероятность правильной классификации. Неинформативные признаки автоматически отсеиваются.”
Вопрос- каким таким волшебным образом отсеиваются неинформативные признаки? Определение(оценка) важности предикторов (importance) заложена в каждом алгоритме деревьев решения, но критериев по которым определяют важность довольно много и не все дают однозначные результаты. Вы как это решаете в программе?
Цитата: «Алгоритм не требует предварительной нормировки данных, и вообще, каких-бы то ни было предварительных манипуляций. Все данные автоматически приводятся к единичной дисперсии и нулевому математическому ожиданию.”
Единственные алгоритм который действительно не требует никакого препроцессинга это RandomForеst. Все остальные требуют различную предобработку. Вы очевидно хотели сказать, что Ваша программа процесс стандартизации (х минус среднее деленное на стандартное отклонение) выполняет за пользователя? Я не уверен, что это хорошее решение, так как существует еще по крайней мере десяток различных способов препроцессинга и нужно в каждом индивидуальном случае определять какой из них лучший.
Цитата: «Алгоритм, в отличие от нейронных сетей, не требует настраивать параметры обучения для того, чтобы получить оптимальный результат классификации.”
Неправда. Любой известный алгоритм бустинга имеет минимум два параметра которые нужно тюнинговать для получения лучшего результата.
Цитата:»Алгоритм практически не подвержен склонности к переобучению.”
Ложное утверждение. Любой алгоритм машинного обучения подвержен этой болезни-переобучение. Уменьшение риска получить переобученную модель достигается регуляризацией. На сегодня известно и успешно применяются в том числе и в бустинговых алгоритмах различные способы регуляризации.
Цитата:»Алгоритм позволяет классифицировать данные на произвольное число классов”
Это не есть достижение этого алгоритма. Сегодня практически все алгоритмы машинного обучения делают это.
Цитата:»Особенность реализованного алгоритма в том, что, если в данных содержатся закономерности, – они будут найдены. Напротив, если в данных закономерности отсутствуют, то прогнозы программы будут не лучше простого подбрасывания монетки, что, собственно, логично”
Может я Вас удивлю, но все алгоритмы имеют эту особенность.
Итог. Непонятный алгоритм, который Вы предлагаете за деньги, можно реализовать прозрачно, просто и в различных вариантах на языке R и заметьте совершенно безвозмездно, т. е. бесплатно. Программа эта будет длиной 10-15 строк кода. Это первое. Второе, Неоспоримое преимущество языка R – он разрабатывается и поддерживается мировым научным сообществом (практически все университета мира) а сейчас и гигантами программного бизнеса. Майкрософт запустила облачный сервис «Azure” с Microsoft Azure Machine Learning Studio” которая позволяет в облаке произвести все стадии создания, обучения и оценки модели и в последствии получать предсказания отправляя данные в сервис к своей модели. Сервис основан полностью на языке R и имеет графический интерфейс позволяющий свести процесс к «рисованию» картинки (это я упрощаю конечно). Если раньше язык был де факто стандартом в исследовательских кругах, то сейчас он практически стал таковым в прикладной и промышленной области.
И последнее. Я не против того, чтобы Вы монетизировали свой труд воплощенный в программу. Это нормально. Я против того, чтобы Вы в целях рекламы приписывали продукту несуществующие или преувеличенные качества. Это выглядит непрофессионально.
Щательней надо. Как говорил классик.
Успехов
Hello!
"Вообще эта область называется «Машинное обучение», искусственный интеллект это несколько другое." - Машинное обучение - это подраздел искусственного интеллекта. Но я уверен, что вы просто забыли об этом. Бывает...
О новых типах нейронных сетей я слышал:) И, если вы заметили, в описании к моей программе сказано "классических нейронных сетей", а не всех сетей. Под классическими я подразумеваю MLP, его производные, сеть Хопфилда, вероятностная сеть и прочие.
"Откуда это пренебрежительно величественное мнение о многих трейдерах?" - Это мегагипервеличественное мнение сложилось на почве того, что подавляющее большинство трейдеров, которые пытаются использовать технологии слабого искусственного интеллекта, использует классические нейронные сети.
"Кстати нужно было бы озвучить по какому конкретно алгоритму работает Ваша программа." - адаптивный бустинг решающих деревьев одинарного уровня (пней). Там же ж написано. Так как я реализовывал его с нуля сам, не видя перед собой какой-либо образец для подражания, да и в интернете не нашлось нормального описания, я применил некоторые свои эвристики при его разработке.
"Для тех кто не в теме. «Бустинг»(усиление) — метод ресемплинга предложенный..." - я не знаю откуда вы это скопипастили, но, по-моему, то, что описывает это определение, это не бустинг, а бутстреп:) Бустинг - это усиление простых классификаторов. В бустинге не получают одну большую выборку N из малой m. В бустинге для каждого последующего простого классификатора преимущественно отбираются примеры, неправильно классифицированные предыдущим. Количество примеров всегда равно первоначальному. После этого особенно смешно читать ваше серьезное: "Для тех кто не в теме." xD
"Во первых. Рынок форекс не является случаем «дефицита данных». Напротив — это как раз случай «изобилия данных»." - ну тут смотря с какой стороны подходить. Если вы имеете в виду форексные котировки и кучу "псевдоматематических" индикаторов от которых веет стариной и различных производных от них, то да, дефицита нет. Но так как вы углубились в другую степь, случайно спутав бустинг с бутстрепом, то ваша сентенция останется без внимания, так как я понятия не имею какого ответа вы ждете.
"Длительный опыт исследования и применения бустинга и кроссвалидации на практике и в университетах показал..." - да ладно? Boring...
"Из своего опыта длительных экспериментов с ADA могу сказать- иногда отличные результаты, иногда отвратительные = очень нестабилен. " - Ваш опыт для нас - не аксиома, возможно, вы перепутали какие-нибудь кнопочки там или еще чего, подобно тому, как путались чуть выше. I don't know.
"Вы как это решаете в программе? " - каждый простой классификатор сосредотачивается на том признаке, при использовании которого получается наименьшая ошибка в классификации. Если признак не информативен, то ошибка высока. Вот и вся магия. Давайте оспорьте эту логику еще одним научным бредом о том, как в университетах... Нет серьезно, напишите что-нибудь.
"Я не уверен, что это хорошее решение" - вам не кажется, что вы слишком категоричны? Сдается мне, разработчику софта немного виднее, что нужно добавить, чтобы работало как задумано.
"Неправда. Любой известный алгоритм бустинга имеет минимум два параметра которые нужно тюнинговать для получения лучшего результата." - какие у вас там в R нужны параметры? Я записываю...
"Цитата:»Алгоритм практически не подвержен склонности к переобучению.” Ложное утверждение..." - Мне так нравятся ваши высказывания:). Ну, во-первых, там сказано, что "практически". На русском языке это означает "почти". Но если в данных существует устойчивая закономерность, например, как при эксперименте с распознаванием автомобильных номеров, то да, алгоритм не переобучается. На тренировочной выборке ошибка уходит в ноль, а на тестовой выборке ошибка остается постоянной, около 1%. Вопросы?
"Это не есть достижение этого алгоритма. Сегодня практически все алгоритмы машинного обучения делают это." - вы еще скажите, что это недостаток. Это преимущество по-сравнению с бинарным классификатором. Или вы так не считаете?
"Может я Вас удивлю, но все алгоритмы имеют эту особенность." - Читайте внимательно "если в данных содержатся закономерности, – они будут найдены." Акцент мной ставится на этом. Главная проблема в алгоритмах машинного обучения заключается в том на сколько полно будут найдены эти закономерности. В моей программе с этим все нормально. По вашей логике получается, что имея какой-нибудь MLP, людям не стоит разрабатывать другие алгоритмы, ведь многослойный персептрон - это алгоритм машинного обучения, а вы говорите, что "все алгоритмы имеют эту особенность".
" Непонятный алгоритм, который Вы предлагаете за деньги" - я предлагаю не алгоритм, а программу. Против языка R я ничего не имею. Но понимаете в чем соль: не все люди могут и будут разбираться в логике и синтаксисе языка программирования, разбираться в настройках алгоритмов, конвертировать какие-то файлы и цеплять к терминалу через различные костыли, чтобы использовать результат вычислений. Если кто-то умеет все это делать, то я его поздравляю. Некоторым людям нужно, чтобы это просто работало "из коробки". Можно подумать я бегаю за вами и заставляю вас приобрести наш софт. Пользуйтесь R, уверяю, от этого я не расстроюсь.
"Я не против того, чтобы Вы монетизировали свой труд воплощенный в программу. " - Простите, ведь я забыл спросить о вашем мнении на этот счет. Но раз вы не против, то я спокоен.
"Я против того, чтобы Вы в целях рекламы приписывали продукту несуществующие или преувеличенные качества. " - а я против того, чтобы вы писали о том, в чем не разбираетесь.
Спасибо. Я кончил. Как говорил классик.
P.S.: Я всего лишь отвечаю на агрессию. Не обижайтесь. Peace.
P.P.S.: И да, зря вы начали со мной спорить:)
Я не понимаю содержание Скрежет обучение режим? В частности, о том, как использовать платформу MT4 MQL для предварительной подготовки вки?
Ребята, приветствую! Вашу энергию, да в правильное русло!
Поздравляю, у Вас стратегическая ошибка!
Цитирую первую строку Вашей статьи: "Изначально, целью построения торговой системы является предсказание поведения некоторого рыночного инструмента, например, валютной пары".
Дальше читать статью даже не стал. Лучше изучите ВСЕ методы прогнозирования!
Открою Вам секрет: целью построения торговой системы является "Создание модели (Вашего) поведения".
Не важно что будет делать рынок (лидер), важно что будете делать Вы: И, ИЛИ, НЕ.
Например: И - погоня за лидером (повторение действий лидера).
Попробовал установить rattle на линуксе (Кубунту), просто так это не вышло, очень много зависимостей для компиляции кода.
Путём анализа ошибок установки получил такой список пакетов которые нужно установить в самой операционной системе до установки rattle в R:
в консоли -
$ sudo apt-get install libxml2-dev unixodbc-dev libssl-dev libgtk2.0-dev
И потом уже можно запускать установку в самом R -
> install.packages("rattle", dependencies=TRUE)
А если всё равно будет не хватать ещё каких-то *.h файлов для установки rattle - нужный пакет можно найти так
$ sudo apt-get install apt-file
$ apt-file update
$ apt-file search /someheaderfile.h
Может это поможет кому-то ещё :)
После обновления опреационки rattle перестал работать, вызов rattle() выдаёт ошибку
Error in method(obj, ...) : Invalid root element: 'requires'
Первый способ который почти помог - запускать rattle с дополнительным параметром
Оказалось что версия rattle устанавливаемая с cran устарела, нужно переустановить rattle указав репозиторий разработчиков чтоб получить новую версию.rattle(useGtkBuilder = TRUE)
окно программы хоть и открылось, но кнопки не работали, способ до конца не помог.
install.packages("rattle", repos="https://rattle.togaware.com", type="source")
И после этого всё заработало нормально.