Заскуль питона (Data Science)
8.19K subscribers
176 photos
17 videos
4 files
187 links
Канал про Python, аналитику, Data Science, SQL и многое другое

По вопросам сотрудничества и рекламе: @m459n9

Сайт: zasqlpython.ru
Бот для тренировки: @zasql_python_train_bot
Download Telegram
Листал Linkedin, нашел такой пост, интересно посмотреть там комменты :)

Тут есть несколько популярных направлений для размышлений:

1. Джуны действительно нужны, нужно вкладывать в развитие команд + можно нанять больше сотрудников.

Инвестиция в команду, рост лояльности, масштабирование

2. Джуны обходятся компании дорого. Помимо его зарплаты уходит зарплата менторов на обучение, а никакому сеньору они не нужны.

Время сеньоров, ответственность, риск неокупаемости

Пара комментов из поста:

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

Ни одному синьеру не нужен никакой джун, время на него тратить еще и ответственность ненужная

К сожалению, "Хороший человек" - это не профессия.

А утверждение "любой Сеньор будет рад стажеру - более чем спорное...


🙊 Лично мне кажется, что вопрос не в нужны или не нужны джуны, а в том, есть ли у компании инфраструктура под их рост.

Что думаете по этому поводу? Пишите в комментариях
👀

Ставьте много 🐳, выпущу пост-разбор задачки с собесов :)

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
1🐳9113961
Классическая задача на повышение матожидания

Вариаций много, встречается часто с равномерным отрезком [0;1] или с перебросом шестигранного кубика.

🤓 Условие задачи

У вас честный шестигранный кубик.
Вы делаете первый бросок и видите результат X. Затем вы можете:

1. оставить этот результат
2. сделать второй бросок (перебросить) и тогда итогом станет результат второго броска Y.

Вопрос: какую стратегию нужно использовать, чтобы максимизировать математическое ожидание итогового результата, и чему равно это математическое ожидание выигрышной стратегии?


Решение под спойлером

1. Матожидание кубика = (1+2+3+4+5+6) / 6 = 3.5

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

а) Если x > 3.5, выгоднее оставить, так как в среднем мы получаем меньше, чем видим сейчас
б) Если x < 3.5, лучше перебросить, в среднем мы получаем больше, чем видим сейчас
в) Если x = 3.5, ничего. Но фактически мы не можем получить 3.5, поэтому разбивается на два сценария (только а и б).

Имеем исходы с перебросом: {1; 2; 3} и исходы без переброса: {4; 5; 6}

2. Теперь к выигрышной стратегии

Пусть W выигрышная стратегия а E(Y) — матожидание кубика, будем смотреть на вариации первого броска и дальше считать матожидание стратегии

При X <= 3

E(W|X=1) = E(W|X=2)=E(W|X=3) = E(Y) = 3.5

💡 Когда нам выпало 1, 2 или 3, мы отказываемся от этого значения и фактически играем заново с чистого листа, а значит в среднем получаем матожидание одного честного броска — 3.5. Второй бросок — обычный честный кубик 🎲

При X > 3

E(W|X=4) = 4
E(W|X=5) = 5
E(W|X=6) = 6

Тогда E(X| X > 3) = (4+5+6) / 3 = 5

При выпадении 4, 5 или 6 текущее значение уже больше математического ожидания нового броска (3.5), поэтому перебрасывать невыгодно. Поэтому условные матожидания будут фактическими значениями на кубике.

Тогда получаем матожидание выигрышной стратегии

E(W)= P(X<3) * E(Y) + P(X>=4)*E(X|X>=4) = 3/6 *3.5 + 3/6 * 5
🥳🥳🥳

Еще есть интересный вопрос на понимание: А что будет, если перебрасывать мы будем не один раз, а два, три и так далее? Меня это кстати спрашивали на собеседовании в одной компании. Нужно включить голову 🤔


Спойлер для двух перебросов (максимум 3 броска):

Так как при одном перебросе (двух бросках) матожидание оптимальной стратегии равно 4.25, то при двух перебросах оптимально оставлять 5 и 6.

E(W) = 4.25 * 4/6 + (5 + 6) * 2/6 = 14/3 = 4.666...


И дополнительно вопрос, а куда будет стремиться матожидание при бесконечном количестве подбрасываний, если нам разрешат забирать выигрыш на тех подбрасываниях, которые нас устроили?


Мы используем оптимальное правило остановки: перебрасываем, пока не выпадет 6. Вероятность того, что 6 рано или поздно выпадет, равна 1, поэтому матожидание стратегии стремится к 6.

🐍 Python можно задать вот так

def expected_value(rerolls, sides=6):
"""
Возвращает максимальное матожидание,
если осталось несколько перебросов
"""
V = (sides + 1) / 2

for _ in range(rerolls):
total = 0
for x in range(1, sides + 1):
total += max(x, V)
V = total / sides

return V

for k in range(5):
print(f"{k} перебросов. Матожидание = {expected_value(k)}")


Ставьте 🐳, если понравился разбор и нужен разбор еще задач!
Делитесь в комментариях, попадалась ли вам подобная или похожая задача? Можно разобрать!

👌 Если у вас есть Premium, вы можете бустануть канал — это бесплатно и занимает 3 секунды. Нам совсем чуть-чуть осталось до 10 уровня, хочу поставить обои!

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
3🐳88131073
Навыки аналитики выходят за рамки одной профессии

Работа с данными становится частью разных ролей: от маркетинга до управления продуктами.
Поэтому аналитические навыки ценятся не только у дата-специалистов.

На программе «Аналитика данных» от МФТИ и Нетологии вы последовательно разберёте весь путь работы с данными: от сбора и обработки до анализа и визуализации. В программе — Python, базы данных и базовые методы ИИ.

Обучение проходит онлайн и подойдёт тем, кто хочет войти в аналитику или систематизировать знания. После выпуска вы получаете дипломы МФТИ и Нетологии и готовое портфолио проектов.

Начать учиться → https://netolo.gy/ew7c

Реклама. ООО “Нетология” ОГРН 1207700135884 Erid:2VSb5yvVePb
167🐳322
Как правильно входить в собеседование

Оригинал поста

Ладно, тут не только про шашлыки

🙊 Комментарии к посту

А потом этот чел шашлычник напишет здесь 10 постов что рынок не тот, его, короля, не берут на работу)

Не вижу ничего плохого в том, что такие кандидаты сразу освобождают место для более внимательных и заинтересованных кандидатов :)
Да и для компании хорошо - лучше всё сразу понять на собеседовании.

Так в чём неуважение-то проявляется в случае с шашлыком? У меня в 2025 году вообще было 2 собеседования в ресторане. И что тут неуважительного? И вопросы позадавали, и поели вкусно.


А вы что думаете? Норм шашлыки делать на собесе или стрем?

🍢 — норм, можно показать на практике многозадачность, критическое мышление и умение жарить шашлыки.

👎 — стрем, кандидат должен быть вовлечен в собеседование и это смущает вообще. Хочется быть "на равных".

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
7872732
[СТАТЬЯ] Покоряем гору временных рядов: делаем прогноз для 200+ рядов с библиотекой Etna

У Магнит OMNI 19 января вышел туториал для новичков по временным рядам с использование библиотеки ETNA

Ниже короткий разбор, что в ней есть 👇

1. В статье начали с наивных прогнозов последним значением, а далее начали применять библиотеку ETNA
2. Сравнивали несколько моделей по WAPE (абсолютной взвешенной ошибке)
3. Показали как применить пользовательские преобразования (в примере — создание линейного тренда для модели линейной регрессии) ✏️
4. Выделили блок про стандартизацию данных для оценки временных рядов (в целом, это нужно для соразмерности сравнения ошибок между моделями).
5. Уделили время аномалиям (что они влияют на прогноз и как фреймворк может их обнаруживать).
6. Какими значениями можно заменять аномалии (в примере — предыдущее значение).
7. Далее указали, что проблема может быть в точках изменения тренда.

Новичкам, которые работают с временными рядами, зайдёт. Это скорее инструкция по возможностям библиотеки и типовым проблемам: аномалии, точки перегиба, оценка качества и т.д.

Сам сталкивался с проблемами аномалий и точек перегиба — в статье это подсвечено.

Если вдруг будет интересно, можно попробовать собрать пару постов по прогнозу временных рядов, если увижу много 📈 (давайте попробуем 150+).

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

А как у вас дела с временными рядами? Успели с ними поработать и что-то спрогнозировать? Делитесь в комментариях

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
99962
Что ж, всех с понедельником! Календарь забит важными встречами, просьба не отвлекать по всякой ерунде 😂

А как планируете провести эту неделю? И этот день?

Я:

— Хочу отлично поработать и закрыть задачи спринта с фулл-фокусом. Посмотрим, на мое состояние в пятницу 👀
— Написать пару постов на неделю
— Сходить в тренажерный зал, делал перерыв. Чувствую, что без него, стало тяжелее жить
— Порешать задачи на Степике, кстати, планировал выпустить второй пост с подборкой курсов, ставьте 🐳
— Пересмотреть записи лекций и семинаров с учебы в магистратуре. Надеюсь, там будет еще что-то полезное.

А у вас как по плану? Работа, сияние или сразу царственно отдыхать? 😌

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳839843