- В
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
- 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
- Loan data. Данный датасет содержит в себе информацию о кредитаx. В каждой строке находится информация о пользователе и целевая метка (Loan_Status) -- был ли одобрен кредит. Среди признаков пользователя -- пол, семейное положение (женат/замужем или нет), образование (получено ли высшее или нет), самозанятый ли человек, кредитная история (брал ли человеку кредит до этого или нет), тип территории на которой проживает заявитель (город/село/поселок), доход заявителя, доход поручителя, размер займа. Датасет находится по пути
data/loan_data_set.csv. - Bank Marketing. Данный датасет содержит в себе информацию о банковском телефонном маркетинге, объектом в нем является телефонный звонок потенциальному клиенту с предложением краткосрочного депозита. В каждой строке находится информация о пользователе и целевая метка (y) -- открыл ли пользователь депозит или нет. Информация о пользователе содержит в себе возраст, работа, семейное положение, образование, есть ли у пользователя кредит/ипотека/непогашенный кредит, баланс пользователя, тип коммуникации с пользователем, информация о предыдущих предложениях (дата, количество и тд.). Датасет находится по пути
data/bank-full.csv. - WISDM. Данный датасет представляет из себя трехмерный временной ряд с показателями различных датчиков об активности человека. Предобработанный датасет можно найти по пути
data/WISDM/sample_0.csv