
- Главная
- Каталог
- Интернет технологии
- Data Science | Вопросы собесов
Data Science | Вопросы собесов
Разбираем вопросы с собеседований на Data Scientist.
Статистика канала
statsmodels в Python. Примерный расчет может быть выполнен следующим образом:
import statsmodels.stats.api as sms
# Параметры теста
baseline_conversion_rate = 0.10 # базовая конверсия 10%
minimum_detectable_effect = 0.02 # минимально значимое изменение 2%
alpha = 0.05 # уровень значимости
power = 0.80 # статистическая мощность
# Расчет размера выборки
effect_size = sms.proportion_effectsize(baseline_conversion_rate, baseline_conversion_rate + minimum_detectable_effect)
required_n = sms.NormalIndPower().solve_power(effect_size, power=power, alpha=alpha, ratio=1)
print(f"Необходимый размер выборки для каждой группы: {required_n:.0f}"){}
🚩Учет среднего количества посетителей в день
После расчета необходимого размера выборки нужно определить, сколько времени потребуется для набора этой выборки, исходя из среднего количества посетителей или событий в день.
# Предположим, что у вас на сайт заходит 10,000 пользователей в день
daily_visitors = 10000
# Размер выборки для каждой группы
required_n_per_group = required_n
# Поскольку мы тестируем две группы, умножаем размер выборки на 2
total_required_n = required_n_per_group * 2
# Расчет необходимого времени
days_needed = total_required_n / daily_visitors
print(f"Необходимое количество дней для теста: {days_needed:.1f}"){}
🚩Важные аспекты и советы
🟠Статистическая значимость и мощность теста
Убедитесь, что у вас достаточное количество данных для получения статистически значимых результатов. Используйте расчеты статистической мощности для определения необходимого размера выборки.
🟠Избегание перекрестного влияния
Убедитесь, что участники не могут видеть обе версии, чтобы избежать искажения результатов.
🟠Мониторинг в процессе теста
Постоянно следите за ходом эксперимента, чтобы убедиться, что он идет по плану и нет аномалий или технических проблем.
🟠Анализ подгрупп
Рассмотрите возможность анализа подгрупп (например, новые пользователи vs. постоянные пользователи), чтобы понять, как изменения влияют на различные сегменты аудитории.
Ставь 👍 и забирай 📚 Базу знаний__iter__() и __next__(). Итераторы используются для последовательного перебора элементов коллекций, таких как списки, кортежи и множества.
class MyIterator:
def __init__(self, limit):
self.limit = limit
self.counter = 0
def __iter__(self):
return self
def __next__(self):
if self.counter < self.limit:
self.counter += 1
return self.counter
else:
raise StopIteration
my_iter = MyIterator(3)
for num in my_iter:
print(num)
# Вывод:
# 1
# 2
# 3{}
🚩Генераторы
Это специальный тип итератора, который создается с помощью функции, содержащей одно или несколько выражений yield. Генераторы позволяют удобно создавать итераторы без необходимости явно определять класс и методы __iter__() и __next__(). Генераторы автоматически реализуют протокол итерации.
def simple_generator():
yield 1
yield 2
yield 3
gen = simple_generator()
for num in gen:
print(num)
# Вывод:
# 1
# 2
# 3{}
🚩Основные различия
🟠Создание
Итератор: Для создания итератора необходимо явно определить класс с методами iter() и next().
Генератор: Генератор создается с помощью функции, содержащей ключевое слово yield.
🟠Синтаксис и удобство
Итератор: Требует больше кода для создания. Необходимо вручную управлять состоянием.
Генератор: Более компактный и читаемый код. Управление состоянием осуществляется автоматически.
🟠Память
Итератор: Может использовать больше памяти, так как хранит все данные в памяти, если это не специально оптимизированный итератор.
Генератор: Использует меньше памяти, так как вычисляет и возвращает элементы по одному, по мере необходимости.
🟠Использование
Итератор: Подходит для более сложных случаев, когда нужно иметь полный контроль над процессом итерации.
Генератор: Идеален для простых случаев итерации и ленивых вычислений, когда элементы генерируются по мере необходимости.
🚩Примеры для сравнения
Итератор
class MyIterator:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
self.current += 1
return self.current - 1
else:
raise StopIteration
it = MyIterator(0, 3)
for num in it:
print(num){}
Генератор
def my_generator(start, end):
current = start
while current < end:
yield current
current += 1
gen = my_generator(0, 3)
for num in gen:
print(num){}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Data Science | Вопросы собесов — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 5.0K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.2, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4055.94 ₽, а за 1 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий