Библиотека собеса по Data Science | вопросы с собеседований
4.31K subscribers
439 photos
10 videos
1 file
442 links
Вопросы с собеседований по Data Science и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7dfb7235

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
35% на самый хардкорный курс по вышмату!

🌟 «Математика для Data Science» 🌟

19 490 рублей 29 990 рублей до 1 апреля

Полугодовая программа от преподавателей МГУ, которая включает в себя все необходимые знания по математике для работы в Data Science.

Вас ждет развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

У вас не будет шансов не усвоить какие-то темы курса👌

🔥 Переходите и активируйте вводные занятия курсаhttps://proglib.io/w/4b21349b
В каких случаях вы будете применять ROC-кривую для оценки модели?

ROC-кривая (receiver operating characteristics curve) базируется на следующих метриках:
TPR (true positive rate) — доля положительных объектов, правильно предсказанных положительными;
▪️FPR (false positive rate) — доля отрицательных объектов, неправильно предсказанных положительными.

Именно в осях TPR/FPR и строится кривая. Эти метрики зависят от порога. Порогом мы называем значение, при котором по выходу модели решаем, к какому классу отнести объект. Так, выбор порога позволяет нам регулировать ошибки на объектах обоих классов. Его изменение позволяет увидеть, как меняются значения TPR и FPR, что и отражается на ROC-кривой.

Известно, что чем лучше модель разделяет два класса, тем больше площадь (area under curve) под ROC-кривой. Мы можем использовать эту площадь в качестве метрики и называть её AUC.

В каких случаях лучше отдать предпочтение этой метрике? Допустим, у нас есть клиент — сотовый оператор, который хочет знать, будет ли клиент пользоваться его услугами через месяц. При этом компании интересно упорядочить клиентов по вероятности прекращения обслуживания. Именно в таких задачах, где нам важна не метка сама по себе, а правильный порядок на объектах, имеет смысл применять AUC. Кроме того, метрика полезна в условиях несбалансированных классов или когда стоимость разных типов ошибок различна.

#машинноe_обучение
8
⚡️Proglib запускает каналы про нейросети

По каждому направлению отдельно! А именно:

Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей

И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.

Подписывайтесь!
👍2
Что такое сериализация и десериализация? Как используется в машинном обучении?

В контексте хранения данных, сериализация — это процесс перевода структур данных в формат для их хранения и передачи. Десериализация — обратный процесс, восстановление данных из этого формата в исходный вид. 

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

Для этой задачи подойдёт, например, модуль pickle в Python. Вот как можно его использовать:
# сериализуем 
with open('model.pickle', 'wb') as wf:
pickle.dump(model, wf)
# десериализуем модель
with open('model.pickle', 'rb') as rf:
model_out = pickle.load(rf)


#машинное_обучение
👍93
Объясните смысл бэггинга?

Бэггинг (bagging) можно расшифровать как bootstrap aggregating. Он предполагает три основных шага:
✔️Bootstrapping
На этом этапе мы создаём подвыборки из данных. Таким образом мы получаем несколько датасетов, на которых далее будем обучать разные копии модели.
✔️Parallel training
На этом этапе копии модели (их называют базовыми моделями) обучаются параллельно и независимо друг от друга.
✔️Aggregation
В конце концов мы берём обученные базовые модели и на их основе рассчитываем, в зависимости от типа задачи, среднее значение или класс, предсказанный большинством.

Бэггинг помогает уменьшить переобучение в моделях. Основная его цель — снизить вариативность (или дисперсию) предсказаний. Метод используется, например, на деревьях решений — в данном случае его называют случайный лес (Random Forest).

#машинное_обучение
👍13
Расскажите про систематическую ошибку отбора (Selection bias)

В общем, систематическая ошибка отбора говорит о том, что выводы, сделанные применительно к какой-либо группе, могут оказаться неточными из-за неправильного отбора в эту группу. В контексте машинного обучения о selection bias можно говорить, когда данные, используемые для обучения модели, не являются репрезентативными по отношению к целевой популяции, для которой предназначена модель. Это может привести к тому, что модель будет хорошо работать на тренировочных данных, но показывать плохие результаты на новых данных.

Систематическая ошибка отбора может возникать по разным причинам:
▫️Если тренировочный датасет собирается из источников, которые не охватывают всё многообразие генеральной совокупности, то данные могут быть смещены в сторону определённых значений или классов.
▫️Если в обучающем наборе отсутствуют данные по определённым категориям, то модель может совершать ошибки.

#статистика
2
Что вы можете сказать про вычислительную устойчивость сигмоиды? Могут ли возникать какие-нибудь проблемы?

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

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

Если же мы имеем дело с очень большими значениями x, то у нас и вовсе может возникнуть переполнение памяти (overflow). Так, в Python мы можем получить предупреждение о переполнении (RuntimeWarning: overflow encountered in exp). Это указывает на то, что результат вычисления экспоненциальной функции слишком велик для представления в типе данных с плавающей запятой.

#машинное_обучение
🔥5
👾 Карточки по мотивам наших вопросов с собеседований DS

Наш подписчик сделал колоду карточек ANKI из пар вопрос-ответ, опубликованных в канале Библиотека собеса по Data Science. Всего в наборе 203 карточки.

Чтобы смотреть их в удобной форме, нужно:
▪️Завести аккаунт на AnkiWeb;
▪️Скачать десктопное приложение ANKI;
▪️Скачать карточки;
▪️Открыть их в приложении.

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

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

Вот некоторые из наиболее распространённых нелинейных преобразований:
▪️Логарифмическое преобразование.
Оно позволяет увеличить расстояние между небольшими значениями и уменьшить между большими значениями. Преобразование делает скошенное распределение более симметричным и приближённым к нормальному.
▪️Преобразование с помощью квадратного корня.
Действует аналогично логарифмическому, однако менее агрессивно. Его без изменений можно применять к нулевым значениям.
▪️Преобразование Бокса-Кокса.
Обычно используется для трансформации зависимой переменной в случае, если у нас есть ненормальное распределение ошибок и/или нелинейность взаимосвязи, а также в случае гетероскедастичности.
▪️Преобразование Йео-Джонсона.
Позволяет работать с нулевыми и отрицательными значениями.

#машинное_обучение
#статистика
9
🤖✍️ Как работают языковые модели (LLM): простое объяснение через аналогию с кулинарией

Языковые модели (LLM) — это сложные системы искусственного интеллекта, способные генерировать человекоподобные тексты. Но как именно они это делают? В этой статье мы объясним принципы работы LLM, используя простую и понятную аналогию с приготовлением еды.

🔗 Читать статью
🔗 Зеркало
6👍1
В чём заключается разница между обычным k-средних (k-means) и k-средних++ (k-means++)?

Разница заключается в том, как инициализируются центроиды. Центроид — это, по сути, репрезентативная точка в каждом кластере. В обычном алгоритме k-means такие точки назначаются случайным образом. Это не самый оптимальный способ, ведь центроиды могут оказаться слишком рядом друг к другу и разделение по кластерам будет неверным.

Для улучшения алгоритма была придумана схема k-means++. По ней, сначала случайным образом выбирается первый центроид в данных. Следующие центроиды назначаются, исходя из сравнения с первым. Вероятность того, что некоторая точка будет выбрана как следующий центроид, пропорциональна квадратному расстоянию между этой точкой и ближайшим центроидом, который уже был выбран. Такой подход гарантирует более равномерное распределение репрезентативных точек по пространству данных.

#машинное_обучение
13👍3
🤖👾 Как злоумышленники взламывают LLM: 7 ключевых стратегий

Чат-боты на основе ИИ все чаще становятся мишенью для хакеров. Какие уязвимости позволяют злоумышленникам взламывать ИИ-системы и как защитить свои приложения от атак? Рассказываем о 7 ключевых стратегиях.

👉 Читать статью
👉 Зеркало
💯2
Расскажите про известные вам меры сходства, используемые в машинном обучении

Наиболее распространёнными мерами сходства являются:

▪️Косинусное сходство
Определяет сходство между двумя векторами по косинусу угла между ними. Значения меры находятся в диапазоне [-1, 1], где 1 означает, что два вектора очень похожи, а -1 — что два вектора полностью отличаются друг от друга.

▪️Евклидово расстояние
Представляет расстояние между двумя точками в n-мерной плоскости. По сути, это длина соединяющей их прямой линии. Можно рассчитать по формуле Пифагора.

▪️Манхэттенское расстояние
Похоже на Евклидова. Согласно этой метрике, расстояние между двумя точками равно сумме модулей разностей их координат.

▪️Индекс подобия Жаккара
Показатель сходства между двумя наборами данных. Если два набора данных имеют одни и те же элементы, их индекс сходства Жаккара будет равен 1. И если у них нет общих элементов, то сходство будет равно 0.

#машинное_обучение
5👍1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
Какая из этих метрик — MAE or MSE или RMSE — более устойчива к выбросам?

▪️MAE (mean absolute error) можно перевести как средняя абсолютная ошибка. Измеряет среднюю абсолютную разницу между фактическими и прогнозируемыми значениями.
▪️MSE (mean square error) можно перевести как среднеквадратичная ошибка. Вычисляет среднее значение квадратов разностей между фактическими и прогнозируемыми значениями.
▪️RMSE (root mean square error) — это корень из среднеквадратичной ошибки.

Среди этих трёх метрик MAE наиболее устойчива к выбросам по сравнению с MSE или RMSE. Основная причина этого — возведение в квадрат значений ошибок. В случае выброса значение ошибки само по себе высокое, и его возведение в квадрат приводит к многократному увеличению значений ошибки, что может «ввести в заблуждение» алгоритм оптимизации.

#машинное_обучение
🔥15💯3
Расскажите, что вы знаете про генеративно-состязательные сети (GAN)?

Так называют большой класс генеративных моделей, главная особенность которых — обучение одновременно с другой сетью, которая старается отличить сгенерированные объекты от настоящих.

👮‍♂️ Для объяснения принципа работы GAN нередко приводят аналогию с фальшивомонетчиком и полицейским. Так, задача фальшивомонетчика — научиться создавать купюры, которые полицейский не сможет отличить от реальных. Задача полицейского тем временем — научиться отличать купюры фальшивомонетчика от настоящих.

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

#глубокое_обучение
5👏2
🤖🛠️ 4 полезных инструмента для работы с ИИ: RAGFlow, The Pipe, UFO и SWE-agent

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

🔗 Читать статью
🔗 Зеркало