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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое отношение шансов (odds ratio) в контексте логистической регрессии?

Отношением шансов называют отношение рассматриваемых исходов к нерассматриваемым. Рассмотрим это на примере:

▶️ Допустим, проводится изучение связи между курением и развитием рака лёгких. Есть две группы: курящие (100 человек, из которых 30 заболели раком лёгких) и некурящие (100 человек, из которых 10 заболели раком лёгких). Так, шансы заболеть раком лёгких для курящих составляют 30/70. Шансы заболеть раком лёгких для некурящих — 10/90. Чтобы получить odds ratio (OR), разделим шансы для курящих на шансы для некурящих. Получим приблизительно 3.86. Это можно интерпретировать так: шансы заболеть раком лёгких у курящих людей почти в 4 раза выше, чем у некурящих.

👉 Отношение шансов может использоваться для моделирования увеличения вероятности события по мере изменения зависимых переменных. Если odds ratio равно единице, это означает, что изменение признака не влияет на вероятность наступления события. Если OR > 1, то увеличение признака ассоциируется с увеличением вероятности события. Если OR < 1, увеличение признака связано с уменьшением вероятности события.

#машинное_обучение
#теория_вероятностей
Каковы различия между моделью, минимизирующей среднеквадратичную ошибку (MSE), и моделью, минимизирующей среднюю абсолютную ошибку (MAE)?

Можно перечислить несколько различий:

▫️MSE более чувствительна к выбросам по сравнению с MAE. Дело в том, что среднеквадратичная функция возводит ошибки в квадрат. Из-за этого большие ошибки оказывают на результат большее влияние.
▫️С MSE градиент вычисляется легче. Это может ускорить сходимость алгоритма.

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

#машинное_обучение
Что такое прямой и обратный проходы (forward и backward propagation) в нейросетях?

В сущности, нейронная сеть представляет собой граф. А по графу информация может течь в двух направлениях.

🔹Прямым проходом (forward propagation) называют применение нейросети к данным, то есть вычисление выхода по заданному входу. Это прямое движение по графу.
🔹Обратным проходом (backward propagation) называют движение информации от финального представления к исходному через все преобразования. Так, механизм обратного распространения ошибки, применяемый при обучении, предполагает обратное движение по вычислительному графу сети для коррекции весов.

Прямой проход даёт понимание о текущем качестве работы сети, а обратный проход позволяет улучшить это качество, корректируя веса на основе полученных ошибок.

#глубокое_обучение
🧮📐 15 гениев, которые изменили мир математики навсегда

В нашей новой статье читайте о том, как 15 величайших математических умов в истории, от древнегреческого гения Фалеса до современного революционера Мандельброта, своими открытиями в алгебре, геометрии, теории чисел и других областях навсегда изменили облик математики и мира.

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

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

👉Подписаться👈
В чём разница между частотной вероятностью и байесовской вероятностью?

Это два разных подхода к интерпретации вероятности, которые часто противопоставляются.

🔹Частотная вероятность
Основывается на идее долгосрочной стабильности частот событий. В этой интерпретации вероятность события определяется как предел относительной частоты его наблюдения в серии однородных независимых испытаний. То есть этот подход предполагает, что вероятность может быть объективно измерена путём повторения эксперимента в одинаковых условиях множество раз.
Пример: вы бросаете справедливый шестигранный кубик большое количество раз и подсчитываете, сколько раз выпадает шестёрка. Если вы бросите кубик 600 раз и обнаружите, что шестёрка выпала 100 раз, то по частотному подходу вероятность выпадения шестёрки на этом кубике будет 100/600 или 1/6.

🔹Байесовская вероятность
Байесовский подход рассматривает вероятность как меру уверенности или степени веры в наступление события. Для определения степени уверенности при получении новой информации в байесовской теории используется теорема Байеса.
Пример: допустим, что у вас есть редкая болезнь, которая встречается у 1 из 10000 человек. Тест на эту болезнь имеет чувствительность 99% (вероятность того, что тест окажется положительным у больного человека) и специфичность 99% (вероятность того, что тест окажется отрицательным у здорового человека). Если ваш тест на болезнь оказался положительным, байесовская вероятность того, что вы действительно больны, будет рассчитываться с учётом этих данных и априорной вероятности заболевания (1/10000), что даст вам другое и, возможно, менее интуитивное значение вероятности, чем простая интерпретация результата теста.

#теория_вероятностей
Что такое отчёт о классификации (classification report)? Как его интерпретировать?

По сути, отчёт о классификации — это сводка о производительности модели-классификатора, представляющая различные метрики. Вот эти метрики:

🔹Точность (Precision) — отношение истинно положительных предсказаний к общему числу предсказанных положительных.
Precision = TP/(TP+FP)
🔹Полнота (Recall) — отношение истинно положительных предсказаний к общему числу фактических положительных.
Recall = TP / (TP + FN)
🔹F1-мера — гармоническое среднее точности и полноты.
F1-мера = 2 * (Точность * Полнота) / (Точность + Полнота)

где,
TP = Истинно положительный
TN = Истинно отрицательный
FP = Ложноположительный
FN = Ложноотрицательный

Отчёт о классификации можно создать, например, с помощью библиотеки scikit-learn, используя функцию classification_report. В такой отчёт также включён показатель support, который указывает на количество фактических вхождений класса в наборе данных.

#машинное_обучение
Какова связь между собственными значениями и собственными векторами в PCA (методе главных компонент)?

В PCA собственные значения и собственные векторы играют ключевую роль в преобразовании исходных данных в новую систему координат.

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

Связь между ними определяется как:

A*V = lambda*V, где
A = ковариационная матрица, полученная из исходной матрицы признаков
V = собственный вектор
lambda = собственное значение.

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

#машинное_обучение
#линейная_алгебра
🐍🗺️ Геокодирование для Data Scientists: вводное руководство с примерами

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

В новой статье разбираем три различных способа геокодирования с помощью Geopy.

🔗 Читать статью
🔗 Зеркало
Почему XGBoost в среднем показывает производительность лучше, чем Случайный лес (Random Forest)?

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

▫️XGBoost включает в себя механизмы регуляризации. Это помогает уменьшить переобучение и улучшить обобщающую способность модели.
▫️XGBoost строит деревья последовательно: каждое новое дерево исправляет ошибки, сделанные предыдущим.Random Forest же строит деревья параллельно с использованием метода усреднения. Последовательная коррекция ошибок в XGBoost часто приводит к лучшей производительности на многих задачах.
▫️У XGBoost более гибкие гиперпараметры, что улучшает его настройку под датасет.

#машинное_обучение
Хардкорный курс по математике для тех, кто правда любит математику!

Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/7889d59a

Что вас ждет:

– Вводный урок от CPO курса

– Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск

– Практические задания для закрепления материала и ссылки на дополнительные материалы.

⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/7889d59a
Please open Telegram to view this post
VIEW IN TELEGRAM
Расскажите про линейные модели: где используются и как обучаются?

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

🎓 Обучение линейных моделей можно проводить с помощью градиентного спуска. Для линейной и логистической регрессии процесс обучения имеет схожие шаги, но различается используемой функцией потерь.
▪️Линейная регрессия.
Её обучение заключается в нахождении оптимальных коэффициентов, или весов, перед признаками в уравнении прямой. Чтобы найти веса с помощью градиентного спуска, сначала нужно инициализировать вектор весов случайными числами. Затем нужно вычислить градиент функции потерь (обычно MSE — среднеквадратичное отклонение) и обновить веса, вычитая из них произведение градиента с learning rate. Шаги повторяют, например, до тех пор, как функция потерь не стабилизируется.
▪️Логистическая регрессия.
Главное отличие от линейной регрессии заключается в функции потерь — здесь используется log-loss (логарифмическая функция потерь). Процедура обновления весов остается схожей.

#машинное_обучение
🐍 Задача про умножение матриц

Условие: Вам даны две матрицы, нужно написать функцию для их умножения. Матрицы могут быть квадратными или прямоугольными.

Решение: Напишем решение на чистом Python
def matrix_multiply(A, B):
# Сначала проверим, можем ли мы вообще перемножить эти матрицы
if len(A[0]) != len(B):
raise ValueError("Number of A columns must equal number of B rows.")

# Инициализируем результирующую матрицу, заполненную нулями
result = [[0 for _ in range(len(B[0]))] for _ in range(len(A))]

# Перемножим матрицы
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
result[i][j] += A[i][k] * B[k][j]

return result

# Проверим функцию на примере
A = [[1, 2, 3],
[4, 5, 6]]

B = [[7, 8],
[9, 10],
[11, 12]]

result = matrix_multiply(A, B)
for row in result:
print(row)


#программирование
#линейная_алгебра
Перечислите этапы разработки ML-приложения

1️⃣ Постановка задачи
На этом этапе также стоит определиться с метриками (бизнес-метриками и DS-метриками), чтобы в дальнейшем оценивать модель. Помимо этого, можно идентифицировать все свои ограничения.
2️⃣ Сбор и предобработка данных
Сюда же относится этап генерации новых признаков. Не исключено, что к этому этапу придётся неоднократно возвращаться.
3️⃣ Разведочный анализ данных
На этом этапе нужно тщательно изучить данные, сформулировать гипотезы.
4️⃣ Обучение модели
Сначала стоит строить бейзлайн — модель без параметров. После этого можно настраивать модели и тестировать их.
5️⃣ Развёртывание ML-модели
На этом этапе необходимо перевести код в промышленный вид. Возможно придётся добавить бэкенд, фронтенд и др. Тут же обычно проводится A/B-тестирование.
6️⃣ Поддержка модели
Стоит подключить dashboard для отслеживания метрик, механизмы для мониторинга работы ML-модели, чтобы вовремя отлавливать ошибки.

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

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.