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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое закон больших чисел и как его используют в Data Science?

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

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

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

#junior
#middle
👍142
Зачем метрику качества регрессии возводить в квадрат?

Речь идёт о среднеквадратичной ошибке (Mean Squared Error, MSE). От средней абсолютной ошибки (Mean Absolute Error, MAE) она отличается тем, что в ней разница между предсказанным и истинным значением возводится в квадрат. Но зачем это нужно?

▪️MSE сильнее штрафует за большие ошибки. У этого есть как плюсы, так и минусы. Если мы действительно очень не хотим получать большие ошибки, то квадратичный штраф за них очень полезен. Но если в тестовых данных есть выбросы, то использовать MSE становится менее удобно.

#junior
#middle
👍6🥱2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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

Градиент — это вектор частных производных функции потерь по весам нейронной сети. В процессе обратного распространения ошибки в градиенте могут накапливаться большие значения. В итоге такие элементы градиента могут переполнить тип данных, в котором они хранятся. Это и называется взрывающимися градиентами (exploding gradients).

Вот признаки:
▪️Высокое значение функции потерь. Отражает неспособность модели обучиться на данных.
▪️Скачки значения функции потерь. Показывают, что модель нестабильна.
▪️Функция потерь во время обучения может принимать значение NaN.

Также на проблему взрывающихся градиентов могут указывать:
▫️Быстрый рост весов модели.
▫️Значения NaN у весов модели во время обучения.

#junior
#middle
🎉4
Знаете ли вы про PR-кривую? Где она применяется?

PR-кривая расшифровывается как Precision-Recall кривая. Может напомнить ROC-AUC, и в некоторых случаях заменяет именно её.

Дело в том, что если положительный класс существенно меньше по размеру, то ROC-AUC не позволит адекватно оценить качество алгоритма, так как измеряет долю неверно принятых объектов относительно общего числа отрицательных.

Чтобы избежать этого, можно воспользоваться PR-кривой, которая строится в осях Precision и Recall.

#junior
#middle
3🥰2👍1
Как проводится кросс-валидация?

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

При кросс-валидации мы:
▪️ делим выборку на k частей, или фолдов (обычно 3, 5, 10);
▪️ производим k итераций, при которых обучаем модель на k−1 частях выборки и тестируем её на оставшейся части.

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

#junior
#middle
👍11😱1
Как выбрать k для кросс-валидации?

Выбор k для кросс-валидации зависит от размера и природы ваших данных. Есть несколько рекомендаций:
▪️Для больших наборов данных часто используют меньшие значения k, чтобы сбалансировать точность оценки и вычислительные затраты.
▪️В целом, если ресурсы ограничены, стоит выбрать меньшее k.
▪️Максимальное значение k может быть равным размеру выборки, n. Тогда мы получаем метод leave-one-out (LOO), при котором каждый фолд состоит ровно из одного образца. Хорош для случаев, когда у нас очень мало данных и мы хотим использовать максимальное их количество для обучения модели.
▪️Также можно использовать stratified k-Fold. В этом случае каждый фолд имеет примерно такое же соотношение классов, как и всё исходное множество. Это может пригодиться, если данные несбалансированные.

#junior
#middle
👍5
⚡️Свершилось: канал с книгами только по Data Science

Мы создали для вас канал, куда будем публиковать самые полезные книги только для специалистов по Data Science. Подписывайтесь!

👉Книги для дата сайентистов | Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
📊Статистический тест в общем случае

1️⃣Собираем выборку.
2️⃣Формулируем гипотезы. Должны быть нулевая гипотеза («ничего не изменилось», «связи нет») и альтернативная («что-то изменилось», «связь есть»).
3️⃣Объединяем величины из выборки в одну случайную величину, называемую статистикой.
4️⃣Нужно найти распределение этой случайной величины при условии, что выполнена нулевая гипотеза.
5️⃣Выбираем уровень значимости, то есть число, отвечающее за вероятность ошибки первого рода (вероятность отвергнуть нулевую гипотезу, в случае, когда она верна).
6️⃣Случайная величина принимает значения в множестве действительных чисел. Нужно выделить подмножество, по которому мы будем решать, принимать или отвергать нулевую гипотезу. Вероятность попадания в подмножество должна быть равна уровню значимости.
7️⃣Если реализация нашей случайной величины не попала в критическое подмножество, то мы принимаем нулевую гипотезу. Если попала — отвергаем нулевую гипотезу и принимаем альтернативную.
7👍5🥱2
Вы решаете задачу кластеризации. Какие метрики могут быть использованы и как выбрать между ними?

Можно назвать две разных метрики для алгоритмов кластеризации — Силуэт (англ. Silhouette) и Индекс Данна (англ. Dunn Index).

▫️Силуэт показывает, насколько объект похож на объекты своего кластера по сравнению с другими кластерами. Значение метрики лежит в диапазоне от -1 до +1. Чем ближе Силуэт к единице, тем более кластеры кучные и хорошо отделены друг от друга.
▫️Индекс Данна равен минимальному расстоянию между кластерами, делённому на максимальный размер кластера. Большие расстояния между кластерами и меньшие размеры кластеров приводят к более высокому значению индекса.

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

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

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

👉Подписаться👈
У вас есть датасет с большим количеством признаков (фичей). Какие методы отбора признаков вы знаете?

Можно назвать несколько методов (это неполный список):
✔️Жадные алгоритмы.
- Эти алгоритмы работают последовательно, на каждом шаге выбирая признак, который предлагает наибольшее улучшение производительности модели.
- Есть «жадное добавление», когда новые признаки добавляются один за другим, и «жадное удаление», когда признаки удаляются до тех пор, пока это не навредит производительности.
✔️Случайный поиск с адаптацией.
Вместо просмотра всех возможных комбинаций, этот метод генерирует случайные подмножества признаков и оценивает их. Со временем метод адаптируется, предпочитая подмножества, которые демонстрируют лучшую производительность.

🔗 Также можно изучить целый сайт, посвящённый отбору признаков

#junior
#middle
👍4
Что вы знаете про юнит-тесты для моделей машинного обучения?

Юнит-тесты в ML никак не касаются проверок производительности модели. Они должны проверять качество кода. Например:
🔹Принимает ли модель на вход корректные данные или их представление?
🔹Корректен ли выход модели по форме?
🔹Действительно ли обновляются веса модели при обучении?

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

Как имплементировать тесты в модели глубокого обучения? Вот примеры:
✔️Построить модель и сравнить размерность входных слоёв с размерностью в источнике данных. Затем сравнить размерность выходного слоя с ожидаемой.
✔️Инициализировать модель и записать веса каждого слоя. Затем обучить в течение одной эпохи на наборе фиктивных данных и сравнить новые веса со старыми. Нужно просто убедиться, что значения изменились.
✔️Обучите модель в течение одной эпохи на наборе фиктивных данных и проведите валидацию на таких же фиктивных данных. Необходимо убедиться, что предсказания получаются в ожидаемом формате.

#middle
👍5
Как провести валидацию временного ряда?

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

✔️Можно рассказать про кросс-валидацию на временных рядах. В этой процедуре мы используем тестовые множества, состоящие из одного-единственного наблюдения. Соответствующие им тренировочные множества состоят только из наблюдений, возникающих перед тестовым наблюдением. Никакие наблюдения «из будущего» тут применяться не могут. На диаграмме сверху синие точки — это наблюдения из тренировочного множества, а красные — из тестового.

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

#middle
👍8💯1
Знаете ли вы про функцию Softmax? Как она используется в машинном обучении?

Функция Softmax преобразует вектор вещественных чисел (часто называемых логитами) в вектор вероятностей. Каждое число в выходном векторе представляет вероятность принадлежности объекта к соответствующему классу. Сумма всех получившихся вероятностей в выходном векторе равна единице.

В формуле Softmax параметр n — это количество классов.

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

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

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

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
1👍1
Что вы знаете про обучение ассоциативным правилам? Что такое поддержка, достоверность и лифт?

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

Поддержка, достоверность и лифт — это основные меры для определения
ассоциаций.
🔸Поддержка — показывает, как часто появляется конкретный товарный набор.
🔸Достоверность — показывает, как часто товар Y появляется вместе с товаром X.
🔸Лифт — показывает, как часто товары X и Y появляются вместе, одновременно учитывая, с какой частотой появляется каждый из них.

#junior
#middle
👍3🤔1
Что такое Transfer Learning?

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

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

#junior
#middle
👍10
Опишите архитектуру обычной свёрточной нейронной сети.

В типичной архитектуре свёрточной нейронной сети (CNN) есть несколько слоёв свёртки. За каждым из них следует слой с функцией активации (например, ReLU), затем идёт слой пулинга.

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

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

#junior
#middle
9👍4🌚1
Что вы знаете про параметрические и непараметрические модели в машинном обучении?

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

#junior
#middle
👍11