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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое метрика BLEU?

Метрика BLEU (Bilingual Evaluation Understudy) — это один из методов оценки качества машинного перевода. Основная идея BLEU заключается в сравнении переведённого моделью текста с эталонными переводами, выполненными человеком.

Оценки вычисляются для отдельных переведённых сегментов текста, чаще всего предложений. Затем эти оценки усредняются по всему тексту, чтобы получить оценку общего качества перевода.

Алгоритм, если коротко, такой: для каждой длины n-граммы (от 1 до 4) подсчитывается точность. Точность — это отношение количества совпавших с эталонными n-грамм в машинном переводе к общему количеству n-грамм в этом переводе. Затем эти точности комбинируются. Есть также штраф за краткость. Более подробно можно прочесть здесь.

#middle
-35% на самый хардкорный курс по вышмату

🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!

🌟«Математика для Data Science» — 19 490 ₽ (вместо 29 990 ₽)

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

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

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

🔥 Переходите и активируйте вводные занятия курсаhttps://proglib.io/w/4468ec03
Какие проблемы есть у рекуррентных нейронных сетей (RNN)?

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

▪️Взрывающийся градиент.
Это ситуация, при которой градиент экспоненциально растёт вплоть до полной потери стабильности RNN. Если градиент становится бесконечно большим, нейросеть проявляет проблемы с производительностью.
▪️Исчезающий градиент.
Это ситуация, обратная предыдущей. В этом состоянии градиент приближается к нулю, что приводит к потере RNN способности эффективно обучаться по предложенным данным. Для рекуррентных нейронных сетей характерен высокий риск исчезающего или взрывающегося градиента при обработке длинных последовательностей данных.
▪️Медленное обучение.
В целом, для RNN требуются огромные вычислительные мощности, большой объём памяти и много времени, если речь идёт о значительном количестве текстов.

#junior
#middle
В чём разница между косинусным сходством и косинусным расстоянием?

▫️Косинусное сходство (или близость)
Измеряет косинус угла между двумя векторами в пространстве. Это мера того, насколько вектора «похожи» друг на друга. Значение косинусного сходства варьируется от -1 до 1, где -1 означает, что вектора абсолютно непохожи, 0 — что нет корреляции, 1 — что похожи.
▫️Косинусное расстояние
Измеряет степень различия между двумя векторами. Рассчитывается по формуле едицина минус косинусное сходство. Значение варьируется от 0 до 2. 0 означает полное сходство, а 2 — полную противоположность.

#middle
Как предотвратить застревание градиентного спуска в локальных минимумах?

✔️Использование техник инициализации (например, Xavier / Glorot). Помогает установить подходящие начальные веса для процесса оптимизации.
✔️Использование оптимизаторов типа Adam или RMSProp, которые адаптируют скорость обучения для отдельных параметров.
✔️Введение случайности в процесс оптимизации, благодаря применению мини-батчей. Это помогает алгоритму выйти из локальных минимумов, добавляя шум к оценкам градиента.
✔️Добавление большего количества слоёв или нейронов.
✔️Подбор гиперпараметров с использованием методов случайного поиска и grid search.

#junior
#middle
В чём заключается разница между генеративными и дискриминативными моделями?

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


❤️ Генеративные модели

Их цель — моделировать совместное распределение вероятностей P(X, Y) входных данных X и целевой переменной Y. Они часто используется для задач, связанных с генерацией изображений и текста. Примеры: вариационные автоэнкодеры (VAE), генеративно-состязательные сети (GAN).

❤️ Дискриминативные модели

Их цель — моделировать условное распределение вероятностей P(Y | X) целевой переменной Y при заданном входе X. Используются для классификации или прогнозирования на основе входных данных. Примеры: логистическая регрессия, свёрточные нейронные сети (CNN) для классификации изображений.


#junior
#middle
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
Что вы знаете про использование марковских цепей в анализе последовательностей?

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

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

✔️Скрытые Марковские модели используются, например, для моделирования фонем и слов в системах распознавания речи. Также Марковские модели применимы в моделировании временных рядов финансовых данных, таких как цены на акции.

#middle
Что за алгоритм DBSCAN и как его использовать?

Density-Based Spatial Clustering of Applications with Noise (DBSCAN) — это алгоритм кластеризации данных. В его основе лежит понятие плотности; кластеры определяются как области высокой плотности, разделённые областями низкой плотности.

✔️Для использования DBSCAN нужно определить два ключевых параметра: eps (радиус поиска соседей для каждой точки) и min_samples (минимальное количество точек, необходимое для формирования плотного региона). Алгоритм находит некоторую центральную точку кластера. Таковой она считается, если содержит более min_samples в радиусе eps. После того как центральная точка кластера определена, алгоритм включает в список обхода все доступные для неё точки в пределах eps. Процесс повторяется. По сути, алгоритм пытается расширить кластер. Если точка не достигает порога min_samples, она помечается как шум.

DBSCAN эффективен для данных с кластерами неправильной формы и хорошо справляется с выбросами.

#junior
#middle
В чём разница между ошибкой первого рода и ошибкой второго рода?

Это два основных типа ошибок в статистических тестах, и они связаны с процессом проверки гипотез.

▪️Ошибка первого рода (α или ошибка типа I). Эта ошибка происходит, когда нулевая гипотеза отвергается, хотя на самом деле она верна. Например, когда медицинский тест ошибочно показывает наличие заболевания у здорового человека. Уровень значимости (α) — это вероятность совершения ошибки первого рода.

▪️Ошибка второго рода (β или ошибка типа II). Эта ошибка возникает, когда нулевая гипотеза принимается, хотя на самом деле она неверна. Например, когда медицинский тест не обнаруживает заболевание, которое на самом деле присутствует у пациента. Статистическая мощность (1-β) — это вероятность правильно отвергнуть неверную нулевую гипотезу.

Так, ошибка первого рода представляет собой ложноположительный результат, а ошибка второго рода — ложноотрицательный результат.


#статистика
Объясните разницу между AdaBoost и XGBoost

Оба метода объединяют слабые модели в одну сильную модель. И AdaBoost, и XGBoost в процессе обучения будут увеличивать ансамбль, добавляя в него новые слабые модели на каждой итерации. Разница между методами заключается в том, как расширяется ансамбль.


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

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

#машинное_обучение
Как на коэффициенты логистической регрессии повлияет тот факт, что два предиктора сильно коррелируют?

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

▫️Нестабильность коэффициентов регрессии. Это означает, что небольшие изменения в данных могут привести к значительным изменениям в оценках.
▫️Коэффициенты становятся менее надёжными для интерпретации и предсказания.

Например, если обучить модель, используя сильно коррелированные признаки, не все знаки коэффициентов будут соответствовать бизнес-логике. Так, уменьшение значения признака «остаток долга / сумма выдачи» должно приводить к уменьшению вероятности дефолта. Но из-за мультиколлинеарности коэффициент сменил знак на противоположный, и признак стал говорить об обратном: чем меньше остаётся платить, тем больше вероятность дефолта.

#машинное_обучение
Как сделать модель более устойчивой к выбросам?

Здесь можно подойти с двух сторон: преобразовать данные или особым образом построить модель.

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

Ещё один способ уменьшения влияния выбросов — использование средней абсолютной ошибки вместо среднеквадратичной ошибки. Что касается моделей, то устойчивыми к выбросам можно считать деревья решений.

#машинное_обучение
#статистика
Что такое ковариация и как она связана с корреляцией?

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

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

#статистика
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Что вы знаете про наивный байесовский классификатор?

Наивный байесовский классификатор использует теорему Байеса для вычисления вероятности того, что какой-то элемент принадлежит определённому классу, исходя из вероятностей его признаков. Алгоритм называют «наивным», потому что он строится на предположении, что все признаки объектов каждого класса — независимые случайные величины.

Преимущества наивного байесовского классификатора включают простоту реализации и высокую скорость обучения.

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

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Что бы вы предпочли использовать при классификации текста с помощью метода «мешок слов»: модель градиентного бустинга на деревьях или логистическую регрессию?

Стоит учитывать, что при применении «мешка слов» представление данных может быть довольно разреженным и высокоразмерным: создаётся множество столбцов. В этой ситуации логистическая регрессия может быть лучшим выбором, особенно если нужна модель, которая быстро обучается и легко интерпретируется. Как минимум, её можно использовать в качестве базовой модели (baseline) — это будет неплохой отправной точкой.

#машинное_обучение
#NLP
🐍Решение задачи на Python «сумма двух» (Two sum)

Вам даны массив и число N. Нужно вернуть True, если в массиве есть такие два числа A и B, что их сумма A + B даёт N. В противном случае нужно вернуть False.
Примеры:
[1, 2, 3, 4], 5 ⇒ True
[3, 4, 6], 6 ⇒
False


✔️Можно, конечно, применить брутфорс, но есть решение получше. Его сложность составит O(n). Вот как оно выглядит:


def two_sum(numbers, target):
index = {num: i for (i, num) in enumerate(numbers)}

n = len(numbers)

for i in range(n):
a = numbers[i]
b = target - a

if b in index:
j = index[b]
if i != j:
return True

return False


Здесь сначала создаётся словарь index, который хранит числа из массива в качестве ключей и их индексы в массиве в качестве значений. Затем идёт перебор элементов массива. Для каждого элемента a вычисляется число b, которое необходимо для достижения суммы target. Далее проверяется, содержится ли b в словаре index. Если да, то дополнительно проверяется, не совпадает ли индекс текущего элемента a с индексом элемента b. Если индексы различны, это означает, что была найдена пара чисел, сумма которых равна target.

#алгоритмы
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие существуют методы улучшения простого градиентного бустинга?

✔️Усечение деревьев.
Можно обрезать деревья до определённой глубины или ограничить количество листьев, чтобы контролировать сложность модели и уменьшить переобучение.
✔️Использование регуляризации.
Добавление регуляризации (например, L1 или L2) также помогает снизить риск переобучения.
✔️Введение темпа обучения (learning rate).
Присутствие этого параметра означает, что каждый базовый алгоритм вносит относительно небольшой вклад во всю композицию. Это тоже помогает бороться с переобучением.
✔️Применение стохастического градиентного бустинга.
Это, по сути, внесение рандомизации в процесс обучения базовых алгоритмов. Они обучаются не по всей выборке, а лишь по её случайному подмножеству.

#машинное_обучение
Что такое дистилляция модели (Knowledge Distillation)?

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

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

Подробнее можно прочитать здесь

#NLP
#глубокое_обучение