Я пишу на R года 3, на Python даже не пробовал. Все плюсы, перечисленные в статье также поддерживаю. data.table еще упомяните, это бомба. Но слабое место в глубинном обучении. mxnet под R как практически единственная возможность писать глубокие нейросети выглядит довольно убого по документации и виду кода по сравнению с фреймворками на Python. В остальном R позволяет крутить данные во всех сферах, от физики, до геномики, до маркетинга и делать эффективные презентации, которые может быть даже покрасивее будут, чем Jupiter при условии встраивания JS таблиц и графиков. Время разработки также очень сжатое: за полгода можно наваять огромный прототип продукта, который займет года 3 на реализации на Плюсах, например (с Python не сравнивал).
Есть комментарий к вопросу детекции аномалий во временных рядах. Если порождающий ВР процесс допускает возникновение в некоторые моменты времени сильные всплески (4 сигма и более, если использовать ваш пример), то эти значения вполне могут быть нормальными. Мой пример: раз в день пользователь копирует 1000 файлов вечером, а в остальное время работает с 10-20 файлами. Получится очень хорошая сезонность. Я детектирую аномалии построением модели ВР, где учитываются все возможные регулярные комоненты и средний уровень сигнала. Оставшийся же шум добавляется к каждой точке прогноза в виде доверительного интервала прогноза, и уже доверительный интервал контролируется значением z (или t). Если значение ВР выходит за доверительный интервал прогноза, это статистическая аномалия.
Офис отличный, да. Люди разные ))) Я ушел в среднюю компанию оттуда на рост во всех отношениях. Только об офисе и некоторых коллегах и скучаю в результате.
Бизнес жаден в принципе. При мне уходили дядьки, которые были ключевыми, и их увольняли меньше чем за день с пинком. Я работал в Align Technology (московский R&D). Ну, скажу так, большой энтерпрайз после этого я почти возненавидел. Хотя, по плюхам был и хороший ДМС (около 50 000 в год, на себя и семью, с настоящей стоматологией). И годовые премии и индексация 10-20% в год (у меня). и акции. И все это на фоне ушлепанов-манагеров, которые только и делают, что бряцают своими доходами и бродят по митингам. Очень бесило многое, особенно свое бессилие что-то поменять.
Потому что бизнес — это жадный зверь. Придет один, сделает, придет второй — доделает. Скорее всего, компания еще российская. В западных помимо зп есть привлекательные stock, bonuses и другие плюшки (а не чай и печеньки :) ).
Вот это уже плохо: «работа остаётся источником денег». Многие в корпорациях так и живут. В моей бывшей корпорации это называлось «сидеть под корягой». Но меня это лично добивало, именно то, что я сам таким быть не хотел, а спорить было трудно. А в небольших компаниях таких солдат нанимают когда идет количественный рост, обычно. А в хорошем случае такие там не очень нужны, а нужны — с эмоцией, самоотдачей (особенно в начале зарождения продукта).
Могли бы вы ткнуть в строку кода, где начинается описание Mean Abs Err? Например, здесь: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/error_functions.h в строках 100 и 104 я вижу расчет первой и второй производной для L2. Интересует для L1. Если не затруднит…
Я думаю, в течение года появятся проверки алгоритма на разных данных и независимое сравнение с другими методами. Тогда можно будет говорить, реально ли вы добились меньшей переобученности и побеждаете другие топовые бустинг-алгоритмы. Спасибо. На R использовать можно, да?
Спасибо! Ну, я, скажем так, верю, что правильная конфигурация сети может решить такие задачи, но как обычно встает вопрос стоимости подбора правильной конфигураци. Может быть — бесконечно много.
Я вот на что хотел обратить внимание. Нормальным является первичная предобработка в виде компонента d(x) (порядок дифференцирования). Можно сделать d(log(x)), если приращения не стационарны по дисперсии. Это легко.
Далее, может быть следующая вещь. Например, сезонность на лаге 1000, то есть, автокорреляция значимая. Но не будешь же делать окно свертки таким большим… Возможно, несколько слоев с окном 200 помогут, но не факт (не очевидно). Здесь только экспериментально можно понять?
пока нейросети работают хорошо только там, где данные обладают одним свойством — локальная корреляция: картинки, текст, звук
на остальных данных лучше работает xgboost пока
Понятно объясняете.
Во временных рядах (мне интересная тема) может быть локальная корреляция… Но есть и много нюансов. Например, во-первых, надо стационаризовать ряд, иначе локальная корреляция будет наведенная от трендов. Ок, сделали это. Теперь может не быть локальной корреляции (линейной). Но может быть корреляция локальной дисперсии (по второму моменту), не объясняя знак приращения. Не совсем понятно, поможет ли свертка в таком случае. ARCH процесс… Сезонность с большим лагом…
Рейтинг хороших предсказателей бы складывался из расчета мат.ожидания заработанных пунктов в купе с просадкой, которую переживали бы сделки, если бы следовали этим предсказаниям. Отношение прибыли в пунктах к просадке в пунктах это уже хороший показатель. То есть, тут все сложно и огромный простор для стат. анализа. Например, среди случайных траекторий, лучшей будет та, которая в-тупую будет линией на уровне последнего значения цены. Но на это не заработаешь. А если предсказанная траектория хорошо описывает траекторию цены, это маленькая просадка и большая прибыль.
На статистически значимых прогнозах (после накоплений достаточной истории) уже можно торговать как на сигналах…
А вы не могли бы поделиться вашим опытом? Какой код уже можно назвать избыточным, чтобы начать выносить функции в зависимости/пакеты?
Братцы, кто уже штуку гринов на крипторубоь поменял? Отпишитесь, как оно, прибыльно?
Спасибо за ссылку.
А вот еще вопрос — скорее к авторам — есть ли встроенная функция MAE? В XGBoost ее не было, а писать производные было весьма не тривиально.
В GBM такая ф-ия потерь есть по умолчанию.
Я думаю, в течение года появятся проверки алгоритма на разных данных и независимое сравнение с другими методами. Тогда можно будет говорить, реально ли вы добились меньшей переобученности и побеждаете другие топовые бустинг-алгоритмы. Спасибо. На R использовать можно, да?
Мне непонятно, на какой части данных делалось сравнение методов. Это отложенные выборки?
Также не ясно, как был проведен тюнинг: с кроссвалидацией или без нее.
Я вот на что хотел обратить внимание. Нормальным является первичная предобработка в виде компонента d(x) (порядок дифференцирования). Можно сделать d(log(x)), если приращения не стационарны по дисперсии. Это легко.
Далее, может быть следующая вещь. Например, сезонность на лаге 1000, то есть, автокорреляция значимая. Но не будешь же делать окно свертки таким большим… Возможно, несколько слоев с окном 200 помогут, но не факт (не очевидно). Здесь только экспериментально можно понять?
Понятно объясняете.
Во временных рядах (мне интересная тема) может быть локальная корреляция… Но есть и много нюансов. Например, во-первых, надо стационаризовать ряд, иначе локальная корреляция будет наведенная от трендов. Ок, сделали это. Теперь может не быть локальной корреляции (линейной). Но может быть корреляция локальной дисперсии (по второму моменту), не объясняя знак приращения. Не совсем понятно, поможет ли свертка в таком случае. ARCH процесс… Сезонность с большим лагом…
Рейтинг хороших предсказателей бы складывался из расчета мат.ожидания заработанных пунктов в купе с просадкой, которую переживали бы сделки, если бы следовали этим предсказаниям. Отношение прибыли в пунктах к просадке в пунктах это уже хороший показатель. То есть, тут все сложно и огромный простор для стат. анализа. Например, среди случайных траекторий, лучшей будет та, которая в-тупую будет линией на уровне последнего значения цены. Но на это не заработаешь. А если предсказанная траектория хорошо описывает траекторию цены, это маленькая просадка и большая прибыль.
На статистически значимых прогнозах (после накоплений достаточной истории) уже можно торговать как на сигналах…