Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
Forwarded from Neural Info
I've finally finished reading the paper called "A Cookbook of Self-Supervised Learning".

What do I want to say? It's a really good paper to start learning SSL. It has a good structure and as you read it, you start to understand how SSL works from the inside.

It has such important parts like:
1. Problem definitions.
2. Possible applications.
3. Existing approaches and their advantages / disadvantages.
4. Implementation details.
5. Training / evaluation details.
6. Existing bottlenecks.

And many other helpful subtopics with many links to other papers on SSL methods in different areas of AI.

I'd recommend this paper to anyone who wants to start learning SSL, because I think this area will be, or already is, an essential part of AI, and it's going to grow really fast.
#math #fun

Народ, подпишитесь на математический блог в ВК, больше тонких шуток вам в ленту )

https://vk.com/secxsquad
1
#mlops #tracking #mlflow

Несколько классных трюков для продуктивной работы с mlflow. Мне оч понравилась встройка кастомных веб-страничек и дочерние эксперименты (UI с прошлого года поддерживает многоуровневость).

По идее, в МЛ эксперимент может равняться фичерсету+таргету, а запуски (runs) могут соответствовать разным конвейерам обработки (с/без FS,RS,OR,ES,HPT).

Дочерние запуски нужны, если хотим логировать промежуточные модели, обученные на фолдах CV. Или если хотим на одних и тех же данных/конвейере сравнить несколько моделей разных классов (gbdt, ann). Или если включено HPT, тогда каждый запуск порождает N субмоделей с разными гиперпараметрами.

К сожалению, вложенными могут быть только запуски, но не эксперименты, хотя это вроде бы на поверхности. У нас же в рамках одного проекта может быть несколько датасетов, несколько задач, у каждой много таргетов. (+Желательны свои уровни допуска разным юзерам, но об этом умолчим). Сейчас пользователям MLFlow приходится, видимо, эту иерархию разворачивать в плоские структуры. Или как-то лепить в тэги.

https://towardsdatascience.com/5-tips-for-mlflow-experiment-tracking-c70ae117b03f
Prepping tables for machine learning

#varoquaux #inria #ml #sklearn #missingvalues #imputing #perezlebel #skrub #minhashencoder #gapencoder #datetimeencoder #tablevectorizer #fuzzy_join

Общие советы, как учиться на табличных данных в экосистеме sklearn.

Оказывается, заполнение пропусков лучше всего нативное от деревянных моделей. Потом уже идут более гораздо затратные вычислительно условные импутации. Если у вас нейросеть, используйте в конвейере add_indicator=True, чтобы обработать возможные случаи, когда пропуски не случайны.

По дефолту советуют HistGradientBoosting.
Если же нет, рекомендуют QuantileTransformer НА ПРИЗНАКАХ. Такое я чёт впервые встречаю, обычно это делают на таргете... хм... +IterativeImputer (хотя только что говорили про его затратность).

Гаель предлагает как стандарт весь препроцессинг отдать трансформеру tablevectorizer из либы skrub, который знает, как обрабатывать фичи времени, строки, категории.

Для категориальных столбцов у них реализована интересная разновидность one hot, основанная на строковой близости меток. Например, Police officer I и Police officer IV попадут в одну корзину вместо разных. Семантическая близость, к сожалению, (пока?) не учитывается.

Ещё в skrub для обогащения данных из справочных таблиц есть джойнеры, которые, как я понял, заменяют featuretools по сути. Но если в featuretools чёрт ногу сломит, тут вроде попроще. Очевидное преимущество skrub - fuzzy_join (всё по той же текстовой схожести).

Что интересно, есть несколько бэкендов - pandas, polars.

https://www.youtube.com/watch?v=I4Sksd93bZ4
#it

Читаю новость: В мае глава IBM Арвинд Кришна (Arvind Krishna)...
Блять, ну вы серьёзно? Почему главой (американской) ИТ-компании должен быть индус, мне кто-то может объяснить??
🤔2
#agronomy

"Обучаемый машинный интеллект анализирует внешний вид яблок и даёт команду на съём только тогда, если фрукт необходимой спелости и без повреждений. Работа платформы на опытном хозяйстве показала высочайшую избирательную способность системы. Она очень сильно сокращает затраты на сбор урожая, позволяя за каждый проход выбирать плоды только лучшего качества. Обычный человек с улицы на такое не способен. А специально обученные сборщики урожая — это редкое явление."

https://youtu.be/nYl_1TMVwjw

https://3dnews.ru/1089519/iskusstvenniy-intellekt-nauchili-sobirat-spelie-yabloki-roem-dronov-na-privyazi
#trading #backtesting #ml #chan

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

Это и есть реализация идей де Прадо и Чана о том, что бесполезно применять МЛ для прогнозирования цены, т.к. то же самое пытаются сделать все. А вместо этого, мол, если тебе нравится торговать по пересечению 2 скользящих средних, то и делай это, но натренируй МЛ выяснять, в какие моменты эта стратегия имеет шансы на успех.

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

Мне лично в повышенную эффективность такого МЛ слабо верится, т.к. это по сути всё равно предсказание цены, только косвенно, да ещё на сниженном на порядок датасете. Хотя с другой стороны, на этом подмножестве может меняться расклад влияющих факторов, модель в теории может не распыляться на другие ситуации и лучше понять то что ей дали. Интуитивно неясно, что перевесит, но это всё можно замерить и выяснить.

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

Конечно, это сильно снижает операционное пространство по сравнению с 1м подходом, т.к. МЛ исходы становится ограниченны конкретной торговой политикой. Но я придумал комбайн, как обойти это ограничение. Вторая модель! Пусть она даёт, как и обычно, прогнозы рынка и/или инструмента, и уже эти прогнозы будут считаться частью управляющий переменных. Тогда не надо будет ждать, условно говоря, пересечения 2 SMA, всегда будет некий прогноз и решающие пороги, по которым можно действовать. Такой своеобразный Double ML.

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


https://www.youtube.com/watch?v=sXYW0KgCKbE
👍1
#profiling #optimisation #python #speed #sklearn #bollocks

Эскалёрновские волшебники-программисты в деле. Столкнулся с неприемлемо низкой скоростью построения отчёта классификационных метрик на 8M примеров. 15 секунд, ну куда это годится? Проверил кирпичики расчётов по нисходящей. Матрица ошибок считается за полторы секунды. Это чем же надо угандошить процессор, чтобы простое деление пары чисел и упаковка в словарь выполнялись больше 10 секунд и делали расчёты в ДЕСЯТЬ раз длиннее? Такое и специально не сразу сделаешь.
😁1
#optimisation #sklearn #python #numba #codegems

Итак, то, что у кудесников машинного обучения считается 15 СЕКУНД, на самом деле должно занимать 50 МИЛЛИСЕКУНД. Но зато они сотни строк качественного кода написали, наверное, покрытого тестами, и прочим. Почему я считаю это важным? Да потому что мне предстоит обсчитывать сотни моделей, и оказалось, что качество обучения (classification report, roc auc, калибрация по всему сету + в разбивке по группам) на test set оценивается для 1 модели.. 5 минут, и основным тормозом был classification_report. Мне вовсе не улыбается платить за кластер, ожидающий сотни и тысячи раз по 5 минут. Спасибо, что у нас хотя бы есть numpy и numba. Без нумбы, кстати, этот код на языке программирования, созданном "гениальным" Ван Россумом, выполняется даже не знаю сколько, я прождал минут 5-10 и забил.

Скорее всего, напрасная трата времени, но всё же запостил issue. Как обычно, похерят, видимо.
👍1😁1
#hardware #flash

Кажется, у меня 8TB NVME SSD Sabrent в компе стоит. Его покупка в 2021-м стала моим самым полезным IT приобретением года. А то и многих. Скорости посл чтения в районе 4Гб/сек, прошу заметить. А для грядущего X5 пропускная способность даже случайного чтения (многопоточного) уже 6 Гб/с.

"Производитель показал результаты тестов накопителя Rocket X5 объёмом 2 Тбайт в утилите CrystalDiskMark 8.0.4. Новинка достигла скорости последовательного чтения в 14 179 Мбайт/с. Показатель скорости последовательной записи в свою очередь у неё составил 12 280 Мбайт/с. Цифры производительности в операциях случайного чтения и записи блоков данных объёмом 4 Kбайт тоже оказались высокими."

https://3dnews.ru/1089630/sabrent-vipustit-nvmenakopiteli-rocket-x5-so-skorostyu-chteniya-vishe-14-000-mbayts
#astronomy #biology #venus #lifeorigin

"На ежегодном собрании Королевского астрономического общества в Кардиффе астроном Джейн Гривз из Кардиффского университета в Уэльсе сообщила, что её группа снова обнаружила фосфин в атмосфере Венеры. Ранее она сообщала о таком же открытии в 2020 году, но тогда оно вызвало шквал критики и не было подтверждено сторонними наблюдениями. Учёная утверждает, что искать это химическое соединение необходимо глубже в атмосфере Венеры, и она его там нашла. По словам Джейн Гривз, искать нужно было на другой высоте. Её группа снова обнаружила следы фосфина «примерно в середине облачного покрова Венеры». Ждём реакции научного мира. Жаль, что миссия компании Rocket Lab к Венере отложена до 2025 года или на большее время. Они как раз собирались туда лететь в этом году для поиска неуловимого фосфина."

https://3dnews.ru/1089637/v-oblakah-veneri-snova-obnarugili-priznaki-sushchestvovaniya-gizni-okazalos-chto-ranshe-iskali-ne-tam
#optimisation #numba #numpy #auc #fastauc

Ещё немного про оптимизацию. В попытке найти быструю реализацию roc_auc набрёл на библу factauc, где автор не поленился и сделал numba-оптимизированную, и даже сишную реализации. В сишную он явно вложился, вон сколько кода, и не напрасно: она получилась самой быстрой, почти вдвое быстрее нумбовской (что меня уже насторожило). Проверил на своём массивчике 8M float-ов, действительно самые тормозные catboost и sklearn (больше 2 секунд), фастаук уже позволяет прыгнуть до 0.6 секунды с нумба и до 0.4 с Си++. Глянул нумбовскую реализацию, а там argsort закомпилирован. Вспомнилось, что раньше нумба замедляла эту функцию. Вынес argsort "за скобки" njit-компилятора, и вуаля, С++ реализация побита, 0.3 секунды )) Даже неловко было сообщать автору, но что поделаешь.

P.S. Всеволод сказал, что на неделе предлагаемое улучшение потестит и, если что, в fastauc замёрджит )
1🔥1
#trading #zhang #finance

Недавно постил лекцию Жихонг Жанга по DL на MOB, вы только посмотрите, насколько плодовит данный учёный!
Мама мия, 37 работ, и многие очень интересны уже по заголовкам. А, или то был Жихао. Все молодцы, в общем )
С нетерпением начту прочтение их совместной работы с Хуйлинь Юанем, не побоюсь этого имени, "Forecasting security's volatility using low-frequency historical data, high-frequency historical data and option-implied volatility".

https://arxiv.org/search/q-fin?searchtype=author&query=Zhang%2C+Z
👍1
#games

Bramble: The Mountain King — дуб, терновник и ясень.

"Не ходите, дети, ночью в лес гулять. Терновник запутает, терновник опутает, терновник утащит в чащу. Так предупреждает книга, которую на ночь читают брат и сестра — Олле и Лиллемор. Теперь Олле стоит перед книгой один, за окном ночь, ставни приоткрыты. Лиллемор нигде не видно. Что делать? Остается только спуститься по простыне из окна вниз, на полянку, — без сестры как-то не по себе. Да и сказки всё это, кто в них верит. Ну а родители… Какие родители?.."

https://3dnews.ru/1089436/bramble-the-mountain-king-retsenziya
#chess #analytics #streaks

Занимался весь день какой-то чепухой. Недавно был блиц-турнир шахматных стримеров, победителя обвинили в читерстве. Одним из критериев было озвучено 13 побед кряду над соперниками со сравнимым или более высоким рейтингом. Скачал все игры обвинителя, обвиняемого, и занявшего второе место (30 тыс игр). Показал, что выполнение такого "критерия" не такая уж редкость.