Обновить
51
0
Андрей@S_A

modelize.ru

Отправить сообщение

в ods в подобной дискуссии (не об этом на самом деле) мне сказали вот что


http://www.machinelearning.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B5%D0%BC%D0%B0%D1%85%D0%B5%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C


оттуда можно копать.

таких коробочных фреймворков нет, если не считать bayes_opt и гауссовские процессы.


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


примерно как нейросеть, которые универсальные аппроксиматоры. то есть решение в вашем случае такое: взять сетку с двумя скрытыми слоями размером в размерность данных и регуляризовывать ее уменьшением размера.


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


загляните также в архитектуры neural architecture search. я не расскажу как они работают на пальцах, но смысл там в поиске архитектуры.


но насколько мне известно, лёгких путей в пространстве моделей нет: ландшафт функции ошибки у моделей слишком рваный, в нем много перестановочных симметрий и других проблем.


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


А вообще, Монте-Карло на то и нужен, чтобы исследовать подобные проблемы, которые хренушки в лоб вычислишь. Так что поставьте эксперимент даже через простой randomized search, в том числе с размером датасета, и посмотрите на распределение метрики.

если речь про перебор гиперпараметров, лучше гауссовских процессов и bayes_opt пока лучше ничего не придумали.

Для задач классификации, например, есть такая вещь как Bayes Error Rate. Для регрессия аналога не знаю.


Что значит предел, в котором можно сравнивать модели — не очень ясно (мне до сих пор). Сравнивать можно хоть до посинения. Пока бизнес-метрика (см. ссылку выше) осмысленные значения даёт или поддаётся оптимизации.

А ну вот, в упомянутой книге ниже, как раз вот было про что-то подобное по вашему запросу. Я же помню что было что-то)
nbviewer.jupyter.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter5_LossFunctions/Ch5_LossFunctions_PyMC3.ipynb#Example:-Financial-prediction

по ссылке ваш ресурс? недурно :)


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


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


А найти оптимум какой-либо из локальных (если модель простая, то и глобальный), можно градиентным спуском, ну или если нужно распределение на параметры — stan, pymc3, pyro, infer.net, tensorflow probability, Edward, webppl...


я всерьез советую посмотреть скажем pymc3, как самый user friendly. хорошая книга про него — bayesian methods for hackers.


по крайней мере, с помощью этих фреймворков можно фитнуть к данным произвольную модель, хоть на тех анализе, хоть нет.

ну да, даже линейный тренд уже приор. по вашей второй ссылке из постскриптума, идут дальше, и смотрят паттерны. это все так называемый тех анализ, который считает что "в цене заложено все прошлое".


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


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


Уже ковыряли и 10 и 20 лет назад, и раньше, матстатом и Монте-Карлой вот это все.


Чтобы предсказать систему, системно, надо так или иначе ее параметризовать. Чтобы найти параметры, надо подогнать статистически функцию (хоть Монте-Карлой — ответ распределение, хоть градиентным спуском — точечные оценки).


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


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


а это ж только управление портфельным риском позволяет. на один актив всегда слишком много факторов. с портфелем же ниже рынка упасть можно, но уже сложнее, а вырасти можно и повыше. тренд у рынка расти. был до пандемии)

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


Проблема только в том, что далёкий от реальности приор (форма зависимости) будет долго вести к постериору. А хороший приор кто в Сочи живет знает.


Биток сильно волатилен. Поэтому думаю не сильно ошибусь, статистический вывод от фич времени даст среднее звено период, а если примешать прошлые цены, матожиданием будет последняя цена (распространённый случай для случайных процессов). Это максимум что можно выжать без дополнительных признаков. "Статистически корректный вывод" не будет противоречить этому.

Есть пакеты статистического вывода (Байесовского). Pymc3, Pyro, Tensorflow Probability — это для python (и то это не все), Stan для С++, python, R, для JavaScript есть webppl.org…

Если я правильно понял запрос, конечно. Тутберидзе проблема не в наличии или отсутствии инструмента. Проблема в том, что зная среднее, разброс может сводить какие-то (все в общем-то) усилия на нет.

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

«Извлечь характеристики из истории» — поверьте, это весьма непростые приседания. И того не стоят. Одномерные временные ряды вообще зло, будь в них сезонность даже, тренд и праздники. Многомерные ряды ещё как-то работают, и нейросетки с ними тоже ещё хоть как-то работают.

Вероятностный вывод годен для классических задач data science — регрессии, классификации, когда надо проинтерпретировать коэффициенты модели, покатать несуществующие ситуации (посэмплить), и другая аналитика.

Но не этот теплонагревательный биток.

Вы практически переизобрели metric learning.
http://contrib.scikit-learn.org/metric-learn/introduction.html


И у дерева и knn есть серьёзное отличие: параметрический или нет, метод.


Входная концепция, масштабировать по важности дерева мне понравилась, не делал так :)

Правильную статью выбрали, годную. Сам пользуюсь кое-чем из неё, модели в проде, и врут ровно настолько, насколько врут (по составу влияния на таргет) входы.

Вдогонку. Про управление девайсами в зависимости от батарейки есть примеры fuzzy logic на C в (древней, но неплохой) книге "Программирование искусственного интеллекта в приложениях".

fbprophet не нейросеть. байесовская модель на stan, изначально линейная из тренда, сезонности, праздников и других компонент по желанию.


Тем не менее вполне годная в куче кейсов.
Вам бы думаю зашла бы как раз байесовская своя модель — просто коэффициенты бы нашли для подходящей формулы. Но это уметь надо. Посмотрите на stan или pymc3 например.


В конкурсах участвовать некогда.

ладно, можно не аргументировать. поэкспериментировал, все энкодеры "плохие", неважно, симметричные или нет. все делают переход нелинейно.

А кто не согласен, тот может (контр)аргументировать .

спасибо! скачал)

если первый и последний то норм.
хорошее векторное пространство, это если взять, например, такую архитектуру
dense(20)
dense(10) // конец кодировщика
dense(20),


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


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

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

Спасибо за описание ваших приключений) Интересно было почитать. Если поделитесь датасетом, думаю я не один благодарен буду.


А вообще энкодеры нужны обычно для того, что вы похоже заготовили на вторую часть статьи.


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


Жду вторую часть.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность