Сможете найти ошибку в коде?
Как дела, code-детективы? Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что если хотите прокачать навык чтения и анализа чужого кода, а это крайне полезный навык в работе ML-инженера, рубрика вам пригодится.
Вот фрагмент кода:
Тут всё хорошо. Или нет? Есть какая-то ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.
Ответ мы опубликуем через пару дней, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
Как дела, code-детективы? Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что если хотите прокачать навык чтения и анализа чужого кода, а это крайне полезный навык в работе ML-инженера, рубрика вам пригодится.
Вот фрагмент кода:
import pandas as pd
init_df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # инициализируем датафрейм с исходными данными
df_for_tests = init_df # делаем копию начального датафрейма чтобы на ней проводить наши тесты
df_for_tests['A'] = 0 # изменяем один из элементов в датафрейме для тестов
Тут всё хорошо. Или нет? Есть какая-то ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.
Ответ мы опубликуем через пару дней, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
MLinside - школа ML
Сможете найти ошибку в коде? Как дела, code-детективы? Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что если хотите прокачать навык чтения и анализа…
А вот и ответ на пост
В питоне есть 3 варианта создания переменной с тем же содержимым как у другой:
Исправление:
В питоне есть 3 варианта создания переменной с тем же содержимым как у другой:
Присваивание - создает ссылку на тот же объект
Метод .copy() - создает копию объекта верхнего уровня, например может создать такой же список. Но если дан список списков, то такое копирование оставит ссылки на вложенные списки общими
deepcopy из библиотеки copy - полностью копирует объект со всем вложенным содержимым
Исправление:
import pandas as pd
Import copy
init_df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # инициализируем датафрейм с исходными данными
df_for_tests = init_df.copy() # делаем копию начального датафрейма чтобы на ней проводить наши тесты
df_for_tests['A'] = 0❤8🔥6
Как думаете, может ли быть такое, что результатам A/B-теста нельзя верить?
Короткий ответ – да. В сложных системах пользователи и алгоритмы влияют друг на друга через общее состояние платформы, из-за чего классический A/B начинает ломаться и показывать ложный эффект.
У нас вышло видео, где Александр Дубейковский разбирает интерференцию, объясняет, почему метрики скачут, чем A/B отвечает на вопрос «кому стало лучше», а switchback — «как изменилась система в целом».
Если вы еще не смотрели, собрали для вас ссылки:
YouTube
Дзен
ВК
Короткий ответ – да. В сложных системах пользователи и алгоритмы влияют друг на друга через общее состояние платформы, из-за чего классический A/B начинает ломаться и показывать ложный эффект.
У нас вышло видео, где Александр Дубейковский разбирает интерференцию, объясняет, почему метрики скачут, чем A/B отвечает на вопрос «кому стало лучше», а switchback — «как изменилась система в целом».
Если вы еще не смотрели, собрали для вас ссылки:
YouTube
Дзен
ВК
🔥10❤4
Для многих путь в ML упирается в математику
Производные, матрицы, вероятности – знакомые слова, которые часто откладывают обучение «на потом». Мы хорошо знаем эту проблему, поэтому осенью запускали курс по математике и вот, первый поток завершился, делимся итогами.
Всего в обучении участвовали 15 человек, из них 9 стабильно сдавали домашние работы и активно работали на протяжении всего времени.
Преподаватель курса, Сергей Жестков, отметил два ключевых результата: сбалансированную программу и высокий уровень вовлечённости студентов. По его словам, участники не просто решали задачи правильно, но и внимательно относились к оформлению решений и подходу в целом, что для взрослой аудитории большая редкость и лучшая оценка работы курса.
Это подтверждают и отзывы студентов. Многие отмечали, что математика перестала восприниматься как что-то пугающее, а подача через примеры, аналогии и визуализации помогла разобраться в сложных темах и почувствовать уверенность. При этом участники честно делились тем, чего им хотелось бы больше – например, дополнительных связей с задачами ML и LLM, что мы обязательно учтём в следующих потоках.
В итоге первый поток показал главное: математика может быть понятной, интересной и полезной, если давать её в правильном объёме и нужном контексте.
Производные, матрицы, вероятности – знакомые слова, которые часто откладывают обучение «на потом». Мы хорошо знаем эту проблему, поэтому осенью запускали курс по математике и вот, первый поток завершился, делимся итогами.
Всего в обучении участвовали 15 человек, из них 9 стабильно сдавали домашние работы и активно работали на протяжении всего времени.
Преподаватель курса, Сергей Жестков, отметил два ключевых результата: сбалансированную программу и высокий уровень вовлечённости студентов. По его словам, участники не просто решали задачи правильно, но и внимательно относились к оформлению решений и подходу в целом, что для взрослой аудитории большая редкость и лучшая оценка работы курса.
Это подтверждают и отзывы студентов. Многие отмечали, что математика перестала восприниматься как что-то пугающее, а подача через примеры, аналогии и визуализации помогла разобраться в сложных темах и почувствовать уверенность. При этом участники честно делились тем, чего им хотелось бы больше – например, дополнительных связей с задачами ML и LLM, что мы обязательно учтём в следующих потоках.
В итоге первый поток показал главное: математика может быть понятной, интересной и полезной, если давать её в правильном объёме и нужном контексте.
❤16👍9🏆9💯2
Media is too big
VIEW IN TELEGRAM
Дарья Тихонович – Staff DL инженер и лид в Яндексе RecSys RnD, ранее – лид направления нейросетевых рекомендаций в МТС. Мейнтейнер open-source фреймворка RecTools для рекомендательных систем, спикер профильных митапов и конференций, преподаватель и активный участник DS-комьюнити.
На YouTube у нас вышла первая часть подкаста с Дарьей. В выпуске говорим о переходе в Data Science из другой сферы, о пути от джуна до лида, о роли ментора в формировании инженерной культуры и о том, как open source помогает расти быстрее – и специалисту, и компании.
Собрали ссылки для удобства:
YouTube
Дзен
ВК
На YouTube у нас вышла первая часть подкаста с Дарьей. В выпуске говорим о переходе в Data Science из другой сферы, о пути от джуна до лида, о роли ментора в формировании инженерной культуры и о том, как open source помогает расти быстрее – и специалисту, и компании.
Собрали ссылки для удобства:
YouTube
Дзен
ВК
❤14
Учимся на практике: решаем реальные ML-задачки
С вами рубрика #петпроект_MLinside и тут мы публикуем задачи из реальных проектов, чтобы лучше запомнить теорию. Плюс, упоминание об этом можно включить в портфолио, что определенно поможет вам на собеседованиях.
Восьмая задача: предсказание бот или человек
Что нужно сделать: Предсказать по статистике комментария и аккаунта сделавшего его бот это или человек
Как можно сделать:
▪️Закодировать категориальные переменные (например, OHE или target encoding)
▪️Обучить модель: линейную регрессию, случайный лес, разные бустинги
▪️Определить важность признаков, например, через SHAP
▪️Сделать разбиение по категории и сделать сравнение между ними
Данные можно взять на Kaggle: https://www.kaggle.com/datasets/nudratabbas/the-dead-internet-theory-reddit-bot-vs-human
Пример ноутбука (с случайными пропусками строк): https://colab.research.google.com/drive/1HUk8PuKKzueeyTh9Vt8nHT1u16Xtetft?usp=sharing
Готовы попробовать? Делитесь своими результатами в комментариях.
Все посты этой рубрики можно посмотреть по тэгу: #петпроект_MLinside
С вами рубрика #петпроект_MLinside и тут мы публикуем задачи из реальных проектов, чтобы лучше запомнить теорию. Плюс, упоминание об этом можно включить в портфолио, что определенно поможет вам на собеседованиях.
Восьмая задача: предсказание бот или человек
Что нужно сделать: Предсказать по статистике комментария и аккаунта сделавшего его бот это или человек
Как можно сделать:
▪️Закодировать категориальные переменные (например, OHE или target encoding)
▪️Обучить модель: линейную регрессию, случайный лес, разные бустинги
▪️Определить важность признаков, например, через SHAP
▪️Сделать разбиение по категории и сделать сравнение между ними
Данные можно взять на Kaggle: https://www.kaggle.com/datasets/nudratabbas/the-dead-internet-theory-reddit-bot-vs-human
Пример ноутбука (с случайными пропусками строк): https://colab.research.google.com/drive/1HUk8PuKKzueeyTh9Vt8nHT1u16Xtetft?usp=sharing
Готовы попробовать? Делитесь своими результатами в комментариях.
Все посты этой рубрики можно посмотреть по тэгу: #петпроект_MLinside
❤5🔥4👍2
Осенью мы проводили исследование аудитории и с тех пор многое изменилось
Мы запустили четвертый поток "Базы ML", запускали пробный курс по математике (результаты можно посмотреть в этом посте), а в новом году запустили курс специализация ИИ и анализ данных.
Впереди у нас множество планов и интересных новостей, но важно держать руку на пульсе и знать, чего хотите именно вы. От площадок, где вам удобно потреблять наш контент и тому, как вы относитесь к блокировкам площадок (планируете ли переезжать на другие платформы или будете оставаться там, где привычно и удобно), до более подробных вопросов про ML, математику и ваш уровень подготовки.
Исследование аудитории мы всегда проводим в 2 этапа:
1. Заполнение формы – https://forms.yandex.ru/u/698e28d390fa7b3dedfea105, в ней есть ряд вопросов, все с вариантами ответов. Займет минут 5 или меньше, но ваши ответы нам очень помогут.
2. Короткий созвон с теми, кто оставит контакт в конце формы. Обычно звонок занимает минут 20-30, мы задаем вам вопросы, а вы отвечаете так, как считаете нужным.
Вне зависимости от того, поучаствуете вы в первом, втором или обоих этапах – мы будем вам очень благодарны.
Мы запустили четвертый поток "Базы ML", запускали пробный курс по математике (результаты можно посмотреть в этом посте), а в новом году запустили курс специализация ИИ и анализ данных.
Впереди у нас множество планов и интересных новостей, но важно держать руку на пульсе и знать, чего хотите именно вы. От площадок, где вам удобно потреблять наш контент и тому, как вы относитесь к блокировкам площадок (планируете ли переезжать на другие платформы или будете оставаться там, где привычно и удобно), до более подробных вопросов про ML, математику и ваш уровень подготовки.
Исследование аудитории мы всегда проводим в 2 этапа:
1. Заполнение формы – https://forms.yandex.ru/u/698e28d390fa7b3dedfea105, в ней есть ряд вопросов, все с вариантами ответов. Займет минут 5 или меньше, но ваши ответы нам очень помогут.
2. Короткий созвон с теми, кто оставит контакт в конце формы. Обычно звонок занимает минут 20-30, мы задаем вам вопросы, а вы отвечаете так, как считаете нужным.
Вне зависимости от того, поучаствуете вы в первом, втором или обоих этапах – мы будем вам очень благодарны.
❤6👍2
Media is too big
VIEW IN TELEGRAM
Вторая часть подкаста с Дарьей Тихонович уже на канале
Во второй части Виктор и Дарья обсуждают практическую сторону работы в ML: как корректно оценивать рекомендательные системы, почему офлайн-метрики могут вводить в заблуждение и какую роль играет A/B-тестирование в принятии продуктовых решений.
Собрали для вас ссылки:
YouTube
Дзен
ВК
Во второй части Виктор и Дарья обсуждают практическую сторону работы в ML: как корректно оценивать рекомендательные системы, почему офлайн-метрики могут вводить в заблуждение и какую роль играет A/B-тестирование в принятии продуктовых решений.
Собрали для вас ссылки:
YouTube
Дзен
ВК
👍8
Сможете найти ошибку в коде?
Обший сбор, code-детективы! У нас тут новый код с ошибкой. Или нет. Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что если хотите прокачать навык чтения и анализа чужого кода, а это крайне полезный навык в работе ML-инженера, рубрика вам пригодится.
Вот фрагмент кода:
Тут всё хорошо. Или нет? Есть какая-то ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.
Ответ мы опубликуем через пару дней, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
Обший сбор, code-детективы! У нас тут новый код с ошибкой. Или нет. Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что если хотите прокачать навык чтения и анализа чужого кода, а это крайне полезный навык в работе ML-инженера, рубрика вам пригодится.
Вот фрагмент кода:
Import numpy as np
a = [1, np.nan, 3, 4, np.nan]
for i in range(len(a)):
if a[i] == np.nan: # хотим заменить все значения нанов на 10
a[i] = 10
print(a)
Тут всё хорошо. Или нет? Есть какая-то ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.
Ответ мы опубликуем через пару дней, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
MLinside - школа ML
Сможете найти ошибку в коде? Обший сбор, code-детективы! У нас тут новый код с ошибкой. Или нет. Да, это наша регулярная рубрика Code Detective. Тут мы публикуем фрагмент кода, а вы смотрите, что с ним не так. Но помните, что ошибки может и не быть. Так что…
А вот и ответ на пост. Да, в коде есть ошибка.
Объяснение:
Наны не равны между собой (по стандарту IEEE 754), даже сам объект с значением Нан не равен себе же. Код:
a = np.nan
print(a == a)
Выведет False
то есть == использовать нельзя, как вариант можно использовать оператор is
Исправление:
#CodeDetective_MLinside
Объяснение:
Наны не равны между собой (по стандарту IEEE 754), даже сам объект с значением Нан не равен себе же. Код:
a = np.nan
print(a == a)
Выведет False
то есть == использовать нельзя, как вариант можно использовать оператор is
Исправление:
Import numpy as np
a = [1, np.nan, 3, 4, np.nan]
for i in range(len(a)):
if a[i] is np.nan:
a[i] = 10
print(a)#CodeDetective_MLinside
Знакомим вас с преподавателями специализации AI и анализ данных
Это люди, которые строили ML-сервисы в Яндексе, управляли сотнями Data Scientists в МТС, запускали AI в банках. И на курсе они рассказывают о том, что реально работает в индустрии.
Почитать подробнее про программу специализации можно на сайте. Сейчас там доступно 2 больших блока на 100+ уроков, а подписка стоит от 5 000 рублей в месяц.
Это люди, которые строили ML-сервисы в Яндексе, управляли сотнями Data Scientists в МТС, запускали AI в банках. И на курсе они рассказывают о том, что реально работает в индустрии.
Почитать подробнее про программу специализации можно на сайте. Сейчас там доступно 2 больших блока на 100+ уроков, а подписка стоит от 5 000 рублей в месяц.
❤3👎1