O seu período de teste terminou!
Para acesso total à funcionalidade, pague uma subscrição premium
ZA
Задачи DS - Собеседования, Соревнования, ШАД
https://t.me/zadachi_ds
Idade do canal
Criado
Linguagem
Russo
0.49%
ER (semana)
6.23%
ERRAR (semana)

Чат: @zadachi_ds_chat

Реклама: @menshe_treh

Mensagens Estatísticas
Repostagens e citações
Redes de publicação
Satélites
Contatos
História
Principais categorias
As principais categorias de mensagens aparecerão aqui.
Principais menções
Não foram detectadas menções significativas.
Encontrado 48 resultados
A/B тестирование в Data Science

Пробежимся по базе
1️⃣ Как определить продолжительность A/B-теста?
Сначала рассчитаем необходимый размер выборки, учитывая стат значимость
(в районе 95%), мощность (80%+) и минимальный обнаруживаемый эффект: чем меньше MDE, тем дольше тест
Затем добавляем бизнес-контекст: тест должен охватывать полный цикл пользователя (ex.: неделя в e-commerce для данных по будням и выходным) и избегаем сезонных искажений

Если метрика зависит от долгих решений (мб, дорогие покупки/подписки) 🔜увеличиваем срок

Проверяем, не влияют ли внешние факторы (конкуренция/акции)
Ну и по итогу, длительность — максимум между временем сбора выборки и покрытием бизнес-цикла
2️⃣Каких принципов придерживаться, чтобы избежать ошибок при разработке теста?
Тут нужно разобрать пункты:
корректность дизайна
обеспечение изоляции тестирования
оценка бизнес-рисков
адаптация теста под специфику продукта

Прежде всего, важно рассчитать достаточный размер выборки с помощью калькулятора мощности (ex. для выявления 5%-го роста конверсии при 80%-ной мощности потребуется около 4000 пользователей на группу) и обеспечить чистую рандомизацию, используя, скажем, распределение по cookie вместо географического принципа, чтобы избежать смещений данных
Немного про изоляцию: ex.: запуск теста скидок в декабре может дать искаженные результаты из-за новогоднего ажиотажа

Плюс, недопустимо тестировать завышенные цены на уязвимые группы (например, пенсионеров👴) или жертвовать долгосрочными показателями вроде NPS ради краткосрочного роста продаж, что в конечном итоге снизит LTV

Тестирование подписки как продукта с долгим циклом принятия решения может занять 2-3 месяца, тогда как эксперимент с изменением цвета кнопки обычно укладывается в 1-2 недели
Uber, например, тестирует бонусные программы для водителей в течение трех месяцев из-за длительного цикла привлечения, тогда как market сектор может получить результаты по изменению заголовков карточек товаров уже через неделю благодаря быстрой метрике
3️⃣Как формируются тестовые группы в A/B-тесте?
Группы создаются путём случайного распределения юзеров или стратифицированной выборки (важно: группы должны отражать структуру аудитории)
В некоторых международных бигтехах это автоматически делает внутренняя система
A/B-тестирования
4️⃣Как расставить приоритеты, если метрики в тесте противоречат друг другу?
Ориентируемся на главную цель эксперимента, чувствительность метрик к изменениям и практическую значимость для бизнеса
5️⃣Что такое vanity metrics, и почему их стоит избегать?
Это поверхностные показатели, которые могут вводить в заблуждение и не отражать реальные бизнес-цели
Про A/B тестирования от преподавателей ШАДа
(дедлайн: 4 мая)

@zadachi_ds
25.04.2025, 20:27
t.me/zadachi_ds/173
🔥 Как определиться с делом своей жизни, когда ты только заканчиваешь школу?

Эту проблему необязательно решать в одиночку – существует проверенный способ разобраться в себе и своём призвании. Поговорим о нём на вебинаре!

⭐️ Во время стрима разберём 4 сценария, которые помогут тебе выбрать своё будущее – и покажем, как они работают в реальности. Как понять себя, подсветить свои сильные стороны, и какие решения точно не стоит принимать вслепую.

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

Когда: 29 апреля, 19:00 (МСК)
Спикеры:
— Дмитрий Лукашов, экс-директор по маркетингу Skillbox
— и секретный гость из ИТ, хорошо знающий рынок и его потребности

🎁 Подарок всем участникам:
Гайд «Как не ошибиться с выбором профессии и вуза? 4 шага к успеху в ИТ» — чтобы начать менять свою жизнь сразу после вебинара.

✅ Участие бесплатное

УЗНАТЬ ПОДРОБНЕЕ

Реклама АНО ВО «РУМТ»
ИНН 1215144727
erid: 2SDnjcgJdzM
25.04.2025, 18:45
t.me/zadachi_ds/172
GIF - 1 (1).mp4
🩶🩶🩶🩶🩶🩶🩶🩶🩶🩶
Не теряйте время — вступайте в сообщество Центрального университета.

В канале Центрального университета собрана вся информация для старшеклассников:
— даты и правила поступления;
— обзоры перспективных специальностей (ИТ, бизнес, аналитика);
— стажировки и карьера для молодых специалистов;
— рекомендации от нынешних студентов и ответы на вопросы.

Присоединяйтесь и начните свой путь вместе с Центральным университетом!


Реклама. АНО ВО "Центральный университет", ИНН 7743418023, erid:2RanynR5fz1
22.04.2025, 18:03
t.me/zadachi_ds/171
Поступашки объявляют набор на курс по АВ тестам!

Мечтаешь стать крутым аналитиком или дата сайентистом и с легкостью тащить собесы, но тебе не хватает фундамента? Хочешь овладеть знаниями и навыками для работы в крупной компании такой, как Яндекс, ВК, Сбер, Авито или Тинькофф? Тогда тебе к нам!

Курс заточен под практику, вся теория будет разобрана на конкретных задачах и кейсах, которые встречаются на работе и собесах. На курсах вас ждут пет проекты и мини проекты, которые пойдут в ваше портфолио, разбор реальных тестовых заданий бигтехов, разбор майского контеста на стажировку в Т-банк, разбор реальных технических вопросов с собесов!

Курс стартует 04.05 и длится 5 недель, каждую неделю по 2 урока, более 40 часов материалов с последующим доступом к записям и ДЗ с проверкой! На семинарах общаются с каждым учеником (можете посмотреть на то, как проходят семинары вот здесь ). Ежедневная связь, сильное окружение, помощь в составлении анкеты, резюме, пробные собесы, контесты, персональные рекомендации, инсайды и домашнее задание с проверкой, код ревью с разбором от преподавателя! Все будет еще круче, чем на всех прошлых курсах (отзывы тут).

Программа и Подробности.

📊 Цена очень низкая! Всего 8'500 рублей за курс

Для вопросов и покупок пишем администратору.
22.04.2025, 10:07
t.me/zadachi_ds/170
Задача E
import csv

def determine_class_name(file_name):
return 'A' if len(file_name) % 2 == 1 else 'B'

def process_csv_file(input_filename, output_filename):
with open(input_filename, 'r') as input_file, \
open(output_filename, 'w', newline='') as output_file:

reader = csv.reader(input_file)
writer = csv.writer(output_file)

for row_index, row in enumerate(reader):
if row_index == 0:
writer.writerow(row + ['class_name'])
else:
file_name = row[0] if row else ''
writer.writerow(row + [determine_class_name(file_name)])

def main():
input_file = "test.csv"
output_file = "output.csv"
process_csv_file(input_file, output_file)
main()
Задача F
import sys
sys.setrecursionlimit(10**6)

def read_input_data():
grid_size = int(input())
rain_threshold, flood_threshold, max_flood_area = map(int, input().split())
rainfall_grid = [list(map(int, input().split())) for _ in range(grid_size)]
return grid_size, rain_threshold, flood_threshold, max_flood_area, rainfall_grid

def analyze_rainfall_region(grid, x, y, visited, rain_threshold, flood_threshold):
stack = [(x, y)]
region_area = 0
has_flood_conditions = False

while stack:
i, j = stack.pop()
if visited[i][j]:
continue

visited[i][j] = True
region_area += 1

if grid[i][j] >= flood_threshold:
has_flood_conditions = True

for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1),
(-1, -1), (-1, 1), (1, -1), (1, 1)]:
ni, nj = i + dx, j + dy
if (0 <= ni < len(grid) and 0 <= nj < len(grid) and
not visited[ni][nj] and grid[ni][nj] >= rain_threshold:
stack.append((ni, nj))

return region_area, has_flood_conditions

def check_flood_conditions(grid, grid_size, rain_threshold, flood_threshold, max_flood_area):
visited = [[False] * grid_size for _ in range(grid_size)]

for i in range(grid_size):
for j in range(grid_size):
if grid[i][j] >= rain_threshold and not visited[i][j]:
area, has_flood = analyze_rainfall_region(
grid, i, j, visited, rain_threshold, flood_threshold)

if area <= max_flood_area and has_flood:
continue
else:
return False
return True

grid_dimension, rain_limit, flood_limit, max_area, rainfall_data = read_input_data()
flood_risk = check_flood_conditions(
rainfall_data, grid_dimension, rain_limit, flood_limit, max_area)
print("True" if flood_risk else "False")
@zadachi_ds
20.04.2025, 17:26
t.me/zadachi_ds/169
С Пасхой вас, дорогие зайчики 🌷🐰
В честь этого православного праздника ловите специальный подарок — решение контеста ML от Yандекса

С наилучшими пожеланиями, ваш админчик💅

Задача A
def find_min_distance_between_duplicates():
count = int(input())
numbers = list(map(int, input().split()))
last_occurrence = {}
min_distance = -1

for index in range(count):
current_number = numbers[index]
if current_number in last_occurrence:
distance = index - last_occurrence[current_number] - 1
if min_distance == -1 or distance < min_distance:
min_distance = distance
last_occurrence[current_number] = index

print(min_distance)
Задача B
def calculate_subtree_max_times(node, parent, max_times, edges):
for neighbor, time in edges[node]:
if neighbor == parent:
continue
calculate_subtree_max_times(neighbor, node, max_times, edges)
max_times[node] = max(max_times[node], max_times[neighbor] + time)

def find_optimal_root(node, parent, max_times, edges, parent_max_path):
global min_max_time, optimal_root

child_paths = []
children = []
current_max_path = parent_max_path

for neighbor, time in edges[node]:
if neighbor == parent:
continue
child_paths.append(max_times[neighbor] + time)
current_max_path = max(current_max_path, max_times[neighbor] + time)
children.append((neighbor, time))

if current_max_path < min_max_time:
min_max_time = current_max_path
optimal_root = node

if not child_paths:
return

prefix_max = [child_paths[0]] * len(child_paths)
suffix_max = [child_paths[-1]] * len(child_paths)

for i in range(1, len(child_paths)):
prefix_max[i] = max(prefix_max[i-1], child_paths[i])

for i in range(len(child_paths)-2, -1, -1):
suffix_max[i] = max(suffix_max[i+1], child_paths[i])

for i, (child, time) in enumerate(children):
left_max = prefix_max[i-1] if i > 0 else 0
right_max = suffix_max[i+1] if i+1 < len(children) else 0
new_parent_max = max(left_max, right_max, parent_max_path) + time
find_optimal_root(child, node, max_times, edges, new_parent_max)

def process_tree():
global min_max_time, optimal_root
min_max_time = float('inf')
optimal_root = 0

node_count = int(input())
edges = [[] for _ in range(node_count)]

for _ in range(node_count - 1):
a, b, t = map(int, input().split())
edges[a-1].append((b-1, t))
edges[b-1].append((a-1, t))

max_times = [0] * node_count
calculate_subtree_max_times(0, 0, max_times, edges)
find_optimal_root(0, 0, max_times, edges, 0)
print(optimal_root + 1)

process_tree()
Задача C
import numpy as np

def normalize_vector(vector):
return vector / np.linalg.norm(vector)

def solve_linear_system(matrix, rhs):
if not abs(np.linalg.det(matrix)) < 1e-8:
solution = np.linalg.solve(matrix, rhs)
else:
_, _, v_transpose = np.linalg.svd(matrix)
solution = v_transpose[-1]
return normalize_vector(solution)

def process_linear_system():
n, m = map(int, input().split())
system_matrix = np.array([list(map(int, input().split())) for _ in range(n)])
right_hand_side = np.array([-1 for _ in range(n)])

solution = solve_linear_system(system_matrix, right_hand_side)

print('YES')
print(*solution)
process_linear_system()
Задача D
GGGBGGGGGGBGGBG

@zadachi_ds
20.04.2025, 17:26
t.me/zadachi_ds/168
С Пасхой вас, дорогие зайчики 🌷🐰
В честь этого православного праздника ловите специальный подарок — решение контеста ML от Yандекса

С наилучшими пожеланиями, ваш админчик💅

Задача A
def find_min_distance_between_duplicates():
count = int(input())
numbers = list(map(int, input().split()))
last_occurrence = {}
min_distance = -1

for index in range(count):
current_number = numbers[index]
if current_number in last_occurrence:
distance = index - last_occurrence[current_number] - 1
if min_distance == -1 or distance < min_distance:
min_distance = distance
last_occurrence[current_number] = index

print(min_distance)
Задача B
def calculate_subtree_max_times(node, parent, max_times, edges):
for neighbor, time in edges[node]:
if neighbor == parent:
continue
calculate_subtree_max_times(neighbor, node, max_times, edges)
max_times[node] = max(max_times[node], max_times[neighbor] + time)

def find_optimal_root(node, parent, max_times, edges, parent_max_path):
global min_max_time, optimal_root

child_paths = []
children = []
current_max_path = parent_max_path

for neighbor, time in edges[node]:
if neighbor == parent:
continue
child_paths.append(max_times[neighbor] + time)
current_max_path = max(current_max_path, max_times[neighbor] + time)
children.append((neighbor, time))

if current_max_path < min_max_time:
min_max_time = current_max_path
optimal_root = node

if not child_paths:
return

prefix_max = [child_paths[0]] * len(child_paths)
suffix_max = [child_paths[-1]] * len(child_paths)

for i in range(1, len(child_paths)):
prefix_max[i] = max(prefix_max[i-1], child_paths[i])

for i in range(len(child_paths)-2, -1, -1):
suffix_max[i] = max(suffix_max[i+1], child_paths[i])

for i, (child, time) in enumerate(children):
left_max = prefix_max[i-1] if i > 0 else 0
right_max = suffix_max[i+1] if i+1 < len(children) else 0
new_parent_max = max(left_max, right_max, parent_max_path) + time
find_optimal_root(child, node, max_times, edges, new_parent_max)

def process_tree():
global min_max_time, optimal_root
min_max_time = float('inf')
optimal_root = 0

node_count = int(input())
edges = [[] for _ in range(node_count)]

for _ in range(node_count - 1):
a, b, t = map(int, input().split())
edges[a-1].append((b-1, t))
edges[b-1].append((a-1, t))

max_times = [0] * node_count
calculate_subtree_max_times(0, 0, max_times, edges)
find_optimal_root(0, 0, max_times, edges, 0)
print(optimal_root + 1)

process_tree()
Задача C
import numpy as np

def normalize_vector(vector):
return vector / np.linalg.norm(vector)

def solve_linear_system(matrix, rhs):
if not abs(np.linalg.det(matrix)) < 1e-8:
solution = np.linalg.solve(matrix, rhs)
else:
_, _, v_transpose = np.linalg.svd(matrix)
solution = v_transpose[-1]
return normalize_vector(solution)

def process_linear_system():
n, m = map(int, input().split())
system_matrix = np.array([list(map(int, input().split())) for _ in range(n)])
right_hand_side = np.array([-1 for _ in range(n)])

solution = solve_linear_system(system_matrix, right_hand_side)

print('YES')
print(*solution)
process_linear_system()
Задача D
GGGBGGGGGGBGGBG

@zadachi_ds
20.04.2025, 17:25
t.me/zadachi_ds/166
Задача E
import csv

def determine_class_name(file_name):
return 'A' if len(file_name) % 2 == 1 else 'B'

def process_csv_file(input_filename, output_filename):
with open(input_filename, 'r') as input_file, \
open(output_filename, 'w', newline='') as output_file:

reader = csv.reader(input_file)
writer = csv.writer(output_file)

for row_index, row in enumerate(reader):
if row_index == 0:
writer.writerow(row + ['class_name'])
else:
file_name = row[0] if row else ''
writer.writerow(row + [determine_class_name(file_name)])

def main():
input_file = "test.csv"
output_file = "output.csv"
process_csv_file(input_file, output_file)
main()
Задача F
import sys
sys.setrecursionlimit(10**6)

def read_input_data():
grid_size = int(input())
rain_threshold, flood_threshold, max_flood_area = map(int, input().split())
rainfall_grid = [list(map(int, input().split())) for _ in range(grid_size)]
return grid_size, rain_threshold, flood_threshold, max_flood_area, rainfall_grid

def analyze_rainfall_region(grid, x, y, visited, rain_threshold, flood_threshold):
stack = [(x, y)]
region_area = 0
has_flood_conditions = False

while stack:
i, j = stack.pop()
if visited[i][j]:
continue

visited[i][j] = True
region_area += 1

if grid[i][j] >= flood_threshold:
has_flood_conditions = True

for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1),
(-1, -1), (-1, 1), (1, -1), (1, 1)]:
ni, nj = i + dx, j + dy
if (0 <= ni < len(grid) and 0 <= nj < len(grid) and
not visited[ni][nj] and grid[ni][nj] >= rain_threshold:
stack.append((ni, nj))

return region_area, has_flood_conditions

def check_flood_conditions(grid, grid_size, rain_threshold, flood_threshold, max_flood_area):
visited = [[False] * grid_size for _ in range(grid_size)]

for i in range(grid_size):
for j in range(grid_size):
if grid[i][j] >= rain_threshold and not visited[i][j]:
area, has_flood = analyze_rainfall_region(
grid, i, j, visited, rain_threshold, flood_threshold)

if area <= max_flood_area and has_flood:
continue
else:
return False
return True

grid_dimension, rain_limit, flood_limit, max_area, rainfall_data = read_input_data()
flood_risk = check_flood_conditions(
rainfall_data, grid_dimension, rain_limit, flood_limit, max_area)
print("True" if flood_risk else "False")
@zadachi_ds
20.04.2025, 17:25
t.me/zadachi_ds/167
Частые ошибки data science джунов при обработке данных🤓
Часть2.

Hint1: важно соблюдать базовые инженерные практики
Сосредотачиваемся не только на алгоритмах, но и на документации, тестировании и производительности

Представьте модель с хорошими показателями по метрикам, которая, к сожалению, "падает" при нестандартном вводе/требует нереальных вычислительных ресурсов — в реальных условиях она окажется бесполезной

Во избежание этого:
1️⃣ пишем README и документируйте код — через месяц вы сами сможете разобраться в своём решении
2️⃣ тестируем предобработку и edge-cases, a.k.a
"что произойдёт, если на вход подать нули или пропущенные значения?"
3️⃣ замеряем производительность — время выполнения, потребление памяти, узкие места итд.
4️⃣ продумываем план продакшена, или же
"как модель будет развёрнута, как обрабатывать ошибки, есть ли механизм отката?"
Hint2: особое внимание стоит уделить интерпретируемости моделей
"Чёрный ящик" может быть приемлем в академических исследованиях, но в бизнес-задачах это недопустимо

Если модель предсказывает отрицательную цену дома или не может объяснить, какие факторы влияют на прогноз, её практическая ценность стремится к нулю🫤

Для повышения интерпретируемости можно прибегать к SHAP, LIME или аналогичным методам +вводим ручками проверки на "разумность" предсказаний и можно обсудить результаты с стейкхолдерами. Их вопросы часто помогают выявить логические несоответствия, незаметные при технической разработке

@zadachi_ds
16.04.2025, 17:07
t.me/zadachi_ds/165
Финальная распродажа в честь ДОДов ШАДа! Объявляем скидку в 65% до 14.04! Любой курс серии можно приобрести всего за 20’000 7'000 рублей:

➡️ алгоритмы
➡️ теория вероятностей
➡️ линейная алгебра
➡️ математический анализ

Для вопросов и покупок пишем администратору.

Торопитесь! Количество мест на каждый курс ограничено.
13.04.2025, 17:15
t.me/zadachi_ds/164
Частые ошибки data science джунов при обработке данных🤓 Часть1.

Одна из самых коварных проблем — утечка данных
Тут у нас информация из теста неявно попадает в процесс обучения, создавая иллюзию высокой производительности модели
(характерно в задачах временных рядов)
Для предотвращения важно следовать нескольким простым, но эффективным правилам:

Во-первых, вся предобработка
(нормализация, заполнение пропусков, генерация признаков итд.) должна выполняться исключительно на обучающих данных, и только затем те же преобразования применяются к тесту
Во-вторых, использование инструментов вроде pipelines в scikit-learn помогает автоматизировать этот процесс и минимизировать человеческий фактор
Ну и участие в Kaggle соревах, где строго следят за отсутствием утечек, — отличный способ выработать правильные привычки
Пункт номер два — преждевременное увлечение сложными моделями
Есть определённая тенденция сразу же строить глубокие нейронки или сложные ансамбли, не потратив времени на базовый анализ данных :( что закономерно лишает вас ценного бейзлайна
(часто линейная регрессия или скользящее среднее показывают результаты, сопоставимые с более сложными алгоритмами) + использование "хайповых" методов без понимания их необходимости только усложняет задачу, не принося реальной пользы
Хорошая темка, так это прибегать к постепенному усложнению: начинаем с простых моделей, анализируем данные — визуализируем распределения, проверяем на аномалии, обсуждаем задачу, и уже потом переходим к более сложным алгоритмам, постоянно сравнивая их с базовыми решениями через A/B-тестирование
Сами поставьте перед собой вопрос: "Почему эта модель работает лучше?" — это поможет избежать слепых макака-действий
Не менее важна правильная оценка результатов
Например, сравнение точечных метрик(например, accuracy 88% против 89%) без учёта их распределения
На практике такая разница может быть статистически незначимой
Чтобы получить достоверные выводы, необходимо повторять эксперименты — использовать разные random seed, проводить кросс-валидацию, анализировать разброс значений. Статистические тесты (t-test, bootstrap) помогут определить, действительно ли улучшения значимы
@zadachi_ds
11.04.2025, 14:33
t.me/zadachi_ds/163
Остался один день до конца регистрации на ML-соревнование от Avito Tech!
Здесь две секции —занимайтесь алгоритмами настройки рекомендаций или поиском дублей. Или участвуйте и там, и там, чтобы увеличить шансы на победу вдвое!

Почему это крутая возможность?
Призовой фонд: 1 место — 250 000 ₽, 2 место — 200 000 ₽, 3 место — 150 000 ₽.
Опыт: поработаете с настоящими данными после анонимизации и добавите актуальный кейс в свое портфолио.

Ваши решения будут проверяться автоматически, так что все по-честному. Участвуйте самостоятельно или объединяйтесь в команды до 4 человек.
Успейте подать заявку до 12 апреля: Алгоритмы настройки рекомендаций и Поиск дублей
11.04.2025, 10:04
t.me/zadachi_ds/162
⌨️Как научиться писать эталонный код?

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

💡 Институт iSpring – это ИТ-вуз нового типа, где учебная программа основана на лучших традициях инженерной школы и передовом опыте создания первоклассных продуктов для глобального ИТ-рынка.

⚡️ Преподаватели из ведущих компаний будут формировать ваш стиль программирования с первых дней обучения.
Фундаментальность и максимальное количество практики на парах позволит тебе работать над реальными проектами уже после первого курса

Наши студенты за 4 года учёбы становятся настоящими профессионалами, которые самостоятельно могут создавать топовые ИТ-продукты.

❗️Хочешь узнать, как у нас всё организовано? Приходи на Погружение в программирование. Напишешь игру на JavaScript под руководством наставников-студентов нашего Института. У тебя всё получится, даже если ты ни разу не программировал.

Решайся!

ЗАПИСАТЬСЯ НА ПОГРУЖЕНИЕ

Когда: 19-20 апреля
Где: Йошкар-Ола, офис ИТ-компании iSpring
Цена: 1980 ₽

Реклама АНО ВО «РУМТ»
ИНН 1215144727
erid: 2SDnje3ory2
10.04.2025, 19:07
t.me/zadachi_ds/161
⚡️Создаем эффективный дашборд как в Wildberries

Продуктовые дашборды позволяют визуализировать ключевые метрики и принимать обоснованные решения. Но как создать действительно эффективный дашборд?

Егор Чеменев, опытный продуктовый аналитик из Wildberries и автор телеграм-канала «Data Brew», проведет прямой эфир, посвященный созданию продуктового дашборда.

На этой неделе мы уже проводили эфир по WB — анализировали продажи с помощью Python. Теперь идем дальше — Егор, благодаря своему опыту в Wildberries, продемонстрирует, как эффективно использовать данные и инструменты для создания дашбордов.

Что будем делать:
🟠Выберем метрики: узнаем, какие ключевые показатели необходимо отслеживать для развития продукта;
🟠Напишем запросы в PostgreSQL;
🟠Научимся визуализировать данные в Power BI так, чтобы они были понятны и полезны для принятия решений;
🟠Отталкиваясь от визуализации поищем идеи для будущих исследований.

🕗 Встречаемся 8 апреля в 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар
7.04.2025, 21:16
t.me/zadachi_ds/158
Внимание, солдаты NLP-фронта!

Пока политики стреляют словами,
а дипломаты роют траншеи
в переговорных окопах
Мы разберём, как алгоритмы превращают эту словесную артиллерию в векторы

🫡Готовьте гранаты токенизации и заряжайте пушки Self-Attention: сегодня мы штурмуем тему трансформеров

Word2Vec:
Семантический снайпер
Алгоритм превращает слова в векторы, где Россия и Беларусь — соседи, а Швейцария — вдали
CBOW предсказывает слово по контексту
Переговоры о [___] и зерновом коридоре → безопасности
Skip-gram ищет окружение для слова, как мины в тексте

Self-Attention:
Генерал трансформеров
Выделяет ключевые связи
прекращение огня → линия соприкосновения
игнорируем шаблоны вроде стороны выражают надежду
Как 🕶разведчики🕶, видящие суть сквозь пропаганду

Fine-Tuning:
Переподготовка спецназа
BERT, обученный на речах политиков, отличает
западных партнёров от пендосов
Зачем учить с нуля, если можно переквалифицировать модель?:)

Токенизация:
Разбор трофеев
Например, можем разделить словосочетание Антониу Гутерриш на части, но термин многополярный_мир, возможно, обратится в бессмыслицу ([много, поляр, ный_мир])

TF-IDF:
Приоритет целей
Определяет ценность слов:
Крым — ударный термин,
взаимопонимание — пустой звук
Рост TF-IDF для Бухарестский меморандум в 2022 году — сигнал к пересмотру границ

LLM:
Ядерный арсенал NLP
GPT-4 генерирует договоры за минуты,
BERT находит двусмысленности в старых текстах

Галлюцинации LLМ: Дружественный огонь
Например, нейронка приписывает Макрону
Украина должна капитулировать
— включайте радиста-фактчекера или понижайте температуру модели

Оптимизация внимания:
Тактика блицкрига
Sparse Attention анализирует 500 страниц за 5 секунд, фокусируясь на санкциях и безопасности подобно танковому прорыву через бюрократию

Словари:
Боевой комплект NLP
Большой словарь — тяжёлый арсенал
SWIFT-отключение.......
маленький — пистолет с тремя патронами

Контекст:
Радиосвязь диалога
Без контекста переговоры —
как рация с помехами
BERT связывает 91 год с Беловежьем,
а все варианты на столе читает как угрозу

Что могут спросить по теме трансформеров на собеседовании:
Основные типы LLM:
авторегрессионные (ex.GPT) генерируют текст последовательно, предсказывая следующее слово

двунаправленные(ex.BERT) анализируют контекст слева и справа от слова

энкодер-декодер(ex.T5, BART) преобразуют входные данные в выходные через промежуточное представление
Обучение
предобучение на большом корпусе текста с задачами вроде предсказания следующего токена или заполнения масок

fine-tuning на специфических датасетах для конкретных задач
Оценка
perplexity:
(the lower the better)
фактологичность, связность
ну и разные бенчмарки:
(GLUE, SuperGLUE, SQuAD)
Чем BERT отличается от GPT?
BERT: двунаправленный,
masked LM, для классификации
GPT: авторегрессия, генерация текста
Как бороться с галлюцинациями в LLM?
контроль температуры, top-k/p,
проверка фактов, fine-tuning
Как оптимизируют внимание в трансформерах?
разреженное внимание, кэширование, квантование, пакетная обработка
Какие гиперпараметры генерации ключевые в GPT?
temperature:
(креативность)
top-k/p:
(выбор токенов)
beam search:
(качество)
repetition_penalty
@zadachi_ds
3.04.2025, 21:50
t.me/zadachi_ds/157
Alfa: data science и ML
по вакансиям: тут, тут2
по стажировке: Alfa Students платформа
на ней публикуются наборы по направлениям Data Engineering и Data Science(тут)
по хакатонам: Alfa Hack
(чатик по 24 году темы в 25 году крайне вероятно будут схожими, поэтому можно готовиться по материалам прошлого года: прокачаетесь+ хороший призовой фонд в случае победы)
есть летняя школа машинного обучения SMILES
при партнёрстве Sber AI Lab
(чатик по 24 году, рекомендую отслеживать обновления по 25 году на сайте, потому что школа даёт хороший буст в сфере и фаст-трек на стажку)
по плюшкам: default для бигтеха
(удалёнка или гибрид, оплачиваемые курсы и конференции, мед.страховка, спорт, митапы, тимбилдинги)
по материалам: тгкAlfaStudent, тгкAlfaDigital(предложения по вакансиям и тематические посты),занятная статья о моделировании карточных транзакций от Лаборатории машиинного обучения Alfa Банка

@zadachi_ds
29.03.2025, 16:03
t.me/zadachi_ds/156
🤓 Планы на апрель: участвуем онлайн в бесплатной «Здоровой Олимпиаде», становимся самым активным вузом и выигрываем главный приз
😎 Планы на лето: едем с одногруппниками отдыхать на музыкальный фестиваль в Сочи

А теперь по порядку:
🔹 Регистрируемся на платформе и становимся участником «Здоровой Олимпиады».
🔹 В любой день с 3 по 9 апреля находим 45 минут и выполняем онлайн несложные задания по теме ЗОЖ и нескучного правильного питания.
🔹 В награду получаем цифровые подарки и прочие плюшки.
🔹 Не забываем рассказать об Олимпиаде своим одногруппникам. Самый активный вуз получит грант на участие в музыкальном фестивале в Сочи, а самый-самый среди колледжей, училищ или техникумов — 1 000 000 рублей 🎉
🔹 Всё, вы великолепны!

Подробности и регистрация по ссылке 👈
29.03.2025, 13:02
t.me/zadachi_ds/155
Сбер: data science и ML
по стажировке:
официальный масштабный отбор на стажки идёт раз в полгода:
❄️ и 🍀 СберStudent
по вакансиям: тутПАОСбер(некоторые вакансии не требуют опыта),
тутСберDevelopers, тутСберDevices
по плюшкам: default для бигтеха🌚
general info: статьи по проектам СберDevices, команды СберТех
(разработанная ими платформа)
по хакатонам: чатик прошлогоднего Sber ML Hack, актуальные события,
IT-Хакатон Сбер x ПРОСТО x ИТМО
(даты: 29.03.2025 - 30.03.2025)
по материалам: тгкКарьераВСбере, сайтЛабораторииИИ, сайтЛабораториинейронаук, AIвСбере

@zadachi_ds
28.03.2025, 10:48
t.me/zadachi_ds/154
Т-банк aka GoydA-банк:
data science и ML
по вакансиям: тут
по стажировке: Т-старт:
пишете тест по алгосикам
(достаточно сложный, рекомендуется выделить под это время)
+халявный куизз для детсадовцев
(важно сдать на максимум для прохода на интервью)
по плюшкам: 🌝удалёнка или гибрид, оплачиваемые курсы и конференции, мед.страховка, спорт, митапы, тимбилдинги🌝
есть ещё Т-Lab с иНтеЛЛекТуальными проектами
(оформляете анкету -> решаете контест -> делаете тестовое задание -> проходите собеседование и вы в танцах)
митапы Т-Банка, ВУЗовские программы
по материалам: тут публикуется инфа по волнам стажировок

@zadachi_ds
26.03.2025, 11:47
t.me/zadachi_ds/153
⚡️Решаем тестовое задание в Магнит Tech на позицию аналитика данных в прямом эфире

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

Эти навыки приходят с опытом нарешивания боевых задач и тестовых, одно из которых мы разберем на бесплатном вебинаре с Павлом Беляевым - руководителем группы дата-аналитиков в компании Яндекс eLama.

Что мы будем делать на вебинаре:
🟠познакомимся с тестовым заданием одной из крупнейших ритейл-сетей «Магнит»;
🟠с помощью SQL потренируемся искать нужное в товарном ассортименте;
🟠с помощью Python научимся определять слова-палиндромы.

А ещё — увидим тестовое задание по SQL eLama, безотказно работавшее 6 лет. В нем есть важный нюанс, на котором многие сыпались!

🕗 Встречаемся 25 марта 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар
24.03.2025, 16:39
t.me/zadachi_ds/152
Авито: data science и ML
по вакансиям: тут тут2
по стажировке: возьмут только с 3 курса иначе- реджект
по хакатонам: AvitoTech ML cup
(чатик по соревнованию за 2024)
ребята разрабатывали модель, предсказывающую вероятность клика пользователя на рекламу на основе анонимизированных данных о его характеристиках и предпочтениях
инсайды по хакатонам
по плюшкам: default для бигтеха
(удалёнка или гибрид, оплачиваемые курсы и конференции, мед.страховка, спорт, митапы, тимбилдинги)
по Data Analytics, Data Engineering, Data Science:
есть week offerы
(по роадмэпу: анкета, тест, тех собес, интервью с командами)
по материалам: ютубчек AvitoTech, гитхаб

ML Cup 2025: регистрации
personal recommendations
search for duplicates


@zadachi_ds
24.03.2025, 14:04
t.me/zadachi_ds/151
💅Яндекс: data science и ML

💅по вакансиям: тут
💅по стажировке: тут
(этапы: контест-лёгкая беседа по ml+easy algoзадачка-этап со сложными algoзадачками-беседы с командами)

💅образовательные проекты, mlтренировки
💅по плюшкам: базовый набор топовой IT конторы
(если стажёр, то кайфанёшь от офиса + есть день сырков в столовке и заряженное community)

💅статьи: статьи о проектах
💅по материалам: тгкYoung_and_Yandex, тгкML и ютубчег, тгкDevelopers, ютуб-каналЯндекса, ЯндексОбразование

@zadachi_ds
23.03.2025, 18:43
t.me/zadachi_ds/150
23.03.2025, 18:43
t.me/zadachi_ds/149
Это должен знать стажёр-желторотик
Ниже представлен минимум! который точно должен знать стажёр к собеседованию💅

Как работает линейная регрессия?
Она моделирует зависимость между независимыми переменными (признаками) и зависимой переменной (целевой) с помощью линейной функции
Формулка:
y=β0+β1x1+β2x2+⋯+βnxn+ϵ
где:
y — целевая переменная,
β0— свободный член (intercept),
β1,β2,…,βn​ — коэффициенты при признаках
x1,x2​,…,xn​ — признаки
ϵ — ошибка

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

Как выбрать оптимальные коэффициенты в линейной регрессии?
Основная цель в подборе— минимизировать функцию потерь
Можно выбирать с помощью метода наименьших квадратов

Как оценить качество модели в задаче многоклассовой классификации?
Пойдём от частного к общему и посмотрим на примере
Пусть дана задача классификации изображений на 10 классов (CIFAR-10)
Можем рассмотреть:

Accuracy
(долю правильно классифицированных примеров)

Precision, Recall, F1-score
(эти метрики можно рассчитать для каждого класса отдельно, а затем усреднить

macro/micro averaging:
macro: если классы сбалансированы и важны одинаково (считает метрику для каждого класса отдельно, затем усредняет)
иначе micro: считает метрику глобально, учитывая все предсказания и истинные значения)

Confusion Matrix
(показывает, сколько примеров каждого класса было правильно классифицировано)

ROC-AUC
(для многоклассовой классификации можно использовать One-vs-Rest подход для построения ROC-кривых и расчёта AUC)
Как вы оцените качество модели по оттоку клиентов?
Можем поставить задачу классификации и максимизировать recall, чтобы не пропустить клиентов, которые могут уйти
Расскажите про оценку качества задачи регрессии
Тут раскрываем понятия метрик: MSE, RMSE, MAE, R² + проверяем модель на переобученность, к примеру, кросс-валидацией

@zadachi_ds
22.03.2025, 18:23
t.me/zadachi_ds/148
Олимпиада для будущих бизнесменов от «Алабуга Политех»

Хочешь испытать себя в мире бизнеса и предпринимательства☺️
Участвуй во Всероссийской олимпиаде по предпринимательству☺️

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

На олимпиаде ты сможешь получить:
☺️ место ☺️ игровой ноутбук;
☺️ место ☺️ VR-очки;
☺️ место ☺️ умная колонка.

Для участия необходимо:
☺️Оставить заявку на сайте
☺️Начать прохождение бизнес-симуляции “Business Cats”
☺️Ввести код мероприятия: «Олимп25»
☺️Набрать более 1 балла по «Аналитике» и «Общению».

Выиграй главный приз и получи возможность поступить в «Алабуга Политех»☺️
Регистрируйся прямо сейчас и начни путь к успеху☺️
19.03.2025, 13:54
t.me/zadachi_ds/147
#яндекс
17.03.2025, 23:03
t.me/zadachi_ds/146
Накрутка опыта среди DS-еров: ожидания и реальность

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

С помощью накрутки можно поднять свои показатели и получить 💰
но в то же время есть шанс и не удержаться на новой должности из-за недостатка реальных hard skilloв
Хотя есть и те, кто использует такие методы как временный буст

О том как "сойти" за СВОего и стать человечком из своего приукрашенного резюме🤓:

Залут опыта с данными и добавление пет-проектов в портфолио
(Kaggle, DrivenData, хакатоны и.т.д.)

Адекватное оформление вашего github, чтобы он не выглядел как свалка файлов

Раз уж собрались важничать и претендовать на вакансию миддла, то подотовьте соответствующие hard skillы
(просмотрите требования по разным вакансиям в bigtech компаниях)

Получите опыт работы с "грязными" данными, погоняйте по митапам, конференциям, другим доп опбразовательным мероприятиям, где пообщайтесь со спецами и сможете получить фидбек по вашим вопросам

Понимайте работу структур и алгоритмов
(leetcode в помощь)
+читайте и ещё раз читайте статьи
(так вы и сами кайфанёте, и покажете заинтересованность в сфере работодателю)
По материалам: по оформлению github, негативный опыт накрутки, позитивный опыт
17.03.2025, 23:03
t.me/zadachi_ds/145
В честь международного дня женщин мы объявляем скидку на все курсы серии 50% до 9 марта включительно. Дарите своим любимым не веники, а по-настоящему полезные вещи! Так же на курсах будет разбор контеста в ШАД 2025 года, а еще вернут потраченные деньги на курс, если первым сдадите все дз.

➡️ алгоритмы старт 08.03
➡️ теория вероятностей старт 16.03
➡️ линейная алгебра старт 23.03
➡️ математический анализ старт 30.03

📊 Цена: 20'000рублей 10’000 рублей за каждый курс с учетом скидки (до 9 марта в честь праздника) доступна скидка в 50% при покупке любого курса). Далее базовая цена повышается до 20’000 рублей за курс.

Для вопросов и покупок пишем администратору и не тянем с этим: на каждом курсе количество мест ограничено
7.03.2025, 18:59
t.me/zadachi_ds/144
Задача дня

Дагестанские учёные разработали модель DL, которая сможет классифицировать текстовые высказывания на две категории: принадлежащие
Дональду Т. или Владимиру З.

Нужно:
использовать набор данных, содержащий примеры высказываний каждого из них

Пайплайн решения:

1.Сбор текстовых данных из речей, интервью и твитов Дональда Т. и Владимира З.

2.Очистка текста от пунктуации и приведение к нижнему регистру

3.Токенизация текста и преобразование его в последовательности чисел с помощью Tokenizer из Keras

4.Использование архитектуры LSTM или GRU для обработки последовательностей

5.Разделение данных на обучающую и тестовую выборки

6.Оценка и использование модели для классификации новых высказываний.

Материалы по работе с LSTM и c Keras😘

Пример анализа:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense

model = Sequential()
model.add(Embedding(input_dim=10000, output_dim=128, input_length=100))
model.add(LSTM(128))
model.add(Dense(1, activation='sigmoid'))

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

model.fit(X_train, y_train, epochs=10, batch_size=64, validation_data=(X_test, y_test))

new_text = "Мы сделаем Америку снова великой."
prediction = model.predict(new_text)
print("Дональд Т" if prediction > 0.5 else "Владимир З.")


@zadachi_ds
7.03.2025, 16:41
t.me/zadachi_ds/143
Наносекеры, принимаем буквально устные задачи с соревнования по искусственному интеллекту🕶
Задача1
в современных больших нейронных сетях
(особенно языковых моделях)
критически важно снижать требования к памяти и вычислительным ресурсам
один из методов сжатия — тернаризация весов,
где значения весов заменяются на -1/0/+1
в зависимости от порога w₀

Дано:
распределение весов нейронного слоя
идёт по закону Лапласа с плотностью👆
(на картиночке выше)
тернаризация выполняется по правилу👆
(там же на картиночке)

Нужно:
найти оптимальный порог w₀, максимизирующий корреляцию между исходными весами w и тернаризованными w'

input:
действительное число λ > 0 (тип float)

output:
оптимальное значение w₀ с точностью до 1e-4.
Задача2
Дано:
Дмитрий и Алексей участвуют в игре, в которой каждый из них выбирает строку, состоящую из нулей и единиц одинаковой длиныN

затем они бросают монету несколько раз и фиксируют результаты: если выпадает орел, записывается 0, а если решка — 1

если после очередного броска последние N символов, записанные в строке, совпадают с строкой одного из игроков, то этот игрок выигрывает

т.е
во входном файле находится одна строка, содержащая две различные строки a и b длиной от 1 до 6 символов (где 1 ≤ N ≤ 6 ), состоящие только из нулей и единиц, разделенные пробелом
строки представляют выбор Дмитрия и Алексея соответственно

Нужно:
на основе заданных строк Дмитрия и Алексея вычислить вероятность победы Дмитрия

В output хотим вывести одно действительное число p — вероятность победы Дмитрия
Ответ будет считаться правильным, если он отличается от верного ответа не более чем на 10^(-4) по абсолютному значению


@zadachi_ds
5.03.2025, 18:24
t.me/zadachi_ds/142
Наносекеры, принимаем буквально устные задачи с соревнования по искусственному интеллекту🕶
Задача1
в современных больших нейронных сетях
(особенно языковых моделях)
критически важно снижать требования к памяти и вычислительным ресурсам
один из методов сжатия — тернаризация весов,
где значения весов заменяются на -1/0/+1
в зависимости от порога w₀

Дано:
распределение весов нейронного слоя
идёт по закону Лапласа с плотностью👆
(на картиночке выше)
тернаризация выполняется по правилу👆
(там же на картиночке)

Нужно:
найти оптимальный порог w₀, максимизирующий корреляцию между исходными весами w и тернаризованными w'

input:
действительное число λ > 0 (тип float)

output:
оптимальное значение w₀ с точностью до 1e-4.
Задача2
Дано:
Дмитрий и Алексей участвуют в игре, в которой каждый из них выбирает строку, состоящую из нулей и единиц одинаковой длиныN

затем они бросают монету несколько раз и фиксируют результаты: если выпадает орел, записывается 0, а если решка — 1

если после очередного броска последние N символов, записанные в строке, совпадают с строкой одного из игроков, то этот игрок выигрывает

т.е
во входном файле находится одна строка, содержащая две различные строки a и b длиной от 1 до 6 символов (где 1 ≤ N ≤ 6 ), состоящие только из нулей и единиц, разделенные пробелом
строки представляют выбор Дмитрия и Алексея соответственно

Нужно:
на основе заданных строк Дмитрия и Алексея вычислить вероятность победы Дмитрия

В output хотим вывести одно действительное число p — вероятность победы Дмитрия
Ответ будет считаться правильным, если он отличается от верного ответа не более чем на 10^(-4) по абсолютному значению
5.03.2025, 18:20
t.me/zadachi_ds/141
Товарищи пивозавры, новый прилёт👍
Нет, не орешник, пятничные задачки
28.02.2025, 11:42
t.me/zadachi_ds/140
Старшеклассники, спешим на кейс-чемпионат DEADLINE!

Центральный университет приглашает учеников 10—11-х классов, которым интересны экономика, бизнес и ИТ. Здесь можно попробовать себя в реальных задачах от финтех-компаний. А еще — прокачать мышление, познакомиться с единомышленниками и получить шанс выиграть призы.

Вот что получат победители:
— Грант до 100% на обучение в Центральном университете;
— Ужин с профессорами Центрального университета и топ-менеджерами финтеха;
— Яндекс Станцию;
— Стильный мерч.

Участие в чемпионате полностью бесплатно.
Финал пройдет в Москве — в штаб-квартире Т-Банка. Здесь можно познакомиться с лидерами ИТ и бизнеса, а еще — презентовать идею своего проекта.

Ты в деле? Успей зарегистрироваться до 9 марта!

Реклама АО "Центральный университет", инн7743418023, erid: 2RanykNvqUm
24.02.2025, 13:09
t.me/zadachi_ds/139
Поступашки продолжают набор на курс по машинному обучению хард!

Мечтаешь стать крутым дата сайнтистом и с легкость тащить собесы, но не хватает фундамента и практики на реальных проектах? Хочешь овладеть знаниями и навыками для работы в крупной компании как Яндекс, ВК, Сбер или Тинькофф? Тогда тебе к нам!

Курс заточен под практику, вся теория будет разобрана на конкретных задачах и кейсах, с которыми сталкиваются на работе и на собесах. На курсах вас ждут куча пет проектов такие как рекомендательная система, система поисковых подсказок, модель предсказания спроса и куча мини проектов, которые пойдут в портфолио. Поста не хватит, чтобы описать все, программа реально мощная. Также вас ждет разбор реальных тестовых заданий бигтехов, разбор актуального контеста на стажировку в Яндекс, список реальных технических вопрос с собесов и много других приятных бонусов как разбор всех задач с алгособесов Яндекса. А после прохождения курса тебя ждет пробный собес с подробной консультацией и сопровождением, рефералкой в Яндекс или в другие топовые компании😎

Более того, ты сможешь получить ВСЕ ДЕНЬГИ потраченные на курс обратно, если первым решишь все домашние задание 😎😎

Курс длится 6 недель, каждую неделю по 2 урока, огромное количество дополнительного контента, более 40 часов контента с последующим доступом к записям и ДЗ с проверкой! На семинарах с каждым учеником общаются по очереди, полноценное общение как здесь. Ежедневная связь, сильное окружение, помощь по составлению анкеты, резюме, пробные собесы, контесты, персональные рекомендации, инсайды и домашнее задание с проверкой, код ревью и с разбором от преподавателя, который отвечает даже после завершения курса! Все будет еще круче, чем на всех прошлый курсах (отзывы тут). Все для того, чтобы получить топовый оффер уже весной или мы вернем потраченные деньги!

Программа и Подробности.

Цена 8000р, но только до 21.02 скидка 20% на мл хард и дата инженер.
Если проходили наши курсы ранее и готовы оставить о них видео отзыв, то цена 6500р.

Для записи и всех вопросов: @menshe_treh

Для освоения курса необходимо владеть темами нашего курса мл старт. Также как дополнение к курсу советуем курс инженер данных.

Еще курсы серии, на которые идет набор:
➡️ инженер данных
➡️ аналитика
➡️ машинное обучение старт
➡️ машинное обучение хард
➡️ бэкенд разработка
➡️ фронтенд разработка
➡️ алгоритмы
21.02.2025, 22:36
t.me/zadachi_ds/138
#easy
дан набор данных об аренде недвижки
надо предсказать стоимость аренды(target) на основе характеристик объектов

1.оставь только числовые признаки
2.заполни пропуски в столбце ceiling_height медианным значением
3.удали строки с пропусками в остальных столбцах
4. удали выбросы с помощью IQR
5.разделите данные на обучающую и тестовую выборки
6.обучи модель LinearRegression() на обучающих данных


@zadachi_ds
21.02.2025, 22:15
t.me/zadachi_ds/137
Сказ о том,
как я на AI&Big Data Expo гонял😮
в начале февраля....

Как овервью: поднимались разные аспекты Data Science: от model deployment и hyperparameter tuning до Ethical AI и data governance
кейсы внедрения production-ready AI
всякие обсуждения scalability,
model interpretability, real-time model monitoring итд., в целом, было приятно понетворкать☕️📞
Бтв: с кайфом покормили всех участников
выжимка понравившегося:
на панельной дискуссии Pfizer рассказали, как переходят от экспериментов с ИИ к их реальному внедрению
говорили про масштабируемость моделей,
о robust-тестированиях и постоянного контроля для стабильности решений,
ну и про разные этические моменты в фармацевтике

у Edvance AI была автоматизация рутинных задач, инфа про архитекторов AI-систем и про важность upskilling и reskilling для адаптации к меняющимся требованиям рынка труда

Snowflake делали фокус на четких метриках, которые демонстрируют ROI от внедрения ИИ и кейсы из ритейла и здравоохранения.

Wolfram затронули проблему галлюцинаций и предложил решение через символьный ИИ
давали примеры гибридных подходов, где ошибки недопустимы, например, в научных ассистентах(проблема достоверности LLM)

ещё отметил растущий интерес к hybrid AI, сочетающему Symbolic AI и Generative AI для повышения надежности

по материалам погоняйте по ссылочкам:
сайт конференции,
по сноуфлейку: 1, 2
по вольфрам: 1, 2
Ля какая спикерша на картиночке
в душу запала, вживую ещё симпатичнее😍
Напоминает одну актрису...


@zadachi_ds
21.02.2025, 22:11
t.me/zadachi_ds/136
Темка по иностранным стажировочкам😍

Открытые зарубежные стажировки на 2025

Инфа по стажировкам AI направления в США

Евроgayские стажки на 2025: software engineers, data science, ml, backend

Важные агрегаторы для стажировок:
gradconnection
(австралийский)


Indeed:
больше относится к работе,
а не стажировкам, но есть и они

Тут программы для стажёров


Ещё больше ресурсов по стажкам и с ними связанными мероприятиями : тут, тут и тут
Читаем, просвещаемся, подаёмся🪨


@zadachi_ds
7.02.2025, 22:24
t.me/zadachi_ds/135
Стажировка в Авито (Аналитика)
Регистрация: туть

Перепроверьте ответики, т.к. отбор решала моя подстольная секретутка😔💅
По другим направлениям
Дедлайн: сегодня
Регистрация: туть


@zadachi_ds
5.02.2025, 18:46
t.me/zadachi_ds/134
🕶Пятничный ROC-AUC подсчёт

@zadachi_ds
31.01.2025, 18:57
t.me/zadachi_ds/132
Решение👆
import torch
import torch.nn as nn
from torchtyping import TensorType

class GPT(nn.Module):

def init(self, vocab_size: int, context_length: int, model_dim: int, num_blocks: int, num_heads: int):
super().init()
torch.manual_seed(0)
self.word_embeddings = nn.Embedding(vocab_size, model_dim)
self.position_embeddings = nn.Embedding(context_length, model_dim)
self.transformer_blocks = nn.Sequential()
for i in range(num_blocks):
self.transformer_blocks.append(self.TransformerBlock(model_dim, num_heads))
self.final_norm = nn.LayerNorm(model_dim)
self.vocab_projection = nn.Linear(model_dim, vocab_size)

def forward(self, context: TensorType[int]) -> TensorType[float]:
torch.manual_seed(0)
embedded = self.word_embeddings(context)
context_length = context.shape[1]
positions = torch.arange(context_length)
embedded = embedded + self.position_embeddings(positions)

raw_output = self.vocab_projection(self.final_norm(self.transformer_blocks(embedded)))
# raw_output это батч context_length по vocab_size

probabilities = nn.functional.softmax(raw_output, dim=-1)
return torch.round(probabilities, decimals=4)
Немного о том, что тут происходит:

тут класс nn.Embedding используется для преобразования токенов в векторные представления заданной размерности (model_dim)

позиционные эмбеддинги добавляют информацию о порядке токенов, что важно для понимания модели последовательности

nn.Sequential создаёт последовательность из TransformerBlock
(дан из условия выше)

последовательность блоков позволяет модели обрабатывать и извлекать сложные зависимости из входных данных

nn.LayerNorm применяется после всех блоков Transformer для стабилизации активаций

линейный слой проецирует выходные данные на размерность словаря (vocab_size), чтобы предсказать вероятности каждого токена

наконец применяется softmax, чтобы преобразовать логиты в вероятности, которые суммируются до 1

@zadachi_ds
30.01.2025, 17:05
t.me/zadachi_ds/131
Продолжение таски
хотим вероятность того, что j-й токен будет следующим, учитывая контекст первых (i + 1) токенов, причём округление до 4 знаков
[[[0.0000, 0.8000, 0.1000, 0.0000, 0.1000],
[0.0000, 0.0000, 0.9000, 0.0000, 0.1000],
[0.0500, 0.0000, 0.0000, 0.9500, 0.0000],
[0.0000, 0.7000, 0.0000, 0.0000, 0.3000],
[0.0000, 0.0000, 0.1000, 0.0000, 0.9000]]]
т.е задача:
реализовать класс GPT, который использует архитектуру трансформера для предсказания вероятности следующих токенов на основе предоставленного контекста

каждый выходной вектор
(по размерности vocab_size) представляет вероятности для каждого токена быть следующим в последовательности

@zadachi_ds
30.01.2025, 17:04
t.me/zadachi_ds/130
Да здравствуют генеративные модели!
От характеристик- к созданию новых объектов!

Таска по написанию класса GPT:

даётся TransformerBlock, который сочетает в себе multi headed attention и сеть прямого распространения
Vanilla(👈подробнее по ссылочкам)

vocab_size: количество различных токенов, которые модель распознаёт

context_length: количество токенов, которые модель может учитывать для предсказания следующего токена

model_dim: размерность признаков для эмбеддингов и механизмов внимания

num_blocks: количество повторений блока TransformerBlock

num_heads: число экземпляров attention heads

context: предыдущие токены, используемые для предсказания

ex.:
vocab_size = 5
context_length = 5
model_dim = 16
num_blocks = 4
num_heads = 4
context = [['With', 'great', 'power', 'comes', 'great']]

предположим, что модель использует следующую внутреннюю разметку:
{'with': 0, 'great': 1, 'power': 2, 'comes': 3, 'responsibility': 4}

@zadachi_ds
30.01.2025, 17:04
t.me/zadachi_ds/129
Подпивасная задачка вечера среды

👇Шэрьтесь мыслями в комментах

@zadachi_ds
29.01.2025, 20:05
t.me/zadachi_ds/128
Камрады, сейчас информация для тех, кому нравится обучать точным наукам и программированию

Мы собрали большое комьюнити умных и образованных людей, среди которых точно есть те, кому нравится помогать школьникам и студентам. Вы сами знаете, насколько важна помощь репетиторов при подготовке к поступлению, особенно сейчас, когда хотят отметить ЕГЭ и урезают бюджетные места олимпиадникам! А стать репетитором не так сложно.

Мы рекомендуем вам читать канал репетитора👉: https://t.me/mishaberezovoy

Автор — Михаил Березовой. Студент факультета компьютерных наук ВШЭ, олимпиадник. За 5 лет репетиторства он разработал систему, которой пользуются все начинающие репетиторы, а действующие с её помощью сокращают время работы и увеличивают доход.

Его советам точно можно доверять, подписывайтесь даже не задумываясь.
29.01.2025, 13:10
t.me/zadachi_ds/127
Стажировка в Т Банк
(ML-инженер, зима-весна 2025)
Дедлайн: 30 января
тапай и проходи отбор
на прохождения теста даётся 20 минут🖤
Условия и ответы ниже👇

1. Какой вид имеет функция регрессии, формируемая классическим регрессионным деревом?

Линейной
Кусочно-постоянной
Кусочно-линейной
Полиномиальной

2. Выберите верные утверждения о числе решающих и терминальных вершин дерева решений

Число решающих вершин всегда меньше числа терминальных вершин
Число решающих вершин всегда больше числа терминальных вершин
Число решающих вершин равно числу терминальных вершин
Число терминальных вершин не больше числа решающих вершин

3. Зачем нужно проводить обрезку дерева?

Для повышения точности дерева на обучающей выборке
Для повышения обобщающих способностей дерева
Для увеличения однородности терминальных вершин
Для увеличения степени гладкости модельной функции регрессии или границ классов

4. Если для некоторого обучающего примера отношение вероятностей бинарного классификатора оказалось близким к 0, что это говорит о вероятности принадлежности этого примера к положительному классу?

Вероятность близка к 0
Вероятность близка к 1
Вероятность близка к 0.5
Ничего нельзя сказать о принадлежности

5. Мы обучаем дерево решений
При увеличении глубины дерева у модели

bias растёт, variance снижается
bias снижается, variance растёт
bias не изменяется, variance снижается
bias не изменяется, variance растёт
bias снижается, variance не изменяется
bias растёт, variance не изменяется

6. Что будет со значением roc-auc, если все предсказанные значения разделить на 2?

Увеличится на 2
Увеличится на 4
Уменьшится на 4
Не изменится

7. Что работает о быстрее на большом датасете k-Fold cv или LOO CV?

k-fold CV
LOO CV
Одинаково быстро
Одинаково медленно

8. В алгоритме бэггинга над решающими деревьями нужно брать

Большой глубины
Малой глубины

9. Для регрессии с MAE какая модель даст наименьшее значение лосса на обучающем датасете?

Ответ модели, которой является минимумом по таргету в обучающем датасете
Ответ по таргету, который является среднее по таргету в обучающем датасете
Ответ модели, который является медианой по таргету в обучающем датасете
Ответ модели, который является модой по таргету в обучающем датасете

10. Какую задачу решает логистическая регрессия?

Классификация
Регрессия
Кластеризация
Поиск аномалий

11. Пусть x- точка, лежащая на границе между классами, формируемыми логистической регрессией
Чему равно отношение шансов для этой точки?
0
1
0.5
Бесконечность

12. Значение логит-функции для некоторого примера оказалось равным 0
Что можно сказать о вероятности принадлежности этого примера к позитивному классу
logit(p)=sigma^(-1)(p)=ln(p/(1-p))

Равна 0
Равна 1
Равна 0.5
Ничего нельзя сказать

13. Чему равно отношение шансов для бинарного классификатора?

Отношению апостериорных вероятностей классов
Отношению априорных вероятностей классов
Отношению функций правдоподобия классов
Отношению линейных комбинаций признаков

14. Если мы хотим отобрать признаки нам стоит использовать L_1 или L_2 регуляризацию?

L_1
L_2
Любой из вариантов

15. Какова вероятность ошибки модели, являющейся голосованием трёх алгоритмов, ошибки которых 0.1 0.2 0.3 соответственно?

0.2
0.099
0.006
0.098

(считаем вероятность ошибки всех троих, затем только двоих из трёх: 1-го и 2-го, 2-го и 3-го, 1-го и 3-го ->вероятности суммируем)

P.s. помимо ML-part, обязательна к прохождению секция алгоритмов, не забудьте
Подготовка к ML


@zadachi_ds
27.01.2025, 18:16
t.me/zadachi_ds/126
Os resultados da pesquisa são limitados a 100 mensagens.
Esses recursos estão disponíveis apenas para usuários premium.
Você precisa recarregar o saldo da sua conta para usá-los.
Filtro
Tipo de mensagem
Cronologia de mensagens semelhante:
Data, mais novo primeiro
Mensagens semelhantes não encontradas
Mensagens
Encontre avatares semelhantes
Canais 0
Alta
Título
Assinantes
Nenhum resultado corresponde aos seus critérios de pesquisa