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
#catboost #gpu

Потестил катбуст на мультигпу (task_type="GPU", devices="0-4"). Пробовал 1, 2 и 4 rtx 3090. Выяснилось, что в скорости обучения улучшений нет никаких, даже наоборот - с 2мя GPU медленнее, и только с 4мя время обучения выходит на уровень 1 GPU. Единственный, похоже, бонус от мультигпу - увеличенный совместный объём VRAM.
1
#crypto

"22 мая 2010 года криптомайнер Ласло Ханец (Laszlo Hanyecz) совершил первую зарегистрированную коммерческую транзакцию с биткоинами, заплатив 10 000 BTC за две пиццы Papa John’s, которые тогда стоили примерно $40. Это стало поворотным моментом, изменившим отношение к криптовалюте. Сейчас за 10 000 BTC можно купить более 70 миллионов пицц. При текущем курсе биткоина в $111 800 они стоят более $1,1 млрд."

https://3dnews.ru/1123302/den-bitkoinpitstsi-15-let-nazad-mayner-kupil-dve-pitstsi-za-10-000-btc-segodnya-eto-11-mlrd
#biology #lifeorigin

Это нужно изучать психологам, похоже. Почему люди продолжают пользоваться всеми благами цивилизации и научного подхода, но в какой-то момент начинают научный подход отрицать, отрицать саму реальность, лгать, манипулировать. Зачем вы это делаете? Какой % из вас понимает, что вы лжёте? Я подозреваю, что высокий.

https://www.youtube.com/live/j9mBdgbvtmY
🤡1
#chess

Шахматы Фишера показывают реальную силу игры человека.
Вон как эвалбар скачет даже у Магнуса. Такое редко увидишь в классике, где топовые шахматисты все дебюты уже проанализирвали мощными компами и знают лучшие линии по 15-20 ходов вперёд, да и просто хорошо понимают позиции.

Ну и да, красивый мат мог бы получиться.

https://www.youtube.com/watch?v=2bHPMDmFWjQ
#trading #chan #featureengineering

Понравилась идея превращения cs фичей в ts путём формирования синтетического портфеля из активов, отранжированных по cs признаку. Трейдерские метрики такого портфеля уже можно (путём взятия rolling stats) превратить во временнЫе (ts) признаки.

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

https://www.youtube.com/watch?v=6J9iaXNpCN8
#polars #pandas

Сравнительно недавно начал по-настоящему изучать поларс, потому что пандас уже задолбал своей неповоротливостью. Хочу поделиться некоторыми замечаниями о фреймворке.

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

Какие фишки реально понравились:

Выбор столбцов.

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

df.select(pl.col("ticker", "^.*_high$", "^.*_low$"))
df.select(pl.all().exclude("^day_.*$"))


Ещё больше упрощают дело селекторы:

import polars.selectors as cs
df.select(cs.string() | cs.ends_with("_high"))


Комбинации селекторов (в терминах логики множеств) уже менее интуитивны: df.select(cs.contains("_") - cs.string()),но всё равно крайне полезны.

Апдейты Поларс.

Их фигачат каждые чуть ли не 2 недели, причём там реальная работа, помногу. Что ж это будет за зверь через год?
И даже я сам уже запостил несколько issues, которые были приняты во внимание и исправлены (самим Риччи). Внёс свой скромный вклад в дело улучшения DS библ для всех 😅.

Многопоточное исполнение. Полная утилизация CPU. Оптимизация операций над lazy фреймами.

Это просто небо и земля, по сравнению с пандасом. Никогда для работы со сколько-нибудь серъёзным набором данных (от десятка гигов) я больше не буду использовать пандас. Получается, ты платишь за машину с сотней ядер, а с pandas используешь большую часть времени одно. Более того, уже есть поддержка engine="gpu", спасибо кодерам Nvidia (под капотом использует cudf. есть ограничения на виды операций и типы данных, которые можно исполнять на gpu, но потихоньку они снимаются).

Синтаксис операций.

Можно обращаться сразу к множеству столбцов, и элегантно применять ко всем одно преобразование. Можно писать генерики для сложной работы со столбцами, которые станут известны лишь в контексте. По сравнению с пандас, паттерн применения преобразований меняется - надо стараться вынести как можно больше операций в каждый вызов контекста (select, with_columns, group_by, group_by_dynamic), потому что так они параллелятся на все ядра. В операциях не обязательно использовать существующие столбцы, можно и просто выражения над ними! Вроде df.sort(pl.col("name").str.len_bytes(),descending=True).

Rust plugins.

Если какие-то операции недоступны в нативном polars, можно вызвать питоновские функции, черезе map_groups, например, но они не будут параллелиться. Для этих случаев можно написать и скомпилировать свой плагин на Расте. Я пробовал, это сложно ) В синтаксисе этого раста чёрт ногу сломит. И не одну. Но возможность есть!

Фишка которую я пока не пробовал - streaming . Работа с данными больше RAM.