Проблема вычисления коэффициента кликов (CTR)

Вопрос или проблема

Итак, я выполняю практическое задание для собеседования в компании, и один из вопросов заключается в том, чтобы вычислить CTR для алгоритма сортировки.

Мой вопрос: следует ли мне исключить операции, в которых не было показано никаких продуктов (хотя в некоторых из них были клики по продуктам)? Пример (следует ли исключать эти строки?):

Количество показов | Количество кликов
            0         |      1
            0         |      3
            0         |      0

CTR = #продуктов кликнуто/#продуктов показано

Мой другой вопрос состоит в том: следует ли мне суммировать клики и показанные продукты, а затем делить одно на другое ИЛИ я должен вычислять CTR для каждой операции:

Псевдокод на Python (представьте, что у меня есть dataframe с несколькими операциями в виде строк):

CTR = pd_df["no_clicks"].sum() / pd_df["no_impressions"].sum()

ИЛИ

pd_df["CTR"] = pd_df["no_clicks"] / pd_df["no_impressions"]
CTR = pd_df["CTR"].mean()

У меня нет никакого опыта в такого рода проблемах, но логически я бы сказал:

Следует ли мне исключить операции, в которых не было показано никаких продуктов (хотя в некоторых из них были клики по продуктам)? Пример (следует ли исключать эти строки?):

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

Также обратите внимание, что следует удалять строки в этом случае, а не столбцы.

Мой другой вопрос состоит в том следует ли мне суммировать клики и показанные продукты, а затем делить одно на другое ИЛИ я должен вычислять CTR для каждой операции:

Эта проблема означает, что данные либо не имеют надлежащего формата для применения определения (строго говоря, данные должны иметь одну строку на каждый показ продукта, и количество кликов должно быть либо 0, либо 1), либо инструкции по применению формулы CTR к этим конкретным данным не полностью определены. Я бы сказал, что первый вариант ближе к оригинальной формуле, так как он не требует вычисления среднего по индивидуальным коэффициентам.

.

Ответ или решение

Определение верного подхода к решению проблемы расчета Click Through Rate (CTR) в рамках задачи на собеседовании является важным шагом для определения корректности и значимости результата. Рассмотрим теоретические аспекты, практический пример и применение.

Теория

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

[ \text{CTR} = \frac{\text{Количество кликов}}{\text{Количество показов}} ]

Что касается вашей проблемы, важно понимать смысл данных: когда количество показов равно нулю (например, в строках с “Number of impressions | Number of clicks: 0 | 1”), включение таких строк в расчет CTR может привести к бессмысленным или даже невозможным значениям (больше 1). Поэтому такие строки следует исключать из анализа, так как они нарушают логику расчета.

Пример

Допустим, у вас есть следующие данные:

Количество показов | Количество кликов
            10     |      5
            0      |      3
            15     |      2

Из этих строк, строку с 0 показами следует исключить из расчета, так как она приведет к незаконному значению CTR.

Применение

Для реализации правильного расчета в Python можно использовать pandas:

import pandas as pd

# Пример данных
data = {'no_impressions': [10, 0, 15],
        'no_clicks': [5, 3, 2]}

df = pd.DataFrame(data)

# Исключаем строки с 0 показами
df_filtered = df[df['no_impressions'] > 0]

# Расчет CTR
CTR = df_filtered['no_clicks'].sum() / df_filtered['no_impressions'].sum()

Таким образом, рекомендуется суммировать клики и показы после удаления неподходящих строк и затем делить общее количество кликов на общее количество показов, что будет более близко к оригинальной формуле и предоставит более значимый результат.

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

Оцените материал
Добавить комментарий

Капча загружается...