Aspiring Data Science – Telegram
Aspiring Data Science
385 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
#categoricals #trading

Удивительные результаты получил. Оказывается, лучше тренировать модельку на 1 актив, чем на несколько (даже с нормализацией всех фичей)+категориальная переменная "код актива". Это совпадает с информацией Эрни Чана, но противоречит статье Deep LOB, да и моему опыту в бизнес-проекте, где с заказчиком специально проверяли, будут ли региональные модели перформить лучше чем 1 большая глобальная. Тогда оказалось, что нет, а сейчас что да, и довольно значимо. Так что если у Вас есть категорийки, оказывается, нет серебряной пули, в каждом проекте проверяйте буст от покатегорийных моделей отдельно.

Тут получаются "сапожники без сапог": мы всегда советуем клиентам проводить А/Б тесты, но при этом сами используем в своей работе только то, что хорошо себя зарекомендовало в наших прошлых работах. А это же смещение, и надо с этим бороться. Резонно с "лучших по своему опыту" решений начинать, но по мере развития каждого проекта тестировать на нем надо все опции, более того, регулярно перепроверять (см data drift).

Почему так получается, что иногда фиксированные "лучшие практики" не срабатывают? Думаю, дело в переплетении факторов каждой конкретной проблемы, за которыми мы не следим, да и не можем уследить.
👍2
#hpt #hpo #optuna

Было смешно. Чувак применил HPT и получил на OOS хуже )

https://www.youtube.com/watch?v=t-INgABWULw
#jobs #gpt

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

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

С момента публикации The Game Awards (TGA) этой новости, в X появилось великое множество комментариев от разгневанных разработчиков игр, актёров озвучки, сценаристов игр и телевизионных сценаристов. В сообщениях комментаторы критиковали и осуждали применение инструментов ИИ в индустрии. Отмечается, что внедрение «инноваций» способствовало тому, что только в этом году работу потеряли более 6-ти тысяч специалистов игровой сферы.

В то время, как Microsoft продвигает инструменты ИИ, как способ для разработчиков «существенно расширить свои собственные возможности», волна негатива в отрасли наводит на мысль, что нововведение заставило актёров и сценаристов почувствовать что угодно, но только не счастье от появления ИИ в их творческой среде. При этом компании, занимающиеся созданием видеоигр, всё с большим восторгом воспринимают подобные новости, вероятно, думая: «Наконец-то у нас появилась технология, позволяющая увольнять наших работников ещё быстрее, чем раньше!»"

https://3dnews.ru/1095747/instrumenti-iskusstvennogo-intellekta-dlya-xbox-razdragayut-stsenaristov-i-aktyorov-videoigr
Aspiring Data Science
#hpt #hpo #optuna Было смешно. Чувак применил HPT и получил на OOS хуже ) https://www.youtube.com/watch?v=t-INgABWULw
Разобрался, почему так произшло в том примере. Оказалось, train/test skew. На 300 примерах train_test_split(test_size=0.2,random_seed=) создала куски с вот такими распределениями таргета. Видимо, этого оказалось достаточно, чтобы гиперпаарметры, лучшие для train (хотя это ещё вилами по воде без анализа чувствительности), провалились для test.
1
#hpt #hpo #optuna

Но, кстати, ситуация жизненная. Что делать-то, если test set недоступен, и возможностей проверить train/test skew нет, к примеру, это соревнование? Потратил такой кучу ресурсов, заоптимизировался на train/public. Вроде приложил усилия, сделал HPT, и на тебе, сюрприз. Хочу на этом тестовом примере изучить, что было бы, если за лучший сет брать не просто аргмакс от сырой метрики, а аргмакс от метрики, усреднённой по n ближайшим соседям.
❤‍🔥1
#optuna

Глубоко в недрах доки Оптуны, и почти случайно, я обнаружил, что у неё всё-такие есть нормальный интерфейс и можно у неё попросить все параметры сразу. Называется это define-and-run. Также, оказывается, не обязательно заворачивать всё в objective, можно использовать ask/tell чтобы гибко интегрировать её в существующие системы.

https://optuna.readthedocs.io/en/stable/tutorial/20_recipes/009_ask_and_tell.html#ask-and-tell
#skopt

Преодолел сложности, запустил таки skopt. На моей задаче его forest_minimize и gbrt_minimize находят лучшие решения, чем TPE Optuna. Правда, работает уже не доли секунды, а 5-15 секунд. gp_minimize с ядром Матерна работает плохо. Но проблема ещё в том, что skopt очень много кандидатов выдаёт повторно, вместо того, чтобы исследовать новых. Возможно, проще сделать своё решение, чем разбираться и допиливать чужое.
#hpt #hpo #optuna

ну хоть узнал про CMA-ES. Понравилась идея гибридного подхода, когда начинается проверка многих случайных комбинаций методом последовательного халвинга, потом в какой-то момент включается TPE.

Кстати, удивляет, что если в документации используется небрежный или неэффективный код, всё равно при демонстрациях, да и в практическом использовании подобную ересь все как попки копируют. В случае оптуны подобным кодом является загрузка и сплит датасета внутри objective. На кой эти дорогие задачи делать снова и снова на КАЖДОЙ итерации? И главное, человек при этом замеряет время исполнения... И нигде у него не ёкает.

Хах, а как он тестирует прунинг? Походу, совершенно не понимает, что это и как оно работает, там же должен быть partial_fit. И опять же, время выполнения у него с "прунингом" такое же, как и без, почему, вопросов у него не возникает даже. Доклад сделал, нормалёк, чё вам ещё надо?

https://www.youtube.com/watch?v=hboCNMhUb4g
👍1
#pandas #optimization #bollocks

Пытаюсь выяснить, как передать большой фрейм пандас для чтения в другие процессы с помощью joblib без сериализации и копирования памяти. С массивом нумпай это сделать можно с помощью memmapping, пример есть в доке joblib, и это реально работает (память выделяется 1 раз, сериализации нет. правда, приходится один раз сдампить массив на диск). А вот с фреймом не прокатывает. Вроде оказывается, фрейм вообще нельзя инициализировать из общей памяти без копирования.

Набрёл на дискуссию, где человек приводит аргументы, что копирование излишне и вызывает пенальти к производительности. А 2 мудака-разраба пандас ему затирают про premature optimizaion. Cмотрю, у одного мудака знакомый ник. jreback. И вспоминаю, что это же существо из ядерных разрабов панадаса и мне когда-то давно писало про premature optimization, когда я спрашивал, почему какая-то операция была реализована без inplace (у меня была забита вся память и операция присваиванием просто не проходила).

Отсюда 2 вопроса:
1) кто знает техническое решение, напишите
2) почему подобные мудаки идут разрабатывать библиотеки для работы с данными, в том числе, большими данными? и потом херят все разумные начинания. так вот почему пандас такой сука медленный. вовсе не потому, что высокий уровень абстракции, гибкость. Просто разрабы - мудаки, которые под предлогом no premature optimization делают no optimization at all.
#catboost

Спустя почти полгода в катбусте признали и исправили ошибку, о которой зарепортил ещё в июле и которая не позволяла валидироваться на точность (precision) - согласитесь, это жизненно необходимо для многих задач. Что делать, смеяться или плакать? И это наши лучшие разработчики. Такая скорость реакции при том, что я это в катбустовый чат ещё написал, и они это видели. И мы с другим пользователем чата нашли прямо там причину.
😭2🤯1
#fantasy #zelazny #comics

Оказывается, есть классные комиксы по Хроникам Эмбера!

https://comiconlinefree.org/roger-zelazny-s-amber-nine-princes-in-amber/issue-1
#pandas #optimization #joblib #numpy #memmap

Хорошие новости! после экспериментов выяснилось, что в последних версиях joblib умеет дампить в общую память не просто отдельные массивы numpy, а (что не указано в доке) и целиком фреймы пандас!

И даже не обязательно прописывать операции вручную. Достаточно просто передать фрейм в конструктор Parallel joblib-a как параметр, и, если он больше max_nbytes, joblib его автоматически сдампит и правильно загрузит уже в рабочих процессах! Советую в качестве temp_folder указывать быстрый NVME SSD диск, типа Parallel(n_jobs=32,max_nbytes=0, temp_folder=r'R:\Temp' ). В моих тестах отработали по сути все базовые типы столбцов: int, float, datetime, categorical.

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

Вывод: если у Вас не экзотические типы данных и есть nvme, большие фреймы в свежих версиях библиотек можно спокойно передавать как параметры, и они не буду побайтово сериализоваться, более того, RAM будет расходоваться в десятки раз экономнее.
👍2
#trading #rl

Обзор различных направлений прикладного ML в трейдинге, на базе дипломных студентов колледжа. Познавательно. Некоторые весьма креативны.

Про hedonistic learning system, trading as dimensionality reduction забавно )

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

https://www.youtube.com/watch?v=cih4rqTc_4w
Aspiring Data Science
#wisdom #thales
#musk #war

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

По поводу оценки вероятности акулы быть убитой ракетой - интересно. Оказывается, звуковые волны - афродизиаки для морских котиков ) Как этот котик потом объяснит своим друзьям, что произошло?!

https://www.youtube.com/watch?v=JN3KPFbWCy8
#featureselection #skopt

Результаты бенчмарка forest_minimize пакета skopt на задаче отбора признаков. Они непредставительны, т.к. из-за большого числа комбинаций параметров я использовал всего 10 повторов. Итого каждая комбинация отработала 10 раз на 8 задачах, 80 запусков - маловато для статзначимости. Но всё же, кажется, можно сделать вывод, что инциализация методом grid и lhs хороша, и если решите использовать леса в skopt, начинайте с RF-LCB-Grid. На вид казалось, что skopt находит лучшее решение чаще оптуны, но по цифрам это не так, для лучших комбинаций скор и там и там 76%. При этом оптуна работает в 50+ раз быстрее. А, в skopt было много дублей, так что он всё-таки будет точнее, если удастся победить дублирование.