#trading #finance #lob #dl
Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).
https://www.youtube.com/watch?v=diLtyRg6cl4
Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).
https://www.youtube.com/watch?v=diLtyRg6cl4
YouTube
Universal features of intraday price formation: an exploration via Deep Learning
Live from QuantMinds International, Professor Rama Cont, Professor Of Mathematics And Chair In Mathematical Finance at Imperial College London presents on universal features of intraday price formation, including looking at a Deep Learning approach to analysis…
#optimization #ml #metrics #python #numba #codegems
В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.
В общем, 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👍6✍3
Forwarded from Техножрица 👩💻👩🏫👩🔧
Выложила в Линкедин новость про то, что наше исследование включили в программу Interspeech 2023 со всеми ссылками:
https://www.linkedin.com/posts/laida-kushnareva_interspeech-speechprocessing-tda-activity-7084488426594394113-3C5l/
(На самом деле, это произошло уже пару недель назад, но я то ли забыла написать, то ли постеснялась☺️ )
Очень волнуюсь, конечно, в связи с предстоящей конференцией: дадут ли визу (вчера наконец-то подала документы), будет ли мне хоть что-то понятно из чужих докладов на этой конфе (я ведь всё-таки больше специализируюсь на обработке текста), да и в целом, как коллеги по науке, занимающиеся обработкой речи, воспримут наш необычный подход.
https://www.linkedin.com/posts/laida-kushnareva_interspeech-speechprocessing-tda-activity-7084488426594394113-3C5l/
(На самом деле, это произошло уже пару недель назад, но я то ли забыла написать, то ли постеснялась
Очень волнуюсь, конечно, в связи с предстоящей конференцией: дадут ли визу (вчера наконец-то подала документы), будет ли мне хоть что-то понятно из чужих докладов на этой конфе (я ведь всё-таки больше специализируюсь на обработке текста), да и в целом, как коллеги по науке, занимающиеся обработкой речи, воспримут наш необычный подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
Linkedin
[Video] Laida Kushnareva on LinkedIn: #interspeech #speechprocessing #tda #topology
In the meantime, the paper of my colleagues and I, called "TOPOLOGICAL DATA ANALYSIS FOR SPEECH PROCESSING", has been included in the official program of the…
❤🔥1
#sklearn #metrics #optimization #numba
В гитхабе sklearn-а началась некая дискуссия о том, нужны ли быстрые метрики или даже использование Numba в sklearn. Возможно, у Вас тоже есть своё мнение?
В гитхабе sklearn-а началась некая дискуссия о том, нужны ли быстрые метрики или даже использование Numba в sklearn. Возможно, у Вас тоже есть своё мнение?
GitHub
Speed up classification_report · Issue #26808 · scikit-learn/scikit-learn
Describe the workflow you want to enable I'm concerned with slow execution speed of the classification_report procedure which makes it barely suitable for production-grade workloads. On a 8M sa...
❤🔥3
#physics #electrons
"Стандартная модель физики частиц предсказывает равное количество материи и антиматерии вокруг нас, что на самом деле не так. Частицы материи и антиматерии должны были аннигилировать вскоре после Большого взрыва — они идентичны по всем характеристикам за исключением знака заряда. Тем самым сегодня Вселенная была бы пуста, и нас бы в ней не было. Следовательно, есть вероятность, что частицы и античастицы могут отличаться чем-то пока неуловимым, поэтому так важно измерить все доступные для этого свойства частиц. Отсутствие симметрии заряда у электрона — если у него обнаружится электрический дипольный момент, пусть даже слабый — могло бы дать пищу для новых теорий о дисбалансе вещества и антивещества во Вселенной.
В эксперименте характеристики электронов измерялись лазерами, а сам подопытный электрон был помещён внутрь ионизированной молекулы (или обнаружен там). Затем на систему наводилось мощнейшее электромагнитное поле. Если бы заряд электрона был растянут, а не сосредоточен в одной точке, то он упал бы на бок «как яйцо на столе» при смене направления магнитного поля, поясняют учёные. Но электрон оставался в стабильном положении «как теннисный мячик», которому некуда и незачем катиться.
Новая точность измерений магнитного диполя электрона в 2,4 раза превысила точность измерений в предыдущем эксперименте. И эта точность была в 1 млрд выше предсказанной Стандартной моделью. Если бы электрон был размером с Землю, то учёные смогли бы увидеть асимметрию заряда размерами с радиус одного атома. Похоже, дальше нет смысла искать дипольный момент у электрона. Даже если он обнаружится, то его влияние на дисбаланс материи и антиматерии во Вселенной будет настолько небольшим, что его можно будет не учитывать."
https://3dnews.ru/1089770/elektronu-otkazano-prinimat-ovalnuyu-formu-on-popregnemu-sharik-pokazalo-novoe-issledovanie
"Стандартная модель физики частиц предсказывает равное количество материи и антиматерии вокруг нас, что на самом деле не так. Частицы материи и антиматерии должны были аннигилировать вскоре после Большого взрыва — они идентичны по всем характеристикам за исключением знака заряда. Тем самым сегодня Вселенная была бы пуста, и нас бы в ней не было. Следовательно, есть вероятность, что частицы и античастицы могут отличаться чем-то пока неуловимым, поэтому так важно измерить все доступные для этого свойства частиц. Отсутствие симметрии заряда у электрона — если у него обнаружится электрический дипольный момент, пусть даже слабый — могло бы дать пищу для новых теорий о дисбалансе вещества и антивещества во Вселенной.
В эксперименте характеристики электронов измерялись лазерами, а сам подопытный электрон был помещён внутрь ионизированной молекулы (или обнаружен там). Затем на систему наводилось мощнейшее электромагнитное поле. Если бы заряд электрона был растянут, а не сосредоточен в одной точке, то он упал бы на бок «как яйцо на столе» при смене направления магнитного поля, поясняют учёные. Но электрон оставался в стабильном положении «как теннисный мячик», которому некуда и незачем катиться.
Новая точность измерений магнитного диполя электрона в 2,4 раза превысила точность измерений в предыдущем эксперименте. И эта точность была в 1 млрд выше предсказанной Стандартной моделью. Если бы электрон был размером с Землю, то учёные смогли бы увидеть асимметрию заряда размерами с радиус одного атома. Похоже, дальше нет смысла искать дипольный момент у электрона. Даже если он обнаружится, то его влияние на дисбаланс материи и антиматерии во Вселенной будет настолько небольшим, что его можно будет не учитывать."
https://3dnews.ru/1089770/elektronu-otkazano-prinimat-ovalnuyu-formu-on-popregnemu-sharik-pokazalo-novoe-issledovanie
3DNews - Daily Digital Digest
Электрону отказано принимать овальную форму — он по-прежнему «шарик», показало новое исследование
Учёные из Университета Колорадо установили самые жёсткие на сегодня ограничения на потенциальное разнесение электрических зарядов в электроне.
#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
"Поиск в районе разрушения метеорита 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
3DNews - Daily Digital Digest
На дне Тихого океана нашли фрагменты первого межзвёздного метеорита — учёные надеются найти в них признаки инопланетных технологий
Группа учёных проекта «Галилей» (Galileo) по поиску инопланетных технологий подняла со дна Тихого океана множество микроскопических шариков с признаками метеоритного происхождения.
Forwarded from Машинное обучение от ИЦ "ГЕВИССТА"
Марк – американец русского происхождения. Традиционно он приезжает на годовщины компании, ну и постоянно смешит меня своими реакциями.
- Слышал, в марте прошлого года у Яндекс.Еды произошла утечка данных?
- Ого, и сколько в итоге они по индивидуальным, коллективным искам выплатили?
- Слышал, в марте прошлого года у Яндекс.Еды произошла утечка данных?
- Ого, и сколько в итоге они по индивидуальным, коллективным искам выплатили?
#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
Гуглил методы голосования (БордА и прочее), и неожиданно наткнулся на их применение в... отборе признаков! Вот уж чего никогда не видел раньше. Есть некий шанс, что это полезно, т.к. один из методов такого "демократического ансамблирования" (Ensemble Reciprocal Ranking) зарулил "лучший одиночный метод" (это был SHAP).
https://towardsdatascience.com/ensemble-feature-selection-for-machine-learning-c0df77b970f9
#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+.
Сильно удивился, что с релиза 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+.
TensorFlow
GPU device plugins | TensorFlow
😨1
#catboost
В Катбусте тоже всем пофигу на баги, похоже. Уже вторую неделю висит issue, что с Precision и F1 в early stopping модели не обучаются из-за неправильного дефолта при расчёте точности. Всем насрать, хотя и в чате у них этот вопрос обсудили, и даже с другим юзером из чата сами нашли причину. На производительность тоже пофиг, roc_auc у них считается даже немного медленнее, чем в sklearn. На мой пост о том, что с помощью numba и алгоритма из fastauc можно запросто ускорить её расчёт в 8 раз никто из команды не отреагировал. Я был об этой команде лучшего мнения, видимо, зря.
В Катбусте тоже всем пофигу на баги, похоже. Уже вторую неделю висит issue, что с Precision и F1 в early stopping модели не обучаются из-за неправильного дефолта при расчёте точности. Всем насрать, хотя и в чате у них этот вопрос обсудили, и даже с другим юзером из чата сами нашли причину. На производительность тоже пофиг, roc_auc у них считается даже немного медленнее, чем в sklearn. На мой пост о том, что с помощью numba и алгоритма из fastauc можно запросто ускорить её расчёт в 8 раз никто из команды не отреагировал. Я был об этой команде лучшего мнения, видимо, зря.
GitHub
Precision calculation error in Early Stopping. Request to add pos_label. · Issue #2422 · catboost/catboost
Problem: catboost version: 1.2 Operating System: Win CPU: + GPU: + Я думаю, в коде catboost вычисляющем precision где-то перепутаны предсказания и истинные значения, поэтому ранняя остановка по точ...
🎉1💔1
#ml #mlops #mlflow #me #metrics #multimodel
Очень срезонировало это выступление. Я сейчас разрабатываю как раз такую систему, с мультиметриками, несколькими моделями разных классов. Даже ещё добавляю сразу ансамбли. Про ME (Maximum Error) как обязательную regression-метрику кажется очень полезно, никогда раньше не слышал. От себя бы добавил в обязательные метрики классификации что-то калибрационное: MAE/std над бинами калибрационной кривой, к примеру.
https://www.youtube.com/watch?v=VJWrSTAlxEs
Очень срезонировало это выступление. Я сейчас разрабатываю как раз такую систему, с мультиметриками, несколькими моделями разных классов. Даже ещё добавляю сразу ансамбли. Про ME (Maximum Error) как обязательную regression-метрику кажется очень полезно, никогда раньше не слышал. От себя бы добавил в обязательные метрики классификации что-то калибрационное: MAE/std над бинами калибрационной кривой, к примеру.
https://www.youtube.com/watch?v=VJWrSTAlxEs
YouTube
Андрей Зубков - Без чего с ML в проде жизнь не мила
Data Fest 2023:
https://ods.ai/events/datafestonline2023
Трек "MLOps":
https://ods.ai/tracks/df23-mlops
Наши соц.сети:
Telegram: https://news.1rj.ru/str/datafest
Вконтакте: https://vk.com/datafest
https://ods.ai/events/datafestonline2023
Трек "MLOps":
https://ods.ai/tracks/df23-mlops
Наши соц.сети:
Telegram: https://news.1rj.ru/str/datafest
Вконтакте: https://vk.com/datafest
#docs #keras #bollocks
Пример плохо, по-мудацки написанной документации.
Вроде технически все опции описаны, но не сказано, в какой ситуации какую применять и зачем. Будущий юзер отрывает доку, читает, и не может понять, а нафига это всё нагородили вообще. Например: когда может понадобиться mask_token? Какая выгода от multi_hot? итд
https://keras.io/api/layers/preprocessing_layers/categorical/string_lookup/#stringlookup-class
Хреновая дока ведёт к тому, что люди постоянно задают на других ресурсах вопросы: а в чём различие, а какую опцию мне лучше использовать, а что это даст? типа этого. Особенно это касается специфичной для продукта функциональности, которая не является общеизвестной в области, или вообще является "уникальной фишкой". А всё потому, что разработчики поленились и не подумали объяснить концепции на высоком уровне в форме, понятной для пользователей. То же самое, кстати, чувствуется при чтении документации Catboost.
Пример плохо, по-мудацки написанной документации.
Вроде технически все опции описаны, но не сказано, в какой ситуации какую применять и зачем. Будущий юзер отрывает доку, читает, и не может понять, а нафига это всё нагородили вообще. Например: когда может понадобиться mask_token? Какая выгода от multi_hot? итд
https://keras.io/api/layers/preprocessing_layers/categorical/string_lookup/#stringlookup-class
Хреновая дока ведёт к тому, что люди постоянно задают на других ресурсах вопросы: а в чём различие, а какую опцию мне лучше использовать, а что это даст? типа этого. Особенно это касается специфичной для продукта функциональности, которая не является общеизвестной в области, или вообще является "уникальной фишкой". А всё потому, что разработчики поленились и не подумали объяснить концепции на высоком уровне в форме, понятной для пользователей. То же самое, кстати, чувствуется при чтении документации Catboost.
keras.io
Keras documentation: StringLookup layer