Интересное что-то – Telegram
Интересное что-то
517 subscribers
2.71K photos
252 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://news.1rj.ru/str/asisakov_channel
Чат: https://news.1rj.ru/str/youknowds_chat
Download Telegram
Forwarded from Ivan Novikov
Материалы курса:
- Гитхаб с ноутбуками
- Записи по 2,3 лекции в PDF (стохастические процессы)

Рекомендуемые ресурсы:
- Записи лекций Seydel в PDF + его сайт с материалами по курсу Computational Finance
- Плейлист лекций по вычислительным финансам от Lech Grzelak + GitHub с кодом
- Пост с книгами по двум курсам выше
- Методичка на русском языке по курсу Математической теории финансов в МФТИ
- Пост с дополнительной литературой

- Ссылки на посты с литературой по стохастическим процессам:
Shreeve Stochastic Calculus I and Stochastic Calculus 2;
Damiano Brigo Interest Rate Models;
Степанов Сергей Стохастический мир;
Лекции MIT по стохастическим процессам;
Forwarded from ИЦ "ГЕВИССТА"
Полезные функции NumPy

Функция np.apply_along_axis()

Функция np.apply_along_axis() применяет заданную функцию к 1-D срезу массива вдоль указанной оси.
Давайте создадим массив.

# импортируем NumPy
import numpy as np

# создаем массив NumPy
a = np.array([[0, 0, 0, 1],
[1, 1, 1, 0],
[0, 1, 1, 1],
[0, 1, 1, 0]])

Теперь с помощью функции np.apply_along_axis() применяем по оси строк функцию np.bincount() для подсчета количества вхождений значений, а затем функцию np.argmax() для поиска индекса максимального элемента.

# применяем по оси строк функцию подсчета количества
# вхождений значений, затем функцию поиска индекса
# максимального элемента
np.apply_along_axis(lambda x: np.argmax(np.bincount(x)),
axis=0,
arr=a)

array([0, 1, 1, 0])



Практический пример применения https://github.com/rasbt/mlxtend/blob/master/mlxtend/evaluate/bias_variance_decomp.py
Forwarded from ИЦ "ГЕВИССТА"
Трюки_в_NumPy_от_Антона_Вахрушева_GM_Kaggle,_Лаборатория_Сбербанка.ipynb
14.6 KB
Проект «Наши»
Трюки в NumPy от Антона Вахрушева (GM Kaggle, Лаборатория Сбербанка)

In-place операции в NumPy и быстрый mean target encoder на NumPy.
Подробный разбор будет в моей книжке по предподготовке.
Forwarded from Just links
Omnigrok: Grokking Beyond Algorithmic Data https://arxiv.org/abs/2210.01117
Forwarded from Start Career in DS
📊 [ENG] Очень красивый курс по базовой теории вероятностей и статистике:
https://seeing-theory.brown.edu/
Тут фактически ускоренное введение в предметную область, которое позволит вам быстро понять ключевые идеи и термины.

Много супер-наглядных визуализаций. Даже если считаете что шарите в статистике - советую потыкаться и получить эстетическое удовлетворение.
Мне понравились визуализации базовых понятий (мат. ожидание, дисперсия, функция распределения, условная вероятность и т.д.). Если они всегда вас пугали или настораживали - рекомендую посмотреть курс.
Forwarded from Arseniy Trushin
А. Да. Я же хотел написать, как перестановки генерировать.

Ну так вот. Если у нас есть перестановка [1, 2, 3], то какие перестановки из неё можно сделать, имея на руках 4?
Ну конечно же [4, 1, 2, 3], [1, 4, 2, 3], [1, 2, 4, 3] и [1, 2, 3, 4]. То есть, рассуждаем по математической индукции по длине перестановки. Если у нас n = 1, то список всех перестановок понятен: [[1]]. А если мы уже решили задачу для n - 1, то для решения задачи для n нужно это самое n воткнуть в разные места каждой из сгенерированных ранее перестановок. Вот так

def insert_before(pos, num, perm):
return perm[:pos] + [num] + perm[pos:]

def permutations(n):
if n == 1:
return [[1]]
return [insert_before(q, n, current_perm) for current_perm in permutations(n-1) for q in range(n)]
Forwarded from DevFM
Тернистый путь к ClickHouse

Статья ClickHouse: Путь джедая, искавшего дом для своих данных не о самой технологии, а о неоднозначном, сложном пути выбора технологии. И в этом её особенная ценность.

Внедрение новой технологии не возникает на пустом месте. Нужно критически подходить к этому вопросу.
1. Сначала обнаруживается проблема. Если проблемы нет, то и чинить не нужно. В статье обозначена проблема сбора и анализа большого количества данных о действиях пользователей из разных систем и их вечном хранении.
2. Решение следует начинать с анализа предметной области и формирования важных критериев. Автор выделил сложность внедрения и сопровождения, порог входа для аналитиков данных, цену использования.
3. Предлагаемые решения сравниваются по сформированным критериям.

Помимо описания процесса выбора и возникающих сложностей интересно узнать в ретроспективе об архитектуре хранения и работы с данными: MariaDB -> Elasticsearch -> ClickHouse.

Для желающих погрузиться в технические особенности рекомендуем статью от тех же авторов: Репликация ClickHouse без костылей: ожидание и реальность
#skills #softskills
Forwarded from ИЦ "ГЕВИССТА"
Шпаргалка по подбору p, d, q для ARIMA
Forwarded from Борис опять
#лабораторный_журнал

Время закатать рукава и сделать что-то полезное: написать API для базы данных с изображениями.

Больше года не писал API, но я съел на этом столько собак, что код сам вылетает из под пальцев.
Мой любимый сетап:
* DB - PostgreSQL
* ORM - SqlAlchemy
* Миграции - Alembic
* API - Flask
* Сериализация/валидация - Marshmallow
* Тесты - Pytest
* Форматирование кода - Black
* Деплой - Nginx + UWSGI, которые общаются по файлу-сокету как описано здесь. Такой сетап работает даже быстрее, чем uvicorn, потому что быстрее NGINX с настроенным кешированием просто некуда.

Разработка ведется через Docker. docker-compose run —rm —service-ports app bash поднимает локальный postgres, контейнер с приложением, контейнер с NGINX. Код передается в контейнер через volume. Разрабатываешь внутри контейнера, даже никаких venv/poetry/conda не надо - докер обеспечивает environment. Если надо можно подключиться к постгресу любым DB клиентом. Все это целиком повторяет то, как система выглядит в продакшне, поэтому нет проблемы “но на моем компьютере-то работает!”. Более того, деплой можно организовать через запуск такого же docker-compose.yml, только с другими параметрами.

Этот надежный как швейцарские часы сетап покрывает все нужды типичной API. При необходимости к нему без труда прикручиваются другие приблуды типа RabbitMQ + Celery для асинхронных тасок.

Есть только одна загадка: зачем нужен Django?
Forwarded from Борис опять
Кстати на весь этот сетап можно посмотреть здесь: https://github.com/btseytlin/cowork-19

Это сайт с резюме и вакансиями, который я сделал в Первый Ковид, чтобы помочь сокращенным друзьям найти работу.