#pandas #gems
Не так-то просто использовать .isin в пандас сразу для нескольких полей. Единственное, что работает, это кортежи, списком не выйдет:
Не так-то просто использовать .isin в пандас сразу для нескольких полей. Единственное, что работает, это кортежи, списком не выйдет:
df[df[['DEVICE', 'READING']].apply(tuple, axis = 1).isin([('DEV1', 'READ1'), ('DEV1', 'READ2'), ('DEV2','READ1')])]
Stack Overflow
Pandas isin with multiple columns
I want to select all rows in a dataframe which contain values defined in a list.
I've got two approaches which both do not work as expected/wanted.
My dataframe looks something like this:
Timestamp
I've got two approaches which both do not work as expected/wanted.
My dataframe looks something like this:
Timestamp
#pandas
Вот говорят, мол, пандас, взрослый мощный фреймворк, опенсорс, все дела.
Но попробуйте применить к датафрейму .query по полю с мультииндексом, окажется, что в общем случае нет способа это сделать. Запрос висит на гитхабе в открытом статусе с 2016. "Что это, глупость или предательство?"
Вот говорят, мол, пандас, взрослый мощный фреймворк, опенсорс, все дела.
Но попробуйте применить к датафрейму .query по полю с мультииндексом, окажется, что в общем случае нет способа это сделать. Запрос висит на гитхабе в открытом статусе с 2016. "Что это, глупость или предательство?"
Stack Overflow
How to use pandas query() to correctly reference multiindex column headers in the query expression?
With a simple (single-level) column index one can access a column in a pandas DataFrame using .query() as follows:
df1 = pd.DataFrame(np.random.rand(10,2),index=range(10),columns=['A','B'])
df1.qu...
df1 = pd.DataFrame(np.random.rand(10,2),index=range(10),columns=['A','B'])
df1.qu...
#gpt
"Модель GPR-3.5-turbo получила расширенное контекстное окно (количество текста, учитываемое в процессе генерации). Увеличение контекстного окна позволяет модели лучше понимать смысл запросов и выдавать более соответствующие им ответы, не отклоняясь от темы. Модель GPR-3.5-turbo имеет контекстное окно в 16 тыс. токенов, что в четыре раза больше по сравнению с аналогичным показателем GPT-3.5. Также было объявлено, что в настоящее время OpenAI тестирует модель GPT-4 с контекстным окном в 32 тыс. токенов.
Стоимость использования стандартной версии GPT-3.5-turbo (без расширенного контекстного окна) снижена на 25 % до $0,0015 за 1 тыс. входных токенов и $0,002 за 1 тыс. выходных токенов, что соответствует примерно 700 страницам текста за $1. Стоимость использования модели text-embedding-ada-002, которая позволяет измерить сходство текстов, снижена на 75 % до $0,0001 за 1 тыс. токенов."
https://3dnews.ru/1088373/openai-predstavila-gpt35turbo-i-gpt4-novie-funktsii-i-snigennaya-stoimost-ispolzovaniya
"Модель GPR-3.5-turbo получила расширенное контекстное окно (количество текста, учитываемое в процессе генерации). Увеличение контекстного окна позволяет модели лучше понимать смысл запросов и выдавать более соответствующие им ответы, не отклоняясь от темы. Модель GPR-3.5-turbo имеет контекстное окно в 16 тыс. токенов, что в четыре раза больше по сравнению с аналогичным показателем GPT-3.5. Также было объявлено, что в настоящее время OpenAI тестирует модель GPT-4 с контекстным окном в 32 тыс. токенов.
Стоимость использования стандартной версии GPT-3.5-turbo (без расширенного контекстного окна) снижена на 25 % до $0,0015 за 1 тыс. входных токенов и $0,002 за 1 тыс. выходных токенов, что соответствует примерно 700 страницам текста за $1. Стоимость использования модели text-embedding-ada-002, которая позволяет измерить сходство текстов, снижена на 75 % до $0,0001 за 1 тыс. токенов."
https://3dnews.ru/1088373/openai-predstavila-gpt35turbo-i-gpt4-novie-funktsii-i-snigennaya-stoimost-ispolzovaniya
3DNews - Daily Digital Digest
OpenAI обновила GPT-3.5-turbo и GPT-4 новыми функциями и снизила стоимость их использования
По мере роста конкуренции в сфере генеративных нейросетей один из лидеров направления в лице OpenAI представил обновлённые версии алгоритмов генерации текста, а также снизил стоимость их использования.
#trading #ml #chan
Любопытный подход к отбору признаков: сначала схожие фичи группируются в кластера, дальнейший отбор ведётся FS-алгоритмом уже по кластерам. Видимо, это сразу решает проблему колллинеарности.
https://www.youtube.com/watch?v=2-5HYJ0HhyQ
Любопытный подход к отбору признаков: сначала схожие фичи группируются в кластера, дальнейший отбор ведётся FS-алгоритмом уже по кластерам. Видимо, это сразу решает проблему колллинеарности.
https://www.youtube.com/watch?v=2-5HYJ0HhyQ
YouTube
E P Chan: Improving Trading Strategies with Machine Learning, Feature Selection 20210318
The overfitting quandary in Machine Learning.has been resolved using Random Forest Classifiers. For Financial Machine Learning, Lopez de Prado came up with Meta Labeling and Dr Chan and others are applying it in his Tail Reaper Fund, and offering a service.…
#yandex #ml #recommenders #transformers
Лучшие результаты для рекомендации Яндекс музыки дал трансформер сразу с 3+ лоссами.
Слишком большая история оказалась вредной.
Проделана гигантская работа, при этом вероятность лайка рекомендованного трека выросла всего на ~2%.
Правда, разнообразие рекомендаций увеличилось на 6%, и вероятность лайка не слышанного ранее трека взлетела уже на 16%.
Неясно, что имелось в виду, проценты или процентные пункты. Абсолютные итоговые значения вероятностей не разгласили.
https://www.youtube.com/watch?v=bk7J1oZGw6A&
Лучшие результаты для рекомендации Яндекс музыки дал трансформер сразу с 3+ лоссами.
Слишком большая история оказалась вредной.
Проделана гигантская работа, при этом вероятность лайка рекомендованного трека выросла всего на ~2%.
Правда, разнообразие рекомендаций увеличилось на 6%, и вероятность лайка не слышанного ранее трека взлетела уже на 16%.
Неясно, что имелось в виду, проценты или процентные пункты. Абсолютные итоговые значения вероятностей не разгласили.
https://www.youtube.com/watch?v=bk7J1oZGw6A&
YouTube
Даниил Бурлаков | Внедрение трансформеров в Яндекс Музыку
В этом видео:
Рассказываем небольшой бэкграунд о том как работает моя волна и где там можно использовать большой трансформер. Потом проходимся по построению и обучению модели (с парой фан стори о том что работает а что нет). Потом немного про итоговое внедрение…
Рассказываем небольшой бэкграунд о том как работает моя волна и где там можно использовать большой трансформер. Потом проходимся по построению и обучению модели (с парой фан стори о том что работает а что нет). Потом немного про итоговое внедрение…
#numpy
В нампай, оказывается, можно легко докинуть нулей к массиву, хоть слева, хоть справа.
В нампай, оказывается, можно легко докинуть нулей к массиву, хоть слева, хоть справа.
A = np.array([1,2,3,4,5])
np.pad(A, (2, 3), 'constant')
# array([0, 0, 1, 2, 3, 4, 5, 0, 0, 0])
#irobot #news
Насосали.
"Предложенная компанией Amazon сделка по покупке за $1,7 млрд фирмы iRobot, занимающейся производством роботов-пылесосов, была полностью одобрена антимонопольным ведомством Великобритании. Положительное решение регулятора привело к резкому росту акций iRobot до начала торгов, пишет издание Bloomberg."
https://3dnews.ru/1088520/velikobritaniya-odobrila-sdelku-po-pogloshcheniyu-irobot-kompaniey-amazon
Насосали.
"Предложенная компанией Amazon сделка по покупке за $1,7 млрд фирмы iRobot, занимающейся производством роботов-пылесосов, была полностью одобрена антимонопольным ведомством Великобритании. Положительное решение регулятора привело к резкому росту акций iRobot до начала торгов, пишет издание Bloomberg."
https://3dnews.ru/1088520/velikobritaniya-odobrila-sdelku-po-pogloshcheniyu-irobot-kompaniey-amazon
3DNews - Daily Digital Digest
Великобритания одобрила поглощение производителя роботов-пылесосов iRobot компанией Amazon за $1,7 млрд
Предложенная компанией Amazon сделка по покупке за $1,7 млрд фирмы iRobot, занимающейся производством роботов-пылесосов, была полностью одобрена антимонопольным ведомством Великобритании.
#trading #erema
Немного новостей по торговому боту. Пытаясь начать проект без МЛ (была у меня идейка, покупать дёшево и продавать дорого), потратил несколько недель и понял, что без МЛ, за счёт простого перебора параметров, не получается, это путь в никуда. Работу над биржевыми данными высокого разрешения вел около месяца, попутно улучшая свою библиотечку для временных рядов.
Внезапно понял, что по курсу скальпинга, куда я записался месяц тому, уже прошли все уроки и полагается вовсю торговать (ручками) на заведённые 20 т.р., а я не сделал ещё ни одной сделки. Отбросил на этих выходных пока дорогие детальные данные в сторону, и засел за более доступные, идущие от брокера бесплатно, с желанием написать хоть что-то, сумеющее за меня не совсем позорно поторговать.
Прогресс существенный:
1) благодаря библиотеке AlorPy настроил сбор стриминговых данных от брокера и сохранение в базу. Прилетают просто сотни изменений стаканов в секунду.
2) построил детальный план по моделированию, с чего начинать и в каком порядке добавлять. на простых признаках потренировался на нескольких днях, увидел вроде предсказуемость.
3) сегодня несколько усложнил модель с использованием своей достаточно богатой библиотечки статпризнаков над 3 группами торговых факторов. Офигел от количества требуемых расчётов. На 16 ядрах 1 торговый день будет обсчитываться около часа. И это я ещё урезал хотелки. На первых порах домашний сервер сойдёт, но для серьёзной работы только облако, только Dask/Spark. Благо бэк сервиса поиска дешёвых серверов у меня готов и работает уже 2 недели без сбоев.
На сегодня план дописать многопоточный расчёт признаков. В течение недели:
1) обсчитать хотя бы месяц торгов и построить пару моделек с разными таргетами
2) написать простой бэктестер и потестить несколько торговых политик, основанных на прогнозах
3) научиться применять лучшую модель на живом потоке рыночных данных
4) запустить робота с лучшей политикой в работу
Всё это хотел сделать за выходные к сегодняшнему утру вообще-то, но теперь не уверен, хватит ли даже недели.
Немного новостей по торговому боту. Пытаясь начать проект без МЛ (была у меня идейка, покупать дёшево и продавать дорого), потратил несколько недель и понял, что без МЛ, за счёт простого перебора параметров, не получается, это путь в никуда. Работу над биржевыми данными высокого разрешения вел около месяца, попутно улучшая свою библиотечку для временных рядов.
Внезапно понял, что по курсу скальпинга, куда я записался месяц тому, уже прошли все уроки и полагается вовсю торговать (ручками) на заведённые 20 т.р., а я не сделал ещё ни одной сделки. Отбросил на этих выходных пока дорогие детальные данные в сторону, и засел за более доступные, идущие от брокера бесплатно, с желанием написать хоть что-то, сумеющее за меня не совсем позорно поторговать.
Прогресс существенный:
1) благодаря библиотеке AlorPy настроил сбор стриминговых данных от брокера и сохранение в базу. Прилетают просто сотни изменений стаканов в секунду.
2) построил детальный план по моделированию, с чего начинать и в каком порядке добавлять. на простых признаках потренировался на нескольких днях, увидел вроде предсказуемость.
3) сегодня несколько усложнил модель с использованием своей достаточно богатой библиотечки статпризнаков над 3 группами торговых факторов. Офигел от количества требуемых расчётов. На 16 ядрах 1 торговый день будет обсчитываться около часа. И это я ещё урезал хотелки. На первых порах домашний сервер сойдёт, но для серьёзной работы только облако, только Dask/Spark. Благо бэк сервиса поиска дешёвых серверов у меня готов и работает уже 2 недели без сбоев.
На сегодня план дописать многопоточный расчёт признаков. В течение недели:
1) обсчитать хотя бы месяц торгов и построить пару моделек с разными таргетами
2) написать простой бэктестер и потестить несколько торговых политик, основанных на прогнозах
3) научиться применять лучшую модель на живом потоке рыночных данных
4) запустить робота с лучшей политикой в работу
Всё это хотел сделать за выходные к сегодняшнему утру вообще-то, но теперь не уверен, хватит ли даже недели.
#paleontology
"Яма костей", как же. Про Сахул тоже интересно.
https://www.youtube.com/watch?v=zkqMK6sDJeY
"Яма костей", как же. Про Сахул тоже интересно.
https://www.youtube.com/watch?v=zkqMK6sDJeY
YouTube
Станислав Дробышевский | Ужасы нашего прошлого: от бытовых убийств до глобальных катастроф
Подпишись на канал ► https://www.youtube.com/channel/UCr0sFcTJoJVI01erYEi2bNw?sub_confirmation=1
Как антропологи расследуют громкие преступления прошлого? Кто из древних людей был самым брутальным и кровожадным? Какие истории можно назвать архаичными примерами…
Как антропологи расследуют громкие преступления прошлого? Кто из древних людей был самым брутальным и кровожадным? Какие истории можно назвать архаичными примерами…
#parallel #heapq #codegems
Часто, если мне надо распределить работу между узлами, я просто используюизучать книги по алгоритмам гуглить. Лучшее решение очень элегантно и использует модуль heapq.
266586 4
273195 5
269503 6
271798 6
268900 6
https://stackoverflow.com/a/61648403/4334120
Часто, если мне надо распределить работу между узлами, я просто использую
np.array_split(job_elements, ncores)
. Но что делать, если элементы работы содержат разное количество инструкций? Тогда на практике часто складывается ситуация, что большинство узлов завершили свои вычисления, и все дружно ждут, пока пыхтит неудачливый узел, получивший самый большой кусок работы. Давно этот вопрос не давал мне покоя, тем более, что предстоит сделать много расчётов, и я бросился import heapqПример распределения вычислений по 27 тикерам с разным количеством сделок на 5 ядер:
def distribute_work(workload: Sequence, nworkers: int) -> tuple:
"""Distribute array workload into nworkers chunks of approximately same total size."""
planned_work_per_worker = [[] for _ in range(nworkers)]
workload_indices_per_worker = [[] for _ in range(nworkers)]
totals = [(0, i) for i in range(nworkers)]
heapq.heapify(totals)
for i, value in enumerate(workload):
total, index = heapq.heappop(totals)
planned_work_per_worker[index].append(value)
workload_indices_per_worker[index].append(i)
heapq.heappush(totals, (total + value, index))
return planned_work_per_worker, workload_indices_per_worker
work_by_ticker = np.array([187109,153572,128916,107183,97039,72846,60048,59418,48540,43701,41435,39218,38058,36390,31703,31466,28101,27052,23557,17699,14327,12416,12158,11787,11464,11136,3643])[[187109, 39218, 28101, 12158], [153572, 48540, 36390, 23557, 11136], [128916, 59418, 38058, 27052, 12416, 3643], [107183, 60048, 43701, 31703, 17699, 11464], [97039, 72846, 41435, 31466, 14327, 11787]]
sol, sol_indices = distribute_work(work_by_ticker, nworkers=5)
print(sol)
for subarr in sol:
subarr = np.array(subarr)
print(subarr.sum(), subarr.size)
266586 4
273195 5
269503 6
271798 6
268900 6
https://stackoverflow.com/a/61648403/4334120
Stack Overflow
Split list into N sublists with approximately equal sums
I have a list of integers, and I need to split it into a given number of sublists (with no restrictions on order or the number of elements in each), in a way that minimizes the average difference i...
Forwarded from Dealer.AI
В своём прошлом посте говорил о слухах, что AMD будет поддерживать вычисления DL моделей на GPU и колабиться с PyTorch
И вот свершилось!
Лиза Су, также продемонстрировала, что на новой gpu для Deep learning AMD MI300X влезает фулл LLM класса Falcon40B. Звучит многообещающе. Да и в целом, конкуренция это хорошо.
З. Ы. Да я в курсе, что Лиза Су дальняя родственница Хуанга из NVIDIA. Но вы наверняка и не знали, что интел и NVIDIA были долго кормовой базой для AMD, пока правительство не врубило антимонопольные штучки и позволило уйти в свободный полёт AMD. Опять же конкуренция важная штука для капитализма.
И вот свершилось!
Лиза Су, также продемонстрировала, что на новой gpu для Deep learning AMD MI300X влезает фулл LLM класса Falcon40B. Звучит многообещающе. Да и в целом, конкуренция это хорошо.
З. Ы. Да я в курсе, что Лиза Су дальняя родственница Хуанга из NVIDIA. Но вы наверняка и не знали, что интел и NVIDIA были долго кормовой базой для AMD, пока правительство не врубило антимонопольные штучки и позволило уйти в свободный полёт AMD. Опять же конкуренция важная штука для капитализма.
Telegram
Dealer.AI
Внезапно лента выдала мне интересное.
Говорят, что скоро NVIDIA будет не нужОн, AMD решения в тч Radeon взяли в оборот на Pytorch2 🤔
Говорят, что скоро NVIDIA будет не нужОн, AMD решения в тч Radeon взяли в оборот на Pytorch2 🤔
#trading #erema
Итак, волнительный момент ) почти неделя напряжённой работы близка к завершению, на данный момент есть 2 модельки, и можно 1 вызовом получить от брокера актуальные рыночные данные по акции, и прогнозы роста/падения по ней от моделей. Хорошо бы сделать бэктест торговой политики, но очень уж хочется влезть в рынок, запустить конвейер, пусть и (поначалу) ценой качества. Есть сомнения, что формат живых данных точно совпадает с тем, на чём модели обучались... Ну да ладно, увидим в процессе.
В общем, решил не гнать лошадей ) Сверю форматы данных, проведу небольшой бэктест сегодня. А завтра уже попробуем сделки.
Итак, волнительный момент ) почти неделя напряжённой работы близка к завершению, на данный момент есть 2 модельки, и можно 1 вызовом получить от брокера актуальные рыночные данные по акции, и прогнозы роста/падения по ней от моделей. Хорошо бы сделать бэктест торговой политики, но очень уж хочется влезть в рынок, запустить конвейер, пусть и (поначалу) ценой качества. Есть сомнения, что формат живых данных точно совпадает с тем, на чём модели обучались... Ну да ладно, увидим в процессе.
В общем, решил не гнать лошадей ) Сверю форматы данных, проведу небольшой бэктест сегодня. А завтра уже попробуем сделки.