MLinside - школа ML – Telegram
MLinside - школа ML
3.51K subscribers
202 photos
18 videos
164 links
Предзапись на 4 поток курса "База ML": https://vk.cc/cQ7AkI
Наши курсы: https://taplink.cc/mlinside
Чат коммьюнити: @ml_insidechat
По вопросам: @marinagartm
Download Telegram
От этого кровь стынет в жилах

Да, мы решили не проходить мимо хэллуина и собрали несколько по-настоящему жутких вещей. А чего боитесь вы?
😁377🔥2
Продолжаем нашу рубрику Code Detective. Она для тех, кто хочет прокачать навык чтения и анализа чужого кода – крайне полезный навык в работе ML-инженера.

Вот фрагмент кода:
import pandas as pd

df = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]})
df.fillna(0).dropna()
print(df)

На первый взгляд всё выглядит нормально. Или нет? Тут есть ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.

Ответ мы опубликуем завтра, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
11
Как и обещали, вот ответ на вчерашний пост. Да, в коде есть ошибка.

Объяснение:
fillna(0) возвращает DataFrame, но результат не сохраняется
dropna() вызывается на результате fillna, но тоже не сохраняется
Исходный df не изменяется, так как inplace=False по умолчанию

Исправление:
df = df.fillna(0).dropna()
Или
df.fillna(0, inplace=True)
df.dropna(inplace=True)

#CodeDetective_MLinside
9
Что реально нужно из математики для старта в ML

Мы часто общаемся с новичками в ML. С теми, кто хочет пойти на курс «База ML» и теми, кто уже его проходит. И, пожалуй, самое частое опасение у всех, это математика. Многим кажется, что всё слишком сложно, и лучше не лезть. А зря. Для старта в ML нужно разобраться в нескольких концепциях, а остальное можно догнать потом, с ростом вашего уровня.

▪️Линейная алгебра
Во-первых, векторы и матрицы. Вы должны понимать, что это такое и какие базовые операции с ними можно делать. Это основа, так как большинство моделей ML можно выразить в матричном виде.
Во-вторых, это умножение матриц и это ключевая операция. Вся работа нейронных сетей это, по сути, последовательное перемножение матриц с весами.
Ну и в-третьих, собственные векторы и собственные значения. Эти концепции важны для методов уменьшения размерности, таких как PCA, которые помогают упростить данные без потери важной информации.

▪️Математический анализ
Первое, это производные. Вы должны понимать ее основной смысл – скорость изменения функции.
Второе, это градиент. Это вектор из частных производных, который всегда указывает в сторону самого быстрого роста функции. Чтобы минимизировать ошибку, мы движемся в обратную сторону. Этот метод называется градиентный спуск.
Третье, это различные функции потерь и понимание их свойств. Это функции, которые показывают, насколько сильно наша модель ошибается. И вам нужно понимать несколько основных и совсем несложных фактов про эти функции.

▪️Теория вероятностей и статистика
Во-первых, базовые понятия. Средние значения, медиана, дисперсия, стандартное отклонение – это ваши лучшие друзья. Это основа для анализа и подготовки любых данных.
Во-вторых, это распределение. Понимать, что такое нормальное, биномиальное и равномерное распределение.
В-третьих, АБ-тестирование. Этот инструмент позволяет специалисту понять, какой выигрыш бизнес получает после внедрения ML-модели. И это неотъемлемая часть многих задач в области Data Science.

А чтобы вы могли проверить себя и понять, где вы уже сильны, а что стоит добить, мы собрали мини-опрос ниже. Там всего 3 коротких вопроса, справитесь?
16🔥3
Ситуационная задача - “Бизнес просит срочно!”

Представьте, что вы работаете в продуктовой ML-команде. Продакт прилетает к вам с горящими глазами и говорит:
Нам срочно нужно предсказать, кто из клиентов уйдёт, прямо к пятнице, чтобы отправить им пуши. Время – два дня. Ты же сможешь?
5👍1🔥1
Главная боль собеседований

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

Шаг 1. Бизнес-цель
Вопросы: что решаем, кто пользователь, как выглядит успех для бизнеса.
Что получаем на выходе: список бизнес-метрик и целевых эффектов.

Шаг 2. Данные
Вопросы: какой таргет, есть ли дисбаланс, утечки, сдвиги во времени, хватит ли объёма и качества.
Что получаем на выходе: риски и план подготовки данных.

Шаг 3. Ограничения
Вопросы: ограничения по задержке и частоте инференса, требования к интерпретируемости и приватности, инфраструктура и бюджет.
Что получаем на выходе: рамки выбора модели и пайплайна.

Шаг 4. Метрика и порог
Вопросы: стоимость ошибок I и II рода, что важнее здесь Precision или Recall, нужна ли рабочая точка, PR-AUC или ROC-AUC, есть ли смысл в cost-sensitive подходе.
Что получаем на выходе: основная метрика плюс рабочий порог и вторичные метрики.

Шаг 5. Валидация и онлайн-проверка
Вопросы: корректная разбивка и контроль сдвигов, guardrails, дизайн A/B и окно измерения эффекта.
Что получаем на выходе: план оффлайн-валидации, A/B и мониторинга в проде.

Сохраняйте пост в закладки и возвращайтесь к этому фрейму перед собесом.
23👍5
Как не потеряться на Kaggle: пошаговый гайд для новичков

Если вы только начинаете изучать машинное обучение, Kaggle может показаться чем-то вроде закрытого клуба. Но на самом деле, это лучшая площадка, чтобы перейти от теории к практике и понять, как всё работает.

Что такое Kaggle
Это крупнейшее сообщество специалистов по данным: здесь можно участвовать в соревнованиях, работать с реальными датасетами, делиться кодом и смотреть решения других. Площадка бесплатная, так что порог вхождения, это ваши знания и навыки.

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

Изучите раздел Datasets. Найдите темы, которые вам интересны: спорт, экономика, медицина и т.д. (проверить, стоит ли добавить больше информации)

Посмотрите Notebooks. Это примеры решений других участников. Можно обратить внимание на то, как они пишут код, какие модели выбирают.

Выберите первое соревнование. Лучше начать с чего-нибудь попроще. Самый популярный вариант для новичков, это “Titanic: Machine Learning from Disaster”.

Сделайте свой первый ноутбук. Даже если просто повторять чужое решение, это уже вам поможет.

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

Добавьте результат в портфолио. Это очень поможет потом на собеседованиях.

Главный совет, который мы бы дали тем, кто только начинает знакомство с платформой:
Не пытайтесь сразу попасть в топ. Ваша цель – понять, как устроен процесс: от загрузки данных до оценки метрик.


Ну и помните, что каждый ноутбук делает вас сильнее в аналитике, коде и понимании ML в целом.
20🔥3👍2
Возвращаемся с нашей регулярной рубрикой Code Detective

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

Вот фрагмент кода:
import pandas as pd

data = pd.DataFrame({'value': [10, 15, 20, 25, 30]})
filtered = data[data['value'] > 20]

for i in range(len(filtered)):
print(f"Элемент {i}: {filtered['value'][i]}")


Тут всё хорошо. Или нет? Есть какая-то ошибка? Если есть, напишите в комментариях:
1. Какую ошибку нашли;
2. Варианты её исправления.

Ответ мы опубликуем через пару дней, а посты этой рубрики можно посмотреть по хэштегу: #CodeDetective_MLinside
🔥5👍3
MLinside - школа ML
Возвращаемся с нашей регулярной рубрикой Code Detective Если хотите прокачать навык чтения и анализа чужого кода, а это крайне полезный навык в работе ML-инженера, рубрика вам пригодится. Вот фрагмент кода: import pandas as pd data = pd.DataFrame({'value':…
Как и обещали, вот ответ на пост. Да, в коде есть ошибка.

Объяснение:
После фильтрации у элементов датафрейма остаются те же индексы, в этом примере это 3 и 4, а в цикле i принимает значения 0 и 1


Исправление:
for idx, row in filtered.iterrows():
print(f"Элемент {idx}: {row['value']}")
Или
for i in range(len(filtered)):
print(f"Элемент {i}: {filtered['value'].values[i]}")


#CodeDetective_MLinside
7👍4
Как нейросети изменили работу ML и DS

Думаем, если бы можно было выбрать «тему года» в 2025 году, ей бы точно стала тема ИИ. Нейросети уже прочно закрепились в работе, да и в повседневной жизни. Поэтому, мы подумали, что было бы здорово рассказать о том, где LLM уже дают прирост скорости и качества в работе ML инженеров.

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

Можно написать запрос «нужны продажи по регионам за прошлый квартал с разбивкой по продуктам» и получить готовый SQL и краткую сводку. Это удобно, когда не хочется прыгать между BI и фичестором. Но фокус всё равно остается на вас: нужно проверить семантику, посмотреть джойны и фильтры, чтобы не уехать в неверные цифры.

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

Если вы хотите проверить гипотезу без недельной подготовки, помощник соберет скелет юнитов на предобработку и метрики, накидает чеклист для offline-оценки и сценарий для интерактивного прогона. Вы выбираете метрики и пороги, следите за стабильностью, ловите утечки и признаки переобучения.

Ну и не забывайте, что всё равно есть области, в которых магии от LLM ждать не стоит.
5👻3
Учимся на практике: решаем реальные ML-задачки

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

Третья задача: Сегментация клиентов магазина

Что нужно сделать:
Разделить клиентов на группы по их поведению без заранее заданных меток

Как можно сделать:
▪️ Использовать признаки: общий чек, частота покупок, возраст, доход
▪️ Нормализовать данные
▪️ Применить K-Means или DBSCAN
▪️ Визуализировать кластеры через PCA

Данные можно взять на Kaggle: https://www.kaggle.com/datasets/vjchoudhary7/customer-segmentation-tutorial-in-python

Готовы попробовать? Делитесь своими результатами в комментариях.

Все посты этой рубрики можно посмотреть по тэгу: #петпроект_MLinside
🔥173