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
#imbalanced #smote

Кристофер не боится смелых заявлений.

"Don’t use SMOTE if you use state-of-the-art classifiers. Don’t use SMOTE if you care about calibration."

https://mindfulmodeler.substack.com/p/dont-fix-your-imbalanced-data
1👍1
#voting

"First formulated in Arrow’s doctoral dissertation (published as the monograph Social Choice and Individual Values [Arrow 1951], Arrow’s Impossibility Theory can be stated as follows:

When voters have three or more alternatives, there is no voting method that can convert the ranked preferences of individuals into a community-wide transitive ranking of those alternatives, while also meeting a pre-specified set of fairness conditions in every election.

The study of specific voting methods and their drawbacks actually dates back well before Arrow’s twentieth-century work. Indeed, Iain McLean has remarked that “the theory of voting has in fact been discovered four times and lost three times” [McLean 1990, p. 99]. Arrow, of course, was responsible for the fourth discovery. McLean’s 1990 article examines the first discovery, made at the hands of two medieval thinkers, Ramon Lull (c. 1235–1315) and Nicolas of Cusa (1401–1464), within the context of ecclesiastical elections. More recently, McLean [2019] has written about the third discovery by Charles Dodgson (1832–1898), the British mathematician more widely known as Lewis Carroll, who was motivated to write on the topic as a result of certain election decisions made by the faculty at Christ Church, Oxford. Yet, as those familiar with today’s treatment of voting theory will know, none of the names of Lull, Cusa or Dodgson/Carroll are generally associated with the topic.

In contrast, the second time that this discovery was made involved two late eighteenth-century French mathematicians for whom certain key ideas of voting theory are now named: Jean Charles, Chevalier de Borda (1733–1799) and Marie-Jean-Antoine-Nicolas de Caritat, Marquis de Condorcet (1743–1794)."

https://maa.org/book/export/html/2361819
#featureselection #diogenes

Итак, проект Диоген разделился на 2 модуля, filters, куда попал весь прежний mRMR код, и wrappers, где создан каркас своего RFECV.

В планах такие блоки:

1) поиск top_n features методами:
полного перебора по сетке (он будет полным, но не сплошным, а с переменным шагом)
случайного полного перебора
суррогатной модели: гауссов процесс, катбуст с оценкой неопределённости. разветвление на несколько методов выбора следующей точки: expected improvement, ucb, expected probability, exploration-exploitation
локальной оптимизации scipy (Brent)
глобальной оптимизации scipy (посоветовали direct, differential_evolution, shgo. пока ещё не пробовал)

2) кастомные процедуры чтения важности признаков из базовой модели

3) early stopping для базовых моделей

4) обновление рейтингов переменных с каждой итерацией. объединение рейтингов по фолдам с помощью votenrank (https://github.com/pragmaticslab/vote_and_rank).

5) автобэйзлайны для nfeautures=0: Dummy вместо 0.

Ожидается функциональность:
остановка по бюджету времени (для этого и нужна опция перебора по сетке)
график поиска наилучших top_n features, с выводом реальных точек, где произошла оценка, и прогнозов+неопределённости там, где использовалась модель
совместимость с Dask
Forwarded from New Yorko Times (Yury Kashnitsky)
О математике в искусстве Эшера
#random #math

В Нидерландах этот год – год Эшера. Если ни разу не слышали это имя, то представьте “невозможную фигуру” - вот это Мауриц Эшер, нидерландский художник-график, создатель миров, головоломок и визуализатор математических идей. Именно последнее – повод написать про творчество Эшера тут.

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

После некоторых экспериментов с оптикой и иллюзиями Эшер приходит к самой что ни на есть математике. Он изображает фракталы еще до того, как сам термин был предложен Мандельбротом. Эшер приобрел всемирную известность после выставки в музее современного искусства Stedelijk в Амстердаме, которая проходила параллельно со Всемирным математическим конгрессом в 1954, а Мандельброт ввел термин “фрактал” в 1975.

Увлечения мавританскими узорами привели Эшера к проблеме замощения плоскости (tessellation), a.k.a. к задаче о паркете. Это когда повторяешь одну фигуру “бесконечно” так, что она без зазоров замощает плоскость. Очевидно, замостить плоскость можно тривиально правильными треугольниками, четырёхугольниками и шестиугольниками, а вот с неправильными пятиугольниками - уже интересная история (только в 2017 году доказали, что есть ровно 15 видов пятиугольных “паркетов”, там одна американская домохозяйка с пхд штук 7 нашла, Савватеев любит про это рассказывать). У Эшера замощения просто дикие – ящерицы, рыбы, клоуны, перетекающие друг в друга. В самой известной его работе Metamorphosis II одни виды замощений перетекают в другие.

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

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

“Хотя я абсолютно несведущ в точных науках, мне иногда кажется, что я ближе к математикам, чем к моим коллегам-художникам”

Неудивительно, что Эшер был любимцем ученых-математиков, те делились с ним идеями, присылали работы. “Как жаль, что я ничего, абсолютно ничего не понимаю в этом” – признавался художник.

Если еще и учесть, что большинство произведений Эшера – литографии, то его головоломки дополнительно усложняются. Не вдаваясь в суть процесса литографии (вики): при рисовании надо учитывать инверсию, после оттиска с камня на бумагу рисунок отзеркалится по вертикали.

Если вас дорога приведет в Гаагу, посмотрите работы Эшера (причем не только в его именном музее, но и в Kunstmuseum. Кто в Нидерландах, спешите - выставка до 10 сент.). Если вы любите математику, невозможно не полюбить и Эшера.
2
#gpt #nvidia #tensorrt

"По оценкам NVIDIA, применение TensorRT-LLM позволяет вдвое увеличить производительность ускорителя H100 в тесте GPT-J 6B (входит в состав MLPerf Inference v3.1). При использовании модели Llama2 прирост быстродействия по сравнению с А100 достигает 4,6x. TensorRT-LLM уже включает полностью оптимизированные версии многих популярных LLM, включая Meta✴️ Llama 2, OpenAI GPT-2 и GPT-3, Falcon, Mosaic MPT, BLOOM и др."

https://servernews.ru/1092785
#crypto #law

"Турецкий суд приговорил Фарука Фатиха Озера, основателя одной из крупнейших турецких криптобирж Thodex, а также его брата и сестру к 11 196 годам 10 месяцам и 15 суткам лишения свободы, признав их виновными в мошенничестве с использованием информационных систем, руководстве преступным сообществом и отмывании денег, пишет Bloomberg. Прокуратура запрашивала для Озера до 40 тысяч 462 лет тюремного заключения, но суд назначил более мягкий срок."

https://3dnews.ru/1092789/publikatsiya-1092789
#python #development

Написал большую программу на питоне, сижу, весь день вылавливаю баги. Чтобы дойти снова до момента последнего отловленной ошибки, требуется минут 40 (пока загрузятся данные, обучатся модели, потом ансамбли, создадутся прогнозы и залогятся метрики). Я одного не пойму, почему Питон называют языком быстрого прототипирования и разработки? Да, мол, он медленный и некомпилируемый, но зато разрабатывать на нём быстро. Да ни хрена не быстро. Ещё 20 лет назад Visual Basic позволял в случае ошибки исполнения спокойно поправить код на ходу и продолжать дальше, не перезапуская программу. Это казалось очень логичным, ведь это же скриптовый язык. Я сначала думал, что я чего-то не знаю, и гуру питона как-то этот вопрос решают. Но, похоже, никто его не решает. Что за деградация программирования, и, главное, почему все притворяются, что это нормально? Я подозреваю, что такой функционал какое-то время назад в питоне реализовать можно было, пока его не стали "оптимизировать", пытаясь хоть как-то спасти репутацию этого медленного говна, вместо того, чтобы сделать нормальный компилятор (взяв зв основу numba, к примеру).
"Компания Google Cloud представила на конференции для разработчиков Google I/O инстансы Google Compute Engine A3, специально созданные для обеспечения максимальной производительности рабочих нагрузок машинного обучения. Новинки используют современные CPU, быструю память, ускорители NVIDIA и IPU Intel.

Виртуальная машина A3 включает:

8 ускорителей NVIDIA H100 Hopper.
Коммутаторы NVIDIA NVSwitch с NVLink 4.0, обеспечивающие пропускную способность 3,6 Тбайт/с между ускорителями.
Процессоры Intel Xeon Sapphire Rapids.
2 Тбайт оперативной памяти DDR5-4800.
200-Гбит/с IPU, специализированный стек межсерверной связи GPU↔️GPU и оптимизации NCCL.
Помимо того, что новые инстансы используют DPU/IPU Mount Evans, разработанные совместно с Intel, кластеры A3 также задействуют фирменные оптические коммутаторы Google Jupiter с возможность переконфигурации топологии по требованию, которые компания уже использует в кластерах с собственными ИИ-ускорителями. Всё это позволяет объединять до 26 тыс. ускорителей H100 в облачный ИИ-суперкомпьютер производительность до 26 Эфлопс (TF32)."

https://servernews.ru/1086514
#trading #erema

Прогресс

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

Пока у меня такой сеттинг: есть train, val, test множества, состоящие из последовательных торговых дней. На train обучается несколько базовых моделей, с ранней остановкой по validation. Каждая базовая модель в конце делает прогнозы на все 3 множества. Для голосующих ансамблей прогнозы базовых моделей просто усредняются одним из математических средних. Для полноценного стэкинга же создаётся свой train и val наборы, в качестве признаков подаются выходы базовых моделей+их построчные аггрегаты. Разбиение на train/val для стэкинга тестировал в 5 вариантах: все комбинации train/val базовых моделей, а также train+val базовых, но со случайным отбором 15% на новый val. Я ожидал увидеть на test, что использование старого train в стэкинге токсично, и лучшие результаты покажет сплит старого val/val.

Результаты:

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

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

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

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

Добавил несколько новых метрик в трэкинг, исправил старые.

Уже понятно, что некоторые группы фичей избыточны. Некоторые признаки, добавленные просто для галочки, неожиданно поднялись в топ важности.

Планы

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

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

Ставлю сейчас обучение по нескольким таргетам (но одному горизонту и одному рынку), 3 разных бустинга. Для самого прогнозируемого таргета сделаю новый бэктест.
👍21
Почему бустинг плохо понимает линейные зависимости?

Я подумал-подумал и решил прямо в канале отвечать на хорошие вопросы из комментариев) Начнем с вопроса про линейные зависимости в градиентном бустинге над деревьями

Условному LightGBM непросто выучить зависимость y = x по 2 причинам:

1. Нужно довольно много сплитов дерева (большая глубина / мнго деревьев), чтобы это выучить
if x < 10 then y = 9
if x > 10 then y = 11
if x > 12 then y = 13
…. (N раз)
if x > 1000 then y = 1001

2. Сложно прогнозировать out-of-distribution
Вторая проблема хорошо видна из “крайних” условий на х:
if x <10 then y = 9
if x > 1000 then y = 1001

Бустинг довольно плох для значений Х, которых не было в трейне (out-of-distribution). И если у вас, например, продажи с растущим трендом, то прогнозировать больше, чем было раньше - очень проблемно

Можно конечно для продаж прогнозировать не сами продажи, а их прирост. Но и это не всегда решает проблему: представьте, что на товар была скидка не более 10%, а сейчас стала 30%. Можно неаккуратно переобучиться на историю скидок именно этого товара и не прогнозировать бОльший рост, даже если на всех товарах (где бывают любые скидки) есть около-линейная зависимость от скидки

Рубрика “Ответы на вопросы из комментариев” #answers
❤‍🔥1👍1
#arm #ipo

"К выходу на биржу компанию Arm оценили по верхней границе в $54,5 млрд, а цена одной акции была установлена на уровне $51. Ещё на стадии предварительных торгов стоимость акций выросла примерно на 10 % — до $56,1. Рост продолжился и даже усилился во время торговой сессии, в результате чего Arm завершила свой первый торговый день с ценой $63,59 за акцию. Капитализация составила $67,9 млрд.

Компания, торгующаяся под тикером «ARM», выпустила на биржу около 95,5 млн акций. Компания SoftBank, которая приобрела Arm в 2016 году, сохранила контроль над 90,6 % акций, а в результате IPO заработала $4,9 млрд. Среди инвесторов, купивших крупные доли в Arm значатся компании Apple, Google, NVIDIA, Samsung, AMD, Intel, Cadence, Synopsis и TSMC."

https://3dnews.ru/1093065/aktsii-arm-vzleteli-na-25-v-perviy-den-torgov-na-birge