Пользователь
Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами
Привет, Хабр)
Публикую шпаргалку по SQL, которая долгое время помогала мне, да и сейчас я периодически в неё заглядываю.
Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.
Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3
, pandas
, polars
. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.
Генератор случайных чисел, который можно запустить в голове
Люди ужасно плохо справляются с придумыванием случайных чисел. Я хотел научиться быстро генерировать «достаточно случайные» числа. Мне не нужно было что-то совершенное, просто способ придумывания случайных цифр за полминуты. Поискав онлайн, я нашёл старый пост в Usenet, написанный Джорджем Марсалья:
Выберите двухразрядное число, допустим, 23. Оно будет вашим «порождающим значением» (seed).
Создайте новое двухразрядное число: количество десяток плюс шесть, умноженное на количество единиц.
Пример последовательности: 23 –> (2 + 6 * 3) = 20 –> (2 + 6 * 0) = 02 –> 12 –> 13 –> 19 –> 55 –> 35 –> …
Его период будет порядком множителя (6) в группе остатков, простых относительно модуля, 10 (в данном случае 59).
«Случайными цифрами» будет количество единиц двухразрядных чисел, то есть 3,0,2,2,3,9,5,… то есть члены последовательности mod 10.
Больше всего Марсалья известен своим набором тестов diehard-генераторов случайных чисел (RNG), так что он в этом понимает (здесь и далее под RNG я имею в виду генератор псевдослучайных чисел (PRNG)). Мне стало любопытно, почему это работает и как он выбрал 6.
Мы будем писать на Raku, языке для гремлинов. На случай, если вы тоже гремлин, под спойлерами я буду объяснять все странные особенности.
День в Квартале Образования. Поиски Деда Мороза продолжаются
В преддверии Нового года Хабраслизень занят поисками пропавшего Деда Мороза на огромной Фабрике подарков. Не без помощи хабраюзеров, конечно, которые следят за ходом поисков в хабе «Адвент 24». Они уже успели обыскать Книжный квартал, но следов Деда Мороза не нашли. Теперь внимание Хабраслизня привлёк большой Квартал Образования.
Он собирается осмотреть местные цеха и поискать Деда Мороза там, но Слизень ещё не знает, что местные роботы любят подшутить и уже расставили свои ловушки. Помогите Хабраслизню разгадать загадки роботов и найти правильные ответы среди фальшивок.
Уникальные стили визуализации данных в Python: от Cyberpunk до элегантности
Необычные стили для визуализации данных на Python: от киберпанка до эстетики. В статье рассмотрены 5 малоизвестных стилей для визуализации данных и создания дашбордов.
Интуитивное использование методов Монте-Карло с цепями Маркова
Легко ли это? Я попробовал
Алексей Кузьмин, директор разработки и работы с данными «ДомКлик», преподаватель направления Data Science в Нетологии, перевел статью Rahul Agarwal о том, как работают методы Монте-Карло с цепями Маркова для решения проблем с большим пространством состояний.
Регрессия гауссовского процесса с самого начала
К старту курса о машинном и глубоком обучении мы перевели статью о регрессии гауссовского процесса (далее GPR) — удивительно мощном классе алгоритмов машинного обучения, который, в отличие от многих современных моделей машинного обучения, в составлении прогнозов опирается на небольшое количество параметров. Поскольку GPR является (почти) непараметрической, она, даже при небольшом количестве данных, может эффективно применяться в решении широкого спектра задач обучения с учителем. С помощью передовых фреймворков автоматического дифференцирования, таких как PyTorch и TensorFlow, изучить и применить GPR для решения множества сложных задач в области обучения с учителем, стало проще, чем когда-либо. В статье вы найдёте не только математические выкладки, но и ссылки на соответствующие учебники.
Корреляция, ковариация и девиация (часть 3)
В первой части показано, как на основе матрицы расстояний между элементами получить матрицу Грина. Ее спектр образует собственную систему координат множества, центром которой является центроид набора. Во второй рассмотрены спектры простых геометрических наборов.
В данной статье покажем, что матрица Грина и матрица корреляции — суть одно и то же.
Фреймворк для дизайна A/B-теста
Сегодня мы рассмотрим простой базовый фреймворк для дизайна сплит-теста, который можно удобно использовать продуктовым аналитикам в своей работе. Разберем использование этого фреймворка, его теоретическую и математическую основу, и также поговорим о продуктовых аспектах заведения A/B-тестов — когда продакту и аналитику заводить A/B-тест не нужно. Вам понадобятся: представления о продуктовых метриках, знания python, первичные представления о математической статистике и чуточку воображения.
Краткое руководство по анализу данных и проведению продуктовых исследований
Привет. Я занимаюсь продуктовой аналитикой уже довольно давно, и так получилось, что чаще всего в работе мне прилетают именно продуктовые рисёрчи. Иногда нужно разобраться с какой-то фичей, которую никто никогда не изучал, иногда это моделирование перед какими-то изменениями, иногда просто раскопка какой-то проблемы.
По мере моего развития, я экспериментировал с разными подходами к таким задачам, пытался выработать удобный фреймворк, учась на предыдущих ошибках. Читал книги по теме и внедрял интересные идеи из опыта авторов.
Тут я хочу поделиться порядком действий, если хочешь — чек-листом, как я провожу аналитические исследования.
Получилось объёмно, и много где идеи очень простые. Но, как это обычно бывает, на некоторые этапы просто нет времени или желания, а в итоге может пострадать вся суть работы. Наливай чай, бери попкорн — приятного чтения.
Воспринимайте жизнь как игру, и она станет более понятной
После долгого полёта в глубины космоса вы с другом попадаете в плен к загадочным существам. Вам предложен выбор: остаться пленниками или победить их в игре и стать свободными. Решение принято, и вы оба садитесь за игровой стол вместе с одним из чужаков. Инопланетянин раздаёт мешочки с черными и белыми камнями. Каждый игрок, не показывая другим, достаёт из своего мешка камень задуманного цвета, а затем все трое кладут их на стол. Победителем становится тот, кто выберет камень иного цвета, чем у двух других. Черный против двух белых или наоборот. Выигравший получает монетку и кладёт на свою сторону стола. В конечном итоге победит тот, у кого окажется больше монет.
Помимо правил, в самом начале с вами поделились интересной информацией. Вероятность того, что инопланетянин достанет чёрный камень — всегда 50%. За несколько секунд до начала игры друг шепнул вам о стратегии, которой нужно придерживаться. И в результате, после бесконечного числа партий, вы оба стали победителями. Просто подфартило? Или сработала стратегия партнера?
Курс «PostgreSQL для начинающих»: #2 — Простые SELECT
Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".
Сегодня поговорим о самых простых, но важных, возможностях команды SELECT
, наиболее часто используемой при работе с базами данных - формировании выборок (VALUES
), их ограничении (LIMIT/OFFSET/FETCH
), фильтрации (WHERE/HAVING
), сортировке (ORDER BY
), уникализации (DISTINCT
) и группировке (GROUP BY
).
Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись.
Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики
Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики.
(1) Школа. (2) Матанализ. (3) Аналитическая геометрия. (4) Линейная алгебра.
Все плейлисты, материалы, курсы в открытом доступе и бесплатны.
Методы балансировки в А/Б тестировании
Привет, Хабр! Как часто вы думаете о балансе? Балансе вселенной, личной жизни и работы, балансе БЖУ в своем рационе или балансе в банке. Мы в команде ad-hoc X5 Tech не только думаем о балансе, но и сталкиваемся с ним в работе. Сегодня поговорим о балансировке при анализе причинности. Это важный инструмент статистики, который помогает нам выяснить, как одни величины влияют на другие. Балансировка здесь — это способ убрать ошибки, которые могут возникнуть из-за разных распределений переменных в разных группах. Расскажем о различных методах балансировки, об их работе, преимуществах и недостатках каждого. Также затронем проблемы и ограничения, связанные с балансировкой. Запасайтесь чаем, мы начинаем!
GPT-like модель «впервые сделала научное открытие»: что, как, и куда дальше?
14го декабря в одном из самых авторитетных общенаучных журналов Nature была опубликована статья с, кажется, сенсационным заголовком: «ИИ-модели Google DeepMind превосходят математиков в решении нерешённых проблем». А в блогпосте дочки гугла и вовсе не постеснялся указать, что это — первые находки Больших Языковых Моделей (LLM) в открытых математических проблемах. Неужели правда? Или кликбейт — и это в Nature? А может мы и вправду достигли техносингулярности, где машины двигают прогресс? Что ж, давайте во всём разбираться!
Как я чуть не стал миллионером, продавая воздух, или почему Россия – не Америка
Все знают, что Россия — энергетическая сверхдержава, она же – «разорванная в клочья Обамой бензоколонка». Но не все знают, как это может отражаться в области развития математического моделирования. Расскажу одну жизненную историю.
Начну с далекого 2007 года. Довелось мне в те времена поработать на крупном заводе, который «эффективные менеджеры» как раз делили на несколько отдельных предприятий, каждое из которых крутилось, как могло. В том цеху, который и стал одним из таких предприятий, на токарных станках могла крутиться (и крутилась!) металлическая болванка размером с автобус. А в печку для нагрева металла можно было затолкать паровоз. Целиком. Когда я в первый раз увидел токарный станок, на котором крутится и обтачивается деталь размером с автобус, моему восторгу не было предела. Гордость за страну переполняла до состояния «в зобу дыханье сперло». А потом старожилы показали ту часть цеха, где стояли фундаменты таких же станков и пояснили:
- А вот тут были станки для точной обработки. Их продали китайцам по цене металлолома.
- А почему вот другие не продали?
- Потому, что у них точность обработки такая, что их только в металлолом можно сдать. Поэтому они здесь работают и крутятся как могут, и обтачивают валы турбин Siemiens.
Схема бизнеса был гениальна: Siemiens привозил на завод многотонные болванки, их неделями и месяцами обтачивали до состояния заготовок и увозили для чистовой обработки в Германию. Где уже выполняли чистовую доводку на точных и дорогих станках. Главные затраты при черновой обработке – это износ станков и инструмента, зарплата токаря и электроэнергия, необходимая для вращения тонн металла. Поскольку электроэнергия в РФ дешевле немецкой, недели обработки болванок с лихвой окупают транспортировку, а низкая точность обработки не требует дорогого обслуживания и мало чувствительна к износу еще советского оборудования. В итоге весь бизнес заключался в «перепродаже» дешевой электроэнергии из РФ в Германию, но в виде металлических обточенных болванок.
Единая нейросетевая модель кредитного скоринга
Сейчас в Альфа-Банке при построении моделей используется множество различных источников данных. Мы в Лаборатории машинного обучения уже несколько лет применяем нейронные сети на последовательностях для решения задачи кредитного скоринга и построили модели на данных карточных транзакций, транзакций расчетного счета и кредитных историй. Повышение качества в задаче кредитного скоринга позволяет банку выдавать большее количество кредитов при неизменном уровне риска, что напрямую влияет на его прибыль.
Моделей становится все больше, и возникает вопрос: почему бы нам не смешивать модели не на уровне их предсказаний, а на некотором более низком уровне? Эта идея приводит нас к новому способу смешивания - построению единой нейросетевой модели, работающей со всеми источниками последовательных данных и учитывающей их взаимное влияние друг на друга. В этой статье мы расскажем, как нам удалось разработать такую модель и каких результатов она позволяет добиться в задаче кредитного скоринга.
А/Б тестирование с CUPED: детальный разбор
Хабр, привет! Сегодня обсудим, как применять CUPED для повышения чувствительности А/Б тестов. Рассмотрим на простом примере принцип работы CUPED, покажем теоретически за счёт чего снижается дисперсия и приведём пример оценки эксперимента. Обсудим, как выбирать ковариату, как работать с бинарными метриками и что делать при противоречивых результатах.
Расчёт каннибализации на основе классического A/B-теста и метод bootstrap’а
В статье дан обзор классических методик сравнения независимых выборок с кратким теоретическим базисом и описанием примененных библиотек, в т.ч. вкратце описывается суть метода bootstrap’а и его реализация в библиотеке FaceBook Bootstrapped, а также проблемы, возникающие на практике при применении этих методик, и способы их решения.
Detekt: как статический анализ помогает улучшить код автотестов
Есть такое мнение, что качество кода автотестов не так важно в сравнении с основной кодовой базой. Однако это тоже код, который приходится поддерживать с соответствующими накладными расходами. Если не следить за его качеством, то и тут могут возникать проблемы.
И у каждой ошибки есть своя цена. Было бы здорово, если бы о них можно было узнать как можно быстрее и без привлечения лишних ресурсов.
Это может касаться как простых ошибок, на которые не хочется тратить время специалистов, так и неочевидных ошибок, у которых иногда непросто определить причину.
Меня зовут Николай, и я инженер в мобильной платформенной команде Яндекс Еды. В этой статье я расскажу, как мы повышаем качество кода автотестов Android-приложения. И в этом нам помогает статический анализ.