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
#astronomy #ligo

Говорят, Россия на войну в день тратит ~$300M. Не на научные комплексы, не на улучшение жизни граждан, а на убийства и разрушения.

"Власти Индии выделят на реализацию проекта около $320 млн. Строительство будет вестись недалеко от города Аундха в индийском штате Махараштра. Это будет комплекс зданий, включая L-образный интерферометр с 4-километровыми рукавами. Проекты зданий уже завершены, дороги к объекту подведены, часть оборудования — вакуумные камеры — испытаны в лаборатории. Поскольку проект LIGO-India станет калькой с проекта LIGO-USA, то с передачей технологий и проектной документацией всё хорошо. Индийская сторона просто должна следовать проверенным рекомендациям и повторить уже реализованный проект."

https://3dnews.ru/1085462/v-indii-postroyat-sobstvenniy-detektor-gravitatsionnih-voln-eto-na-poryadok-uluchshit-tochnost-opredeleniya-istochnikov-sobitiy-v-nebe
1
#truedetective #openings

Шедевр.

When the last light warms the rocks,
And the rattlesnakes unfold,
Mountain cats will come
To drag away your bones.
So rise with me forever,
Across the silent sand,
And the stars will be your eyes,
And the wind will be my hands...

https://www.youtube.com/watch?v=ZRPpCqXYoos
1
#книга
Jakub M. Tomczak "Deep Generative Modeling"
По ощущениям это как раз книга для продвинутого ML, т.к. в стандартных программах не всегда глубокие генеративные модели подробно излагаются. Автор довольно известен, у него очень симпатичный сайт и доклады о генеративных моделях на разных научных школах. Там и блог есть, но в нём излагаются главы книги.

Минус у книги один:
- не смотря на объём, глубоко в специфику отдельных методов автор не погружается.

Зато много плюсов:
+ обзор всех популярных классов генеративных моделей;
+ для каждого класса даётся перечень приёмов/улучшений со ссылками на первоисточниками;
+ даны примеры кода.
11
#ml #featureselection #experiment #advicewanted

Готовлю большое сравнение методов отбора признаков (Feature Selection) на синтетическом датасете (12k rows, 240 numerical columns, 7 categorical columns), сделанном из реального. Наблюдения я перемешиваю по каждому признаку, удаляя любые старые корреляции, но сохраняя распределения. Затем создаю точно известные вероятностные (нелинейные) связи таргета с небольшим количеством числовых и категориальных признаков, причём у большинства признаков связь формируется на всей области определения, у двух - только на тех наблюдениях, где их значения одновременно меньше их выборочных средних (а-ля Проблема XOR).

Задача бинарной классификации. Планирую 2 режима:
1) вероятность позитивного исхода ПОЛНОСТЬЮ определяется входами.
2) вероятность позитивного исхода лишь частично определяется входами (признаки сдвигают среднюю вероятность на 5-10%, имитируем неполную осведомлённость наблюдателя о всех влияющих факторах).
Всё это для 2 вариантов средней частоты позитивного класса: высокой, около 30%-50%, и низкой (несбалансированный набор), около 3%-5%.

Метрики хочу взять в вероятностном пространстве: BrierScore, CRPS. Можно добавить и "обычные" для классификации метрики (accuracy, precision, recall, f1, etc.), но в несбалансированном режиме при низкой частоте они будут иметь мало смысла из-за низкого % реализаций положительного класса.

Классификаторов хочу использовать несколько: логрег, лес, бустинг, бустинг с ранней остановкой (ES).

Методы FS: по сути хочу попробовать все из sklearn,+BorutaPy+BorutaShap. Как вариант, есть ещё идея своего multivariate filter: та же Mutual Information (MI), но над всеми парами фичей, вместо индивидуальных признаков (плюс свои тонкости для пар вида число-категория).

How the process is organized:
1) each estimator`s performance is shown on a CV using
1) all features
2) only influencing features
3) raw probability feature
4) features selected by the FS step in a pipeline
features selected on all CV subsets are reported along with their frequencies
5) features EXCEPT the influencing features
early stopping is used where possible, results are reported separately.
2) as a reference, Brier score of ideal (true) probs, shuffled probs, mean target freq are given
3) resulting variables impact is analyzed & reported.
libs used are SHAP and RAPIDS (cuml)

Если есть пожелания и советы к организации процесса, положительный опыт использования каких-то фичеселекторов, присылайте свои мудрые замечания в личку или комменты.
👍521
#ml #ds #rookies

Меня спросили, с чего начинать обучение науке о данных.

Для начала советую

1) прочитать книжку Гвидо/Мюллера, она красиво иллюстрирована и хорошо раскрывает концепции. Также хороша книга Герона, там несколько посложнее и обширнее темы раскрыты. Они обе есть на русском, кажется.
2) лекции А. Дьяконова (МЛ и ПЗАД), если есть желание забуриться в теорию, то и К. Воронцова
3) параллельно этому советую всё же курсы, я знаю 2 хороших источника: ОТУС (там есть 2 начальных, изучите программы) и А. Груздева (у него есть материалы на Бусти и индивидуальное обучение). Только обязательно вовремя прорешивайте задачи и домашние работы, иначе не будет толку.
4) запишитесь в ШАД, это бесплатно и очень круто. но будет требовать много времени, скорее всего.
5) начните участвовать в соревнованиях Кэггл и им подобных российских (организаторами выступают наши бигтехи типа Сбербанк, Роснефть, МТС). Впрочем, на курсах из пункта 3 Вас и так заставят это сделать )
6) подпишитесь на towardsdatascience и подобные ему блоги медиума. контент там варьируется по качеству, но бывает, попадаются жемчужины.
7) есть ещё Хабр
8) начните делать свой пет-проект. если он окажется общественно-полезным и/или коммерчески выгодным, тем круче.
❤‍🔥3👍1
#ussr #music

А есть в чатике деревенские? )

https://www.youtube.com/watch?v=5R9UoGQ19MI
1
#poetry

Нашел старенький стих, даже не помню, чей.

"Ты думаешь, ты счастлив,
И проживаешь жизнь сполна?
Дурак! твой день ужасен,
Кругом идёт война.

Везде одна разруха
Не веришь мне?
А зря.
На улице так глухо,
И на ушах у всех лапша.

Мой мир.
Здесь каждый верит в Бога.
Бог не имеет столько сил.
Ты в нищете, твой дом - берлога,
Увы, не Бог твой господин.

Пустынная алея,
Холодная зима прошла.
Так чем же мы болеем?
Откуда столько зла?

Плечом к плечу встречаясь,
Друг друга посылаем на.
Ты сам всё понимаешь,
Холодная идёт война.

Счастливая улыбка,
Печальные глаза.
Наш мир - всего ошибка,
Пустой, как и душа."
😢1
#bigquery #primarykeys

Офигеваю с Гугла. Многие годами жаловались, что в BigQuery нет первичных и внешних ключей.
И вот гугл их добавил. Теперь можно указать таблице primary key(x,y) not enforced. Not enforced прописано во всех примерах доки. Думаю, к чему бы это?
Опытным путём выяснилось, что ключи указать ты можешь, но проверять база их целостность за тебя не будет. На кой хер тогда такое "добавление" нужно? С таким созданным первичным ключом в базу спокойно добавляются дубликаты. Отлично, гугл.

https://www.datadice.io/blog/how-comprehensive-are-the-new-primary-keys-and-foreign-keys-in-bigquery
1
Forwarded from Борис опять
# Что выгоднее: ChatGPT API или инференс модели на Huggingface?

ChatGPT берет $2 за 1 миллион токенов. Переведем во что-то понятное: задача саммаризации имейлов. Пусть один имейл это 400 токенов промпта и 200 токенов выхода. Тогда обработка 100 имейлов будет стоить всего $0.08.

Сколько стоит сделать то же самое на Huggingface? Вот как берет деньги Huggingface за Inference endpoints:
1. По запросу поднимается эндпоинт с моделью. Можно выбрать одну из конфигураций, где чем мощнее тем дороже. Варьируется от $0.6 до $45 в час для GPU.
2. Считается сколько часов был задействован эндпоинт. За каждый час начисляется плата. Насколько я понимаю считается количество часов округленное вверх. То есть поднял инстанс на минуту == должен денег за час. Эндпоинты нужно удалять самостоятельно, иначе они будут тихо проедать ваши деньги.
3. В конце месяца все затраты суммируются и списываются с карты.

100 имейлов точно можно обработать в течение часа. Если используется самый простой GPU эндпоинт (куда влезает маленькая Alpaca модель, так что это реалистично), то это будет стоить $0.6, что почти в 10 раз дороже, чем ChatGPT.

Однако расклад сильно меняется, если вам нужно обработать более 100 имейлов. Например, 10 000 имейлов будет стоить уже $8 при использовании ChatGPT. Если вы можете обработать столько же в течение часа используя Huggingface, то будет почти в 10 раз дешевле.

Я замерил: inference api huggingface обрабатывает типичный имейл примерно за 3 секунды. Можно обработать 1200 имейлов в час. Обработка этих имейлов с помощью ChatGPT стоит $0.96 против $0.6 за час Huggingface инстанса. Huggingface побеждает.

Вывод: скорее всего при постоянном потоке задач использование Huggingface дешевле, а при редких запросах однозначно побеждает ChatGPT.
1
#gpt #jokes

Недавно была Пасха. Мы смотрели с друзьями обзор фильма "Чужой. Завет". Придумай шутку для этой ситации.


Конечно! Вот небольшая шутка про "Чужой. Завет" и Пасху:

Знаешь, что у этих пришельцев из "Чужого. Завета" общего с Пасхой?
Нет, что?
Оба случаются только раз в году и оставляют за собой много ошметков!
#trading #tradingpolicy #backtesting #optimization

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

У неё 3 параметра:

order_offset: float,
takeprofit_size: float,
stoploss_size: float.

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

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

Видимо, надо проверять некую связность параметров на последовательных интервалах. Если "лучшие" или "хорошие" параметры по инструменту изменяются от часа к часу достаточно плавно, есть надежда, что, подбирая "лучшие на текущий момент" параметры брутфорсом и применяя их следующий, скажем, час, мы приземлимся не очень далеко от "истинных лучших параметров" за этот будущий час, и имеем шансы заработать. (На самом деле, ещё более продвинута идея прогнозирования лучших будущих параметров, её продвигают ДеПрадо и Чан.)

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

Попробую проверить результаты следующего подхода: каждый час по каждому инструменту находим "лучшие" (в терминах прибыли, просадки, устойчивости) параметры с начала торгового дня до текущего момента, следующий час торгуем по ним. Под устойчивостью понимается тот факт, что небольшое изменение параметра не должно приводить к резкому изменению целевой функции. Для этого целевую функцию думаю оценивать не только в заданной точке M-мерного пространства параметров (в нашем случае M=3), но и в K ближайших (в смысле некоторой метрики, к примеру, эвклидовой) точках. Как оценку набора параметров можно брать отношение среднего (mean) целевой функции в этой и K ближайших точек к её вариации (std).

Как это можно реализовать:
1) сделать низкоуровневые черновые расчёты:

разбить все дни/инструменты на куски фиксированного размера, например, каждый 1 час, или каждые 10_000 сделок.
выбрать подлежащее проверке число сочетаний, например, P=1_000_000. Сгенерировать P случайных (но валидных) комбинаций параметров.
для каждого куска данных отправить на кластер задачи бэктеста всех этих P комбинаций для этого куска.
как результат, централизованно сохранить день, час, инструмент, параметры, итоговые метрики (прибыль, просадку, и тд)

2) провести, собственно, метабэктест:

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

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

"В момент избытка электрической энергии 24-т блоки подаются к лифтам и поднимаются на высоту. В США сооружение будет достигать в высоту 140 м, а в Китае — 120 м. Когда выработка электрической энергии падает, что актуально в случае солнечной и ветряной энергетики, блоки спускаются на лифтах вниз, раскручивая роторы генераторов и вырабатывая электричество. За время спуска блока размерами 3,5 × 2,7 × 1,3 м со скоростью 2 м/с вырабатывается примерно 1 МВт электричества с КПД более 80 %. Здания гравитационного аккумулятора можно строить не только вверх, но и вширь, таким образом наращивая ёмкость хранения энергии. Например, хотя китайский аккумулятор будет ниже строящегося в США, за счёт большей площади сооружения он может хранить до 100 МВт·ч электричества, тогда как американский — всего 36 МВт·ч."

https://3dnews.ru/1085622/shveytsarskaya-kompaniya-stroit-gigantskie-gravitatsionnie-akkumulyatori-odin-v-ssha-a-vtoroy-v-kitae
Forwarded from Борис опять
1
Forwarded from Kali Novskaya (Tatiana Shavrina)
#nlp #про_nlp
"Во-первых, это красиво..."
Все постят этот восхитительный гайд по архитектурам LLM. Очень люблю такие майндмэпы — легко запомнить, систематизировать, использовать в лекциях
1