Интересное что-то
557 subscribers
2.79K photos
253 videos
140 files
4.59K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Forwarded from Dmitry M.
Есть какие-то записи на ютубе: https://www.youtube.com/playlist?list=PLp9ABVh6_x4G5gt4gk68XAuHbpTmYuvl0
Forwarded from Artificial stupidity
​​#statistics

Что такое Population Stability Index (PSI)?

Population Stability Index (PSI) - это метрика, которая позволяет измерить то, насколько распределение некоторой переменной меняется между двумя выборками с течением времени. Она широко используется для мониторинга изменений характеристик популяции и диагностики возможных проблем с эффективностью моделей машинного обучения.

Как считается PSI?

1. Делим выборку на децили по нашему целевому значению (децили считаем по одной из выборок, для нас логично это сделать по более ранней выборке);
2. Для обеих выборок считаем процент значений, попавших в конкретный дециль;
3. Далее считаем (%Actual - %Expected) * ln(%Actual / %Expected) для каждого дециля;
4. Суммируем полученные на шаге 3 значения по всем децилям.

Типичные значения для принятия решения:
1. PSI < 0.1 - разница незначительна;
2. PSI >= 0.1, PSI < 0.2 - небольшая разница между выборками;
3. PSI >= 0.2 - сильная разница между выборками, произошло смещение в данных.

Зачем вообще используется PSI?

Это полезная метрика для систем слежения за качеством данных во времени. Конкретно, с помощью PSI можно отслеживать так называемый data drift, чтобы понимать, когда наши данные начали резко меняться и нам нужно предпринимать те или иные действия (запустить новый процесс доразметки данных, переобучить модель, исследовать новые данные на предмет ошибок и качества поступающих данных и т.д.)
Forwarded from DevFM
Manticore Search

Для полнотекстового поиска во многих проектах активно применяется Elasticsearch. Он же работает в системах для аналитики логов. Пример тому – всем известный ELK-стек. Но не эластиком единым.

Мы начали смотреть в сторону разных поисковых движков и пока остановились на Manticore Search.

Рекомендуем статью Manticore — альтернатива Эластику на C++. Автор начинает с исторической справки, как появился и развивался проект.

Дальнейшее повествование строится на сравнении с главным конкурентом – эластиком. Автор приводит множество интересных бенчмарков. Не будем говорить конкретные, загляните в статью и найдёте для себя что-то интересное. Особенно, если имеете опыт работы с эластиком.

Конечно, стоит критически относиться ко всем описанным тестам. Статья всё-таки подготовлена ребятами из мантикоры. Если бы статью писал кто-то из эластика, он бы нашел, о чём хорошем рассказать. Как говорится: если вы такие умные, то почему такие бедные?

Потрогать мантикору можно прямо из браузера в удобном интерактивном тренажере. А еще в тг у них есть небольшой ламповый чатик, где можно задать свои вопросы и получить ответы. Проверенный лайфхак: если на вопрос не ответили, то повтори его с припиской "думаю переходить на эластик". Подробный ответ будет получен в самое ближайшее время.

Планируем попробовать мантикору в своём проекте. О причинах выбора и результатах расскажем позже.

В заключение, Manticore Search – заслуживающий внимания проект, о котором стоит знать, как о потенциальной альтернативе эластику.
#skills #database
Forwarded from DevFM
Практикуем Kubernetes

Кубер — слон, которого нужно есть по частям. В прошлый раз начали с лайтового введения, где познакомились с основными концепциями, но только в теории.

В этот раз посмотрим практическое руководство на официальном сайте кубера.

В первой части создаём кластер. Во второй деплоим приложение с использованием kubectl. В третьей доступаемся до внутренностей, смотрим на поды и логи. В четвёртой переходим к сервисам и выставляем развёрнутое приложение наружу. В пятой части одна из важных фишек кубера — создание реплик. В заключительной части тоже супер важная штука — обновление приложения без даунтайма.

Все руководства, помимо практической части, сопровождаются теоретическими материалами.

Из приятного — можно ничего не устанавливать себе на компьютер, а пройти всё в терминале на сайте. Для большего погружения рекомендуем всё-таки развернуть у себя Minikube и делать практику локально.
#skills
Мы с коллегам подготовили каталог ссылок на тему
Базы Данных и немного ХД, BI, DE, Data Science

https://systems.wiki/database

Если у вас есть полезные ссылки или желание присоединиться к команде кураторов раздела — пишите, welcome!

Что вошло в подборку:

Данные
Типы данных
Кодировки
Форматы представления, хранения и обмена данными
Категории данных

Управление данными

Основы, виды и история баз данных

Реляционные базы данных

Основы реляционных баз данных

Основы использования реляционных БД и SQL
Получение данных. Основы SQL (DQL: Data Query Language)
Базовые операторы SQL
Использование соединений
Агрегатные и аналитические функции
Основы оптимизации запросов
Простые операции с данными в SQL
Команды определения структур данных в SQL

Объектно-ориентированное программирование и реляционные БД

Проектирование реляционных баз данных
Введение в моделирование данных и нормальные формы
Ключи в БД
Сервисы проектирования РБД

Разработка реляционных баз данных
Производительность и оптимизация SQL
Индексы в таблицах
Планы запроса
Денормализация
Теорема CAP
Транзакции в БД, OLTP, ACID, TCL
Бизнес-логика и обработка данных.
Триггеры и процедуры в реляционных БД

Администрирование реляционных баз данных
Команды администрирования баз данных в SQL
Ограничение видимости данных с помощью представлений
Обновление схем БД, Миграция данных
Миграция данных при модернизации схемы данных и развитии ИС
Миграция данных при смене СУБД
Масштабирование реляционных баз данных

Популярные реляционные СУБД
РСУБД SQLite
РСУБД MySQL
- MariaDB
РСУБД PostgreSQL
- Индексы в Postgres
- Оптимизация запросов в Postgres
- Масштабирование в Postgres
- Postgres и другие СУБД
- СУБД Postgres Pro и Расширения Postgres
РСУБД Microsoft SQL Server
РСУБД Oracle

NoSQL (Not only SQL) СУБД

Введение в NoSQL

Базы «ключ-значение»
Redis
Memcached
Tarantool от Mail.ru

Документарные БД
Mongo

Колоночные БД (Columnar DB)
ClickHouse от Yandex

Wide-column Databases
Cassandra от Apache

Massive parallel processing СУБД
GreenPlum

Key-object хранилища
S3 от Amazon

Графовые базы данных и SPARQL
Введение в графовые БД
SPARQL (SPARQL Protocol and RDF Query Language)
ГрафСУБД Neo4J

Базы данных временных рядов (Time Series Database - TSDB)
Поисковый движок и хранилище ElasticSearch

Аналитические хранилища данных
BigQuery от Google

OLAP и Хранилища данных (DWH, Data Warehouse)
Подход OLAP (Online Analytical Processing)
Введение в хранилища данных
Моделирование хранилищ данных
Проектирование хранилищ данных
Качество данных в хранилище

Аппаратные технологии хранения данных
RAID-массивы

Исторические подходы к базам данных
Иерархические БД (1950-е года)
Сетевые БД (1950-е года)
Объектные БД (1980-е года)
Файловые БД VS Серверные БД (1990-е года)
XML БД (2000-е года)
СУБД для XML

Big Data и распределённые вычисления
Экосистема Hadoop от Apache Software Foundation

Data Mapping: integration, migration, transformation
Протоколы и стандарты на обмен данными
Процессы ETL (extraction, transformation, loading)
ETL-инструменты

Современные архитектуры данных
Data Lakes
Data Mesh
Data Fabric

Визуализация данных
Популярные js библиотеки визуализации

Business Intelligence (BI)

Основы анализа данных
Основы статистики
Основы анализа данных в Excel
Анализ данных с помощью SQL
Язык R для анализа данных
Python для анализа данных

Основы Data Science
Введение в Data Science
Нейронные сети
Основы Machine Learning
Введение в NLP (Natural Language Processing)
Фреймворки машинного обучения
Forwarded from Борис опять
Крутой и наглядный туториал про PCA

https://matthew-brett.github.io/teaching/pca_introduction.html
Forwarded from Записки Ппилифа (Ppilif [GMT+1])
Немного задротский пост про ЦПТ

Обычно, в курсе тервера ЦПТ не доказывают (если курс не на матфаке). Для этого нужно вводить характеристические функции. Они, конечно, красивые, но нигде в матстате дальше не понадобятся.

Оказывается, ЦПТ можно доказать без них. Статья свежая, от 2021 года. Мне жутко хотелось ее разобрать, но не было повода. Чтобы повод появился, решил устроить в Вышкинской магистратуре на курсе тервера бонусную пару с разбором.

От доказательства ощущаешь приятный вайб курса базового матана с леммой о двух милиционерах и теоремой Лагранжа 🙂

Я не понимал, что в доказательстве произошло с остаточным членов в ряде Тэйлора. Пошёл за советом. Оказалось, что есть пересказ этой статьи на русском.
Как мотивировать себя? Три ошибки
#soft_skills

Меня просили написать о мотивации. Это вообще одна из самых важных тем. Откуда брать силы на изучение новых технологий и саморазвитие? Что помогает, а что мешает нашей мотивации? Как поддерживать себя, когда хочется сдаться и всё бросить?

TLDR:
1. Мотивация - не причина, а следствие
2. Фокус на процессе (приложении усилий), а не на результате
3. Подбадривание себя, а не самокритика

Есть несколько ошибок, которые легко допустить. Первая из них - думать, что мотивация является причиной, а не следствием. Тот, кто так думает, откладывает своё развитие на потом, "когда будет подходящее настроение". Этот момент может и не наступить. Мотивация - результат осознанных усилий с чётким пониманием цели. Преодолеть себя, победить сиюминутную лень, сделать что-то полезное для своего развития - и тогда получить в награду мотивацию. В это, может быть, трудно поверить, но если понаблюдаете за собой, то увидите, что самая сильная и "долгоиграющая" мотивация бывает не перед началом работы, когда ещё ничего не сделано, а после того, как сделали несколько шагов к цели, получили хотя бы какие-то результаты.

Но при этом зацикливаться на результате тоже неправильно, это вторая ошибка. Выучить Питон, поменять карьеру, взяться за трудный проект - звучит страшно и даже невозможно, но если идти к цели постепенно и думать только о непосредственном следующем шаге, то всё обычно получается. Мы движемся вперёд тогда, когда делаем следующий шаг, а не тогда, когда уже дошли. Мне очень сильно помогает измерять свой прогресс не достижениями, а количеством вложенного времени. Парадоксально? Но что зависит от меня напрямую - приложить усилия или получить результат? Только первое. А потраченное время - это хорошая метрика для оценки приложенных усилий. Результат же почти всегда зависит не только от меня, но и от других участников процесса, от обстоятельств, от сложности задачи и так далее.

С этим связана третья ошибка - ругать себя за неудачи. Порой мы для себя бываем самыми жестокими и беспощадными критиками. Это здорово замедляет развитие. Ругать себя - значит лишать себя воли и мотивации. Кстати, доказано экспериментально. Негатива в жизни и так хватает, лучше поддерживать и подбадривать себя, хвалить себя (да, даже так) за прилагаемые усилия и время, вложенное в саморазвитие. Это правда эффективно, как бы наивно ни звучало. Помогает получать положительные эмоции в процессе работы над собой и над трудными задачами. Для хорошей мотивации нужны положительные подкрепления, так устроен мозг. Ежедневные маленькие победы над собой, своей ленью, страхами, заблуждениями приводят к тому, что высокая мотивация превращается в полезную привычку.
Forwarded from Aspiring Data Science
#sklearn #ml #timeseries #cv #retrainfrequency

О недостатке sklearn-овской реализации TimeSeriesSplit. Важной частью работы дата сайентиста является обучение моделек на данных, имеющих временное измерение. В них нельзя применить простое Kfold разбиение на группы, т.к. обучение "на будущем" в реальном использовании невозможно, а в кросс-валидацию внесёт оптимистичное смещение (bias, data leak). Поэтому почти всегда с такими данными используется вариация TimeSeriesSplit, в базовой версии имеющей сигнатуру (n_splits=5, *, max_train_size=None, test_size=None, gap=0). Минимальный размер трейна тут всегда равен размеру теста (что логично), максимальный может регулироваться параметром. gap позволяет делать разрывы между фолдами, чтобы нивелировать влияние корреляции между концом трейна и началом теста (и совсем избежать пресловутого смещения). В целом мощная функция, правда, есть недочёт. На больших данных каждый fit идёт очень долго и стоит дорого, а predict быстр и дёшев. А предсказания мы делаем всего лишь на текущий test, хотя могли бы делать на все оставшиеся данные. Для чего последнее могло бы понадобиться? А чтобы посмотреть, как долго держится предсказательная сила модели, и сделать вывод о требуемой частоте переобучения. Например, пройти по такому "длинному предикту" скользящим окном в неделю, месяц, полгода, и в рамках окна уже считать нужные метрики (точность, полноту, RMSE, к примеру). Этого можно добиться, субклассировав TimeSeriesSplit и расширяя её test_index, либо написав свою cross_validate и вызывая метод split() самостоятельно.
Forwarded from Сиолошная
RL + NLP = ❤️

Статейка "Describe, Explain, Plan and Select: Interactive Planning with Large Language Models Enables Open-World Multi-Task Agents" рассказывает о том, как прикрепить большие языковые модели (LLM) к обучению агентов в сложных средах.

Картинка вкратце описывает суть происходящего:
1) LLM генерирует план, который должен быть выполнен, чтобы добиться награды
2) Selector выбирает, что нужно сделать сейчас, передает это в агента на исполнение
3) Агент сообщает LLMке в текстовом виде, каких успехов он добился, а чего сделать не смог (прям как я маме 😂)
4) формируется новый план, и пункты 1-3 повторяются итеративно

И всё это происходит в виде диалога с чатботом!

Ну и всё это канечно же бустит перформанс: Our experiments mark the milestone of the first multi-task agent that can robustly accomplish 70+ Minecraft tasks and nearly doubles the overall performances

Жду, когда больше техник из NLP для работы с LLM (вроде этого) придут в другие области.

Код будет тут, но пока его нет.
Please open Telegram to view this post
VIEW IN TELEGRAM