Skip to content

HDI-lab-HSE/ABTestingHDILab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABTestingHDILab

Описание ноутбуков с экспериментами

  • В Variance_reduction_criteo.ipynb и Variance_reduction_synthetic.ipynb находится код с реализованными методами снижения дисперсии (CUPED, CUPAC, ML-Rate), а также эксперименты по обнаружению статистически значимой разницы при применении разных методов к датасету Criteo и синтетическому датасету соответсвенно. Данный код относится к разделу 3 отчета о НИР. Для работы ноутбука Variance_reduction_criteo.ipynb необходимо скачать датасет Criteo., а также сохраненные файлы со сгенерированными выборками из папки saved_variables/.
  • В Genetic_algorithm_loan_data.ipynb, Genetic_algorithm_criteo_data.ipynb и Genetic_algorithm_bank_marketing.ipynb представлена реализация генетического алгоритма и применение его на трех датасетах: датасет займов (Loan data), датасет Criteo (Criteo) и датасет банковского маркетинга (Bank Marketing) соответсвенно. Данный код относится к разделу 1.5 отчета о НИР. Для запуска данных ноутбуков необходимо скачать соотвествующие датасеты.
  • Ноутбук Randomized_t_test.ipynb содержит код применения рандомизированных тестовых статистик в задаче проверки однородности при $A/B$ тестировании на датасете Criteo, описанный в разделеле 2.1 отчета о НИР. Для корректной работы ноутбука необходимо предварительно скачать датасет Criteo.
  • Stratification_clustering_and_optimal_sampling.ipynb содержит код стратификации, эксперимент с методом сэмплирования из страт и эксперимент с применением алгоритмов кластеризации для стратификации на данных займов, все эксперименты описаны в разделах 1.2, 1.3, 1.4. Для запуска ноутбука необходимо предварительно скачать датасет Loan data.
  • В OT_homogeneity_test.ipynb представлен код применения оптимального транспорта для задачи сравнения распределений в $A/B$ тестировании на синтетеических данных. Описание данного кода находится в разделе 2.2 отчета. Для нахождения оптимального транспортного плана в данном ноутбуке используется библиотека cvxpy. Аналогичный функционал, не ипользующий библиотеку cvxpy, реализован в ноутбке OT_homogeneity_test_no_cvxpy.ipynb.
  • Ноутбук change_point.ipynb содержит реализацию алгритмов обнаружения разладки, а также их применение к синтетическим данным и датасету WISDM. Весь код ноутбука относится к разделу 5 отчета о НИР. Для запуска ноутбука необходим датасет WISDM. В данном ноутбуке испольуются библиотеки cvxpy и pytorch. В версии данного ноутбука change_point_no_cvxpy_no_torch.ipynb убраны библиотеки cvxpy и pytorch, соответственно, также убрана часть (дополнительного) функционала для поиска разладки с использованием нейронных сетей.
  • Ноутбук ratio_metrics_test.ipynb содержит валидацию эксперимента для метрики отношения, описанного в Разделе 3.8 Отчета о НИР.
  • В calibration.ipynb эксперименты по применению методов калибровки выборки к датасету займов, а также к искусственным данным. Данный ноутбук относится к разделу 4 отчета. Для запуска ноутбука необходимо сначала скачать датасет Loan data. В данном ноутбуке для решения задач оптимизации испольуется библиотека cvxpy. Ноутбук calibration_no_cvxpy.ipynb реализует аналогичный функционал без использования cvxpy.

Библиотеки и зависимости

Список зависимостей проекта (здесь перечислены основные библиотеки, без учета вспомогательных утилитов, требуемых, например, для ккорректной установки библиотек Pandas или Jupytlab):

  • jupyterlab == 4.0.8

  • matplotlib == 3.4.3

  • numpy == 1.20.3

  • pandas == 1.3.4

  • scikit-learn == 0.24.2

  • scipy == 1.7.1

  • seaborn == 0.11.2

  • statsmodels == 0.12.2

  • tqdm == 4.66.1

Для запуска ноутбуков calibration.ipynb и change_point.ipynb требуются библиотеки

  • pytorch == 1.11.0
  • torchvision == 0.12.0
  • cvxpy == 1.3.2 При этом поддержка GPU для данной версии pytorch не является необходимой. Установить нужную версию pytorch при помощи менеджера пакетов conda можно, например, при помощи команды
  • conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cpuonly -c pytorch

Более подробную документацию можно найти по ссылке https://pytorch.org/get-started/previous-versions/.

Для запуска ноутбука OT_homogeneity_test_with_pot.ipynb требуется библиотека для оптимального транспорта POT версии

  • pot == 0.4.0

Данные

  1. Criteo. Данный датасет содержит в себе коллекцию AB экспериментов, направленных на изучение влияния рекламы на клики пользователей. Каждая стркоа датасета содержит данные об одном пользователе и состоит из 12 анонимизированных признаков, значения которых заимерялись до разделения на тестовую и контрольную группы. Среди 12 признаков 4 -- вещественные (f0, f2, f7, f10), оставшиеся -- категориальные. Также каждая строка датасета содержит в себе метку treatment, отвечающую за то, к какой группе относился пользователь в течение эксперимента (1 -- экспериментальная, 0 -- контрольная), и целевые переменные visit, conversion. В наших экспериментах была выбрана переменная visit в качестве целевой. Данный датасет можно скачать по ссылке http://go.criteo.net/criteo-research-uplift-v2.1.csv.gz
  2. Loan data. Данный датасет содержит в себе информацию о кредитаx. В каждой строке находится информация о пользователе и целевая метка (Loan_Status) -- был ли одобрен кредит. Среди признаков пользователя -- пол, семейное положение (женат/замужем или нет), образование (получено ли высшее или нет), самозанятый ли человек, кредитная история (брал ли человеку кредит до этого или нет), тип территории на которой проживает заявитель (город/село/поселок), доход заявителя, доход поручителя, размер займа. Датасет находится по пути data/loan_data_set.csv.
  3. Bank Marketing. Данный датасет содержит в себе информацию о банковском телефонном маркетинге, объектом в нем является телефонный звонок потенциальному клиенту с предложением краткосрочного депозита. В каждой строке находится информация о пользователе и целевая метка (y) -- открыл ли пользователь депозит или нет. Информация о пользователе содержит в себе возраст, работа, семейное положение, образование, есть ли у пользователя кредит/ипотека/непогашенный кредит, баланс пользователя, тип коммуникации с пользователем, информация о предыдущих предложениях (дата, количество и тд.). Датасет находится по пути data/bank-full.csv.
  4. WISDM. Данный датасет представляет из себя трехмерный временной ряд с показателями различных датчиков об активности человека. Предобработанный датасет можно найти по пути data/WISDM/sample_0.csv

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •