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
#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 тыс игр). Показал, что выполнение такого "критерия" не такая уж редкость.
#hardware #amd #ml

"C выходом обновлённых версий фреймворка PyTorch 2.0 и платформы ROCm 5.4+ ситуация изменилась — обучение LLM стало возможным на ускорителях AMD Instinct MI250 без изменений кода при использовании её стека LLM Foundry Некоторые основные моменты:

Обучение LLM было стабильным. С высокодетерминированным обучающим стеком LLM Foundry обучение LLM MPT-1B на ускорителях AMD MI250 и NVIDIA A100 дало почти идентичные кривые потерь при запуске с одной и той же контрольной точки. Исследователи даже смогли переключаться между ускорителями AMD и NVIDIA в течение тренировочного прогона.
Производительность была конкурентоспособной с существующими системами A100. Исследователи профилировали пропускную способность обучения моделей MPT с параметрами от 1 до 13 млрд и обнаружили, что скорость обработки MI250 на один ускоритель находится в пределах 80 % от A100-40GB и в пределах 73 % от A100-80GB. Как ожидает компания, этот разрыв сократится по мере улучшения программного обеспечения AMD."

https://servernews.ru/1089341
#trading #finance #lob #dl

Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).

https://www.youtube.com/watch?v=diLtyRg6cl4
#optimization #ml #metrics #python #numba #codegems

В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.

@njit()
def fast_classification_report(
y_true: np.ndarray, y_pred: np.ndarray, nclasses: int = 2, zero_division: int = 0
):
"""Custom classification report, proof of concept."""

N_AVG_ARRAYS = 3 # precisions, recalls, f1s

# storage inits
weighted_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
macro_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
supports = np.zeros(nclasses, dtype=np.int64)
allpreds = np.zeros(nclasses, dtype=np.int64)
misses = np.zeros(nclasses, dtype=np.int64)
hits = np.zeros(nclasses, dtype=np.int64)

# count stats
for true_class, predicted_class in zip(y_true, y_pred):
supports[true_class] += 1
allpreds[predicted_class] += 1
if predicted_class == true_class:
hits[predicted_class] += 1
else:
misses[predicted_class] += 1

# main calcs
accuracy = hits.sum() / len(y_true)
balanced_accuracy = np.nan_to_num(hits / supports, copy=True, nan=zero_division).mean()

recalls = hits / supports
precisions = hits / allpreds
f1s = 2 * (precisions * recalls) / (precisions + recalls)

# fix nans & compute averages
i=0
for arr in (precisions, recalls, f1s):
np.nan_to_num(arr, copy=False, nan=zero_division)
weighted_averages[i] = (arr * supports).sum() / len(y_true)
macro_averages[i] = arr.mean()
i+=1

return hits, misses, accuracy, balanced_accuracy, supports, precisions, recalls, f1s, macro_averages, weighted_averages
👍63
Выложила в Линкедин новость про то, что наше исследование включили в программу Interspeech 2023 со всеми ссылками:

https://www.linkedin.com/posts/laida-kushnareva_interspeech-speechprocessing-tda-activity-7084488426594394113-3C5l/

(На самом деле, это произошло уже пару недель назад, но я то ли забыла написать, то ли постеснялась ☺️)
Очень волнуюсь, конечно, в связи с предстоящей конференцией: дадут ли визу (вчера наконец-то подала документы), будет ли мне хоть что-то понятно из чужих докладов на этой конфе (я ведь всё-таки больше специализируюсь на обработке текста), да и в целом, как коллеги по науке, занимающиеся обработкой речи, воспримут наш необычный подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1
#sklearn #metrics #optimization #numba

В гитхабе sklearn-а началась некая дискуссия о том, нужны ли быстрые метрики или даже использование Numba в sklearn. Возможно, у Вас тоже есть своё мнение?
❤‍🔥3
#physics #electrons

"Стандартная модель физики частиц предсказывает равное количество материи и антиматерии вокруг нас, что на самом деле не так. Частицы материи и антиматерии должны были аннигилировать вскоре после Большого взрыва — они идентичны по всем характеристикам за исключением знака заряда. Тем самым сегодня Вселенная была бы пуста, и нас бы в ней не было. Следовательно, есть вероятность, что частицы и античастицы могут отличаться чем-то пока неуловимым, поэтому так важно измерить все доступные для этого свойства частиц. Отсутствие симметрии заряда у электрона — если у него обнаружится электрический дипольный момент, пусть даже слабый — могло бы дать пищу для новых теорий о дисбалансе вещества и антивещества во Вселенной.

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

Новая точность измерений магнитного диполя электрона в 2,4 раза превысила точность измерений в предыдущем эксперименте. И эта точность была в 1 млрд выше предсказанной Стандартной моделью. Если бы электрон был размером с Землю, то учёные смогли бы увидеть асимметрию заряда размерами с радиус одного атома. Похоже, дальше нет смысла искать дипольный момент у электрона. Даже если он обнаружится, то его влияние на дисбаланс материи и антиматерии во Вселенной будет настолько небольшим, что его можно будет не учитывать."

https://3dnews.ru/1089770/elektronu-otkazano-prinimat-ovalnuyu-formu-on-popregnemu-sharik-pokazalo-novoe-issledovanie
👍2👨‍💻1
#astronomy

"Поиск в районе разрушения метеорита IM1 магнитным тралом принёс результат. После просеивания магнитных частиц вулканического происхождения удалось обнаружить магнитные образцы размером меньше миллиметра, которые отличались от «фоновых» частиц, поднятых со дна на контрольном участке. Анализ показал, что частички состоят на 84 % из железа, на 8 % из кремния, на 4 % из магния и на 2 % из титана, плюс микроэлементы. Кроме того, в образцах были выявлены изотопы урана и свинца, что позволяет оценить возраст образцов по периоду полураспада урана. Данные по двум образцам показали возраст 13,8 млрд лет, тогда как образцы с контрольного участка показывали возраст 4,6 млрд лет (возраст Солнечной системы). Это стало ещё одним доказательством происхождения метеорита IM1 вне нашей системы."

https://3dnews.ru/1089757/so-dna-tihogo-okeana-podnyati-fragmenti-pervogo-megzvyozdnogo-meteorita-uchyonie-nadeyalis-nayti-v-nih-priznaki-inoplanetnih-tehnologiy
Марк – американец русского происхождения. Традиционно он приезжает на годовщины компании, ну и постоянно смешит меня своими реакциями.
- Слышал, в марте прошлого года у Яндекс.Еды произошла утечка данных?
- Ого, и сколько в итоге они по индивидуальным, коллективным искам выплатили?
#ml #voting #ensembling #err #borda #bucklin #condorcet #coombs #reciprocalranking #instantrunoff #fs #featureselection

Гуглил методы голосования (БордА и прочее), и неожиданно наткнулся на их применение в... отборе признаков! Вот уж чего никогда не видел раньше. Есть некий шанс, что это полезно, т.к. один из методов такого "демократического ансамблирования" (Ensemble Reciprocal Ranking) зарулил "лучший одиночный метод" (это был SHAP).

https://towardsdatascience.com/ensemble-feature-selection-for-machine-learning-c0df77b970f9
Forwarded from Борис опять
#dl #tensorflow

Сильно удивился, что с релиза 2.11 TF перестал поддерживать GPU на винде. Да и правильно, хрен с ней, ведь в мире никто не пользуется виндой. Но вроде появились какие-то плагины directml, которые якобы могут задействовать на винде любой GPU, в т.ч. и от AMD. Тестить пока страшно. Кстати, версии куда, которые использует TF, по-прежнему отстают от того что релизит Нвидия. отстают уже почти на 2 года. почему команде tensorflow настолько насрать на их продукт?

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
# Anything above 2.10 is not supported on the GPU on Windows Native
pip install "tensorflow<2.11"

При том, что текущая версия Cuda уже 12+.
😨1
#catboost

В Катбусте тоже всем пофигу на баги, похоже. Уже вторую неделю висит issue, что с Precision и F1 в early stopping модели не обучаются из-за неправильного дефолта при расчёте точности. Всем насрать, хотя и в чате у них этот вопрос обсудили, и даже с другим юзером из чата сами нашли причину. На производительность тоже пофиг, roc_auc у них считается даже немного медленнее, чем в sklearn. На мой пост о том, что с помощью numba и алгоритма из fastauc можно запросто ускорить её расчёт в 8 раз никто из команды не отреагировал. Я был об этой команде лучшего мнения, видимо, зря.
🎉1💔1