Pull to refresh
10
0
Ильина Татьяна @Vszlo93

Пользователь

Send message

Линеаризация: зачем и как укрощать ratio-метрики в A/B-тестах

Reading time12 min
Views2.9K

Привет, Хабр! В прошлой статье я указал, что в A/B-тестах используются три основных типа метрик, а именно пользовательские конверсии, средние метрики пользователей и ratio-метрики. К последним обычно относят средний чек, CTR баннера, среднюю длину сессии и др. Такие метрики имеют ограничения при оценке стандартными статистическими критериями и общую особенность определения в контексте экспериментов.

В этой статье формализуем понятие ratio-метрики, подробнее и на примере посмотрим на их ограничения и разберем как инвалидировать результаты своих экспериментов, если эти ограничения игнорировать. Откроем для себя метод линеаризации ratio-метрик, разберем как и почему он работает, какая интерпретация стоит за его преобразованием, а также определим его преимущества в сравнении с предусредненным средним, бутстрапом и дельта-методом.

Читать далее
Total votes 9: ↑8 and ↓1+12
Comments1

Бутстрап: швейцарский нож аналитика в A/B-тестах

Level of difficultyMedium
Reading time9 min
Views14K

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments5

Модель нелинейной аппроксимации ретеншена

Level of difficultyMedium
Reading time31 min
Views3.8K

Эта статья - вторая в серии, после статьи Ретеншен — основная метрика F2P игры, вероятностный подход

Здесь я рассматриваю ретеншен не как скалярную случайную величину, а как случайный временной ряд. Далее создаю модель нелинейной аппроксимации метрики, учитывающую сезонность и выпуск патчей.

Рассмотренная методика реализована в виде Jupyter-ноутбука retention-rate-approximator, выложенного в общий доступ.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments3

Увеличение чувствительности A/Б-тестов с помощью Cuped. Доклад в Яндексе

Reading time12 min
Views31K
CUPED (Controlled-experiment Using Pre-Experiment Data) — техника A/Б-экспериментов, которую стали применять в продакшене сравнительно недавно. Она позволяет увеличить чувствительность метрик за счёт использования данных, полученных ранее. Чем больше чувствительность, тем более слабые изменения можно замечать и учитывать в эксперименте. Первой компанией, внедрившей CUPED, была Microsoft. Теперь этой техникой пользуются многие международные фирмы. В своём докладе Валерий Бабушкин venheads объяснил, в чём заключается смысл CUPED и каких результатов можно достичь, а перед этим разобрал метод стратификации, который также улучшает чувствительность.


— Меня зовут Валерий Бабушкин, я директор по моделированию и анализу данных в X5 Retail Group и советник в Яндекс.Маркете. В свободное время преподаю в Высшей школе экономики и частенько летаю в Казахстан, преподаю в Нацбанке Казахстана.
Читать дальше →
Total votes 8: ↑5 and ↓3+8
Comments0

Ретеншен — основная метрика F2P игры, вероятностный подход

Level of difficultyMedium
Reading time25 min
Views5.2K

Ретеншен - основная метрика качества итернет-сервиса.

Однако, на мой взгляд, на просторах Интернета не так уж и много информации, рассматривающей эту метрику с точки зрения контроля статистической значимости ее измерений, что на практике совершенно необходимо для принятия решений о развитии проекта.

Настоящая статья возникла как попытка восполнить этот пробел. Я даю некоторые вводные определения, затем рассказываю, что такое биномиальное распределение и нормальное распределение, почему это применимо к метрике “ретеншен”, почему это важно знать и как из этого следует простая формула, позволяющая определить статистическую значимость измерений. Далее рассмотрены способы и проблемы повышения точности измерений. Все формулы я постарался сопроводить наглядными примерами их применения и графиками.

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

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments6

Python и статистический вывод: часть 1

Reading time12 min
Views17K

В предыдущей серии постов для начинающих (первый пост тут) из ремикса книги Генри Гарнера «Clojure для исследования данных» (Clojure for Data Science) на языке Python было представлено несколько численных и визуальных подходов, чтобы понять, что из себя представляет нормальное распределение. Мы обсудили несколько описательных статистик, таких как среднее значение и стандартное отклонение, и то, как они могут использоваться для краткого резюмирования больших объемов данных.

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

В этой серии из 4-х постов мы рассмотрим статистический вывод: каким образом можно выйти за пределы простого описания выборок и вместо этого описать популяцию, из которой они были отобраны. Мы подробно рассмотрим степени нашей уверенности в выводах, которые мы делаем из выборочных данных. Мы раскроем суть робастного подхода к решению задач в области исследования данных, каким является проверка статистических гипотез, которая как раз и привносит научность в исcледование данных.

В конце заключительного поста можно будет проголосовать за или против размещения следующей серии постов. А пока же…

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments6

Python и статистический вывод: часть 3

Reading time22 min
Views43K

Для статистиков и исследователей данных проверка статистической гипотезы представляет собой формальную процедуру. Стандартный подход к проверке статистической гипотезы подразумевает определение области исследования, принятие решения в отношении того, какие переменные необходимы для измерения предмета изучения, и затем выдвижение двух конкурирующих гипотез. Во избежание рассмотрения только тех данных, которые подтверждают наши субъективные оценки, исследователи четко констатируют свою гипотезу заранее. Затем, основываясь на данных, они применяют выборочные статистики с целью подтвердить либо отклонить эту гипотезу.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments0

Эксперименты в Ситимобил. Эпизод 2: Атака тестов на Switchback

Reading time10 min
Views5.5K

Всем привет! На линию выходит команда динамического ценообразования Маркетплейса СитиМобил.

В прошлый раз мы начали вести длинный рассказ о том, как правильно проводить эксперименты в многосторонних маркетплейсах. Мы рассуждали о смысле происходящего; о предпосылках, почему вообще стоит задуматься над этой темой, и почему эксперименты не классическими рандомизированными подходами едины.

Сегодня мы расскажем о практических шагах и ответим на главные, волнующие всех экспериментаторов вопросы: какими статистическими методами можно проверить switchback-тест и как выбрать подходящий.

Читать далее
Total votes 11: ↑10 and ↓1+10
Comments5

Введение в Байесовские методы

Reading time6 min
Views175K

В качестве введения


В настоящее время Байесовские методы получили достаточно широкое распространение и активно используются в самых различных областях знаний. Однако, к сожалению, не так много людей имеют представление о том, что же это такое и зачем это нужно. Одной из причин является отсутствие большого количества литературы на русском языке. Поэтому здесь попытаюсь изложить их принципы настолько просто, насколько смогу, начав с самых азов (прошу прощения, если кому-то это покажется слишком простым).
Подробности
Total votes 78: ↑70 and ↓8+62
Comments37

Использование Python и Excel для обработки и анализа данных. Часть 2: библиотеки для работы с данными

Reading time10 min
Views331K
Первая часть статьи была опубликована тут.

Как читать и редактировать Excel файлы при помощи openpyxl


ПЕРЕВОД
Оригинал статьи — www.datacamp.com/community/tutorials/python-excel-tutorial
Автор — Karlijn Willems

Эта библиотека пригодится, если вы хотите читать и редактировать файлы .xlsx, xlsm, xltx и xltm.

Установите openpyxl using pip. Общие рекомендации по установке этой библиотеки — сделать это в виртуальной среде Python без системных библиотек. Вы можете использовать виртуальную среду для создания изолированных сред Python: она создает папку, содержащую все необходимые файлы, для использования библиотек, которые потребуются для Python.

Перейдите в директорию, в которой находится ваш проект, и повторно активируйте виртуальную среду venv. Затем перейдите к установке openpyxl с помощью pip, чтобы убедиться, что вы можете читать и записывать с ним файлы:
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments2

Руководство по использованию pandas для анализа больших наборов данных

Reading time16 min
Views156K
При использовании библиотеки pandas для анализа маленьких наборов данных, размер которых не превышает 100 мегабайт, производительность редко становится проблемой. Но когда речь идёт об исследовании наборов данных, размеры которых могут достигать нескольких гигабайт, проблемы с производительностью могут приводить к значительному увеличению длительности анализа данных и даже могут становиться причиной невозможности проведения анализа из-за нехватки памяти.

В то время как инструменты наподобие Spark могут эффективно обрабатывать большие наборы данных (от сотен гигабайт до нескольких терабайт), для того чтобы полноценно пользоваться их возможностями обычно нужно достаточно мощное и дорогое аппаратное обеспечение. И, в сравнении с pandas, они не отличаются богатыми наборами средств для качественного проведения очистки, исследования и анализа данных. Для наборов данных средних размеров лучше всего попытаться более эффективно использовать pandas, а не переходить на другие инструменты.



В материале, перевод которого мы публикуем сегодня, мы поговорим об особенностях работы с памятью при использовании pandas, и о том, как, просто подбирая подходящие типы данных, хранящихся в столбцах табличных структур данных DataFrame, снизить потребление памяти почти на 90%.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments7

Моя шпаргалка по pandas

Reading time8 min
Views592K
Один преподаватель как-то сказал мне, что если поискать аналог программиста в мире книг, то окажется, что программисты похожи не на учебники, а на оглавления учебников: они не помнят всего, но знают, как быстро найти то, что им нужно.

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



Нельзя сказать, что это — исчерпывающий список возможностей pandas, но сюда входят функции, которыми я пользуюсь чаще всего, примеры и мои пояснения по поводу ситуаций, в которых эти функции особенно полезны.
Читать дальше →
Total votes 32: ↑30 and ↓2+47
Comments8

Power Query: стероиды для MS Excel и Power BI

Reading time7 min
Views207K
image

В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.

Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать повторяемые последовательности обработки этих данных и загружать их внутрь таблиц Excel или самого data model.

И вот под катом вы можете найти подробности всего этого великолепия возможностей.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments22

Python, pandas и решение трёх задач из мира Excel

Reading time5 min
Views79K
Excel — это чрезвычайно распространённый инструмент для анализа данных. С ним легко научиться работать, есть он практически на каждом компьютере, а тот, кто его освоил, может с его помощью решать довольно сложные задачи. Python часто считают инструментом, возможности которого практически безграничны, но который освоить сложнее, чем Excel. Автор материала, перевод которого мы сегодня публикуем, хочет рассказать о решении с помощью Python трёх задач, которые обычно решают в Excel. Эта статья представляет собой нечто вроде введения в Python для тех, кто хорошо знает Excel.


Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments14

Интеграция MS Excel и Python

Reading time6 min
Views369K
Добрый день, уважаемые читатели.

В сегодняшней статье я хотел бы, как можно подробнее, рассмотреть интеграцию приложений Python и MS Excel. Данные вопрос может возникнуть, например, при создании какой-либо системы онлайн отчетности, которая должна выгружать результаты в общепринятый формат ну или какие-либо другие задачи. Также в статье я покажу и обратную интеграцию, т.е. как использовать функцию написанную на python в Excel, что также может быть полезно для автоматизации отчетов.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments8

Работа с текстовыми данными в scikit-learn (перевод документации) — часть 2

Reading time6 min
Views43K
Данная статья представляет собой перевод главы, обучающей работе с текстовыми данными, из официальной документации scikit-learn. Начало статьи вы можете прочесть в части 1.

Обучение классификатора


Теперь, когда мы выделили признаки, можно обучать классификатор предсказывать категорию текста. Давайте начнем с Наивного Байесовского классификатора, который станет прекрасной отправной точкой для нашей задачи. scikit-learn включает в себя несколько вариантов этого классификатора. Самый подходящий для подсчета слов — это его поли номинальный вариант:

>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB().fit(X_train_tfidf, twenty_train.target)

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments3

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Reading time25 min
Views1.4M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1+97
Comments66

Как работает yield

Reading time6 min
Views669K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Total votes 141: ↑136 and ↓5+131
Comments41

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity