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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Объясните разницу между SQL и NoSQL базами данных?

SQL (Structured Query Language) базы данных являются реляционными и используют табличную структуру с чётко определенными схемами. NoSQL (Not Only SQL) базы данных могут быть неструктурированными или полуструктурированными и поддерживают различные типы данных.

В SQL-базах данных используется транзакционная модель, которая позволяет сохранять целостность данных и обеспечивать ACID (Atomicity, Consistency, Isolation, Durability) свойства для отказоустойчивости и надёжности. NoSQL-базы данных редко используют транзакционные модели, обычно там применяется распределённая архитектура, чтобы повысить надёжность и отказоустойчивость.

Примеры SQL-баз: MySQL, PostgreSQL.
Примеры NoSQL-баз: MongoDB, Redis.

#SQL
⚡️Самые полезные каналы по Data Science в одной папке

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

Добавляйте 👉 тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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

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

Математически это выражается так: пусть σ — стандартное отклонение обоих распределений, а μ1 и μ2 — их средние значения. Распределение будет бимодальным, если:
|μ1 — μ2| ≥ 2σ

#теория_вероятностей
#статистика
Что такое доверительный интервал и как вы его интерпретируете?

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

Интерпретация доверительного интервала включает в себя его «уровень доверия», обычно выражаемый в процентах. Если мы говорим о 95% доверительном интервале для среднего значения, это означает, что если бы мы многократно отбирали выборки и для каждой рассчитывали бы интервал, то примерно в 95% случаев эти интервалы содержали бы истинное среднее значение всей генеральной совокупности.

#статистика
Как работает EM-алгоритм?

Алгоритм EM (англ. expectation-maximization) — это итеративный алгоритм поиска оценок максимума правдоподобия модели, когда она зависит от скрытых (ненаблюдаемых) переменных. Используется для решения задачи кластеризации.

Каждая итерация алгоритма состоит из двух шагов:
✔️Expectation-шаг — поиск наиболее вероятных значений скрытых переменных.
✔️Maximization-шаг — поиск наиболее вероятных значений параметров для полученных на шаге Expectation значений скрытых переменных.

Алгоритм выполняется до сходимости.

#машинное_обучение
Объясните концепцию метрики Силуэт для кластеризации

Силуэт (silhouette) — это мера того, насколько хорошо объекты сгруппированы в кластерах и как чётко эти кластеры отделены друг от друга. Метрика принимает значения в диапазоне от -1 до 1. Близкие к 1 значения указывают на хорошо отделённые кластеры с плотно сгруппированными объектами, а значения близкие к -1 указывают на плохую кластеризацию.

Силуэт для каждого объекта рассчитывается по формуле (b — a) / max(a, b), где:
- a — среднее расстояние от объекта до всех других объектов в том же кластере.
- b — среднее расстояние от объекта до всех объектов в ближайшем кластере.

#машинное_обучение
Что такое alignment в языковых моделях?

Alignment в контексте ИИ означает процесс настройки модели таким образом, чтобы её ответы соответствовали этике, законам и ценностям общества.

Обычно alignment происходит во время файн-тюнинга. Процесс включает в себя два этапа:
▪️Фаза обучения на инструкциях.
На этой фазе LLM дают примеры целевых задач.
▪️Фаза оценки.
На этой фазе человек или другая модель взаимодействуют с LLM и оценивают её ответы в режиме реального времени. На этом этапе может использоваться обучение с подкреплением, чтобы внести фидбэк в знания исходной модели.

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

Дело может быть в:
▪️Мультиколлинеарности, когда одна или несколько независимых переменных в модели тесно коррелированы друг с другом.
▪️Ситуации, когда количество наблюдений меньше, чем количество предикторов, то есть когда у вас больше характеристик, чем примеров.

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

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

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

👉Подписаться👈
Что делать, если при классификации у вас более двух классов?

Для многоклассовой классификации есть несколько подходов и техник.

✔️One-vs-All
При таком подходе создаются простые бинарные классификаторы для каждого класса. Например, у нас есть три класса (A, B, C), и мы создаём три классификатора: A против (B+C), B против (A+C) и C против (A+B).
✔️Softmax
Она преобразует выходы модели логистической регрессии в вероятности принадлежности к разным классам.
✔️Использование деревьев
Деревья решений разделяют данные на классы с помощью древовидной структуры и могут работать не только с двумя классами.
✔️Softmax в нейронной сети
Softmax нередко используется для последнего слоя глубоких нейронных сетей для задач классификации. При обучении в качестве функции потерь используется перекрёстная энтропия.

#машинное_обучение
Вы хотите сделать регрессию, которая будет предсказывать вероятность задержки рейса. В ваших данных есть рейсы со слишком большой и редкой задержкой — до 12 часов. Это портит вашу модель. Как бы вы решали проблему?

Есть несколько вариантов действий,

✔️Исключить выбросы.
Можно удалить наблюдения, если они слишком редкие. Но перед этим следует провести статистический анализ, чтобы убедиться, что задержки превышают определённый порог, скажем, 95-й или 99-й процентиль.
✔️Сделать модель более устойчивой к выбросам.
Тут можно:
▫️применить регуляризацию
▫️взять другой алгоритм, например деревья решений.
▫️использовать метрики, устойчивые к выбросам: MAE или функцию потерь Хьюбера вместо MSE.
✔️Преобразовать данные.
Можно использовать, например, логарифмическое преобразование.

#машинное_обучение
Что такое маргинальная вероятность (marginal probability)?

Маргинальная вероятность — это безусловная вероятность события A, то есть, вероятность события A, независимо от того, наступает ли какое-то другое событие B или нет.

✔️Маргинальной она называется потому, что если все вероятности некоторых двух переменных X и Y расположить в таблице совместных вероятностей (X как колонка, Y как строка), тогда маргинальная вероятность для каждой из переменных будет суммой вероятностей по всем значениям другой переменной на полях (margin) этой таблицы.

Маргинальная вероятность, например, есть в теореме Байеса. Это вероятность наблюдать некоторое событие независимо от гипотезы.

#теория_вероятностей
#статистика
Что такое перцептрон? Как он работает?

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

Вот принцип работы перцептрона:
▫️получает на вход набор признаков объекта;
▫️веса и смещение (bias) инициализируются случайными значениями;
▫️для каждого объекта вычисляется взвешенная сумма входных значений и добавляется смещение;
▫️значение взвешенной суммы подается на вход функции активации. Например, для бинарной классификации может использоваться пороговая функция, которая возвращает 1, если значение больше определённого порога, и 0 в противном случае.
▫️Полученное значение функции активации является выходом перцептрона, который обозначает принадлежность объекта к одному из классов.

#глубокое_обучение
#машинное_обучение
Что будет, если использовать сигмоиду в скрытом слое нейросети?

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

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

Вместо сигмоиды можно использовать другие функции активации, например ReLU.

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

Есть несколько методов.

☑️ Обрезка (pruning)
Здесь может быть два варианта:
Предварительная обрезка, при которой дерево перестаёт расти, прежде чем идеально классифицирует обучающий набор.
Пост-обрезка, которая позволяет дереву идеально классифицировать обучающий набор, а затем выполнять обрезку.
☑️ Искусственное ограничение параметров
Можно ограничить глубину или минимальное число объектов в листе.

#машинное_обучение
Что произойдёт, если использовать LabelEncoder с линейным алгоритмом?

▶️ Начнём с того, что такое LabelEncoder.
Это один из самых простых способов закодировать категории. Допустим, у вас есть три категории: «Лондон», «Париж» и «Москва». Тогда вы просто заменяете эти строковые значения на 0, 1 и 2.

В документации scikit-learn написано, что LabelEncoder кодирует целевые метки значениями из диапазона от 0 до n_classes-1 (где n_classes — количество классов). То есть алгоритм предлагается использовать в основном для кодирования целевых меток. Технически его, конечно, можно применять для кодирования нецелевых признаков. Но тут могут возникнуть проблемы.

✍️ Сама суть LabelEncoder способствует созданию избыточных зависимостей в данных. Например, после преобразования получилось, что по некоторому признаку значение объекта Volvo равно 6, а BMW — 1. Можно интерпретировать это как то, что Volvo в 6 раз в чём-то превосходит BMW. Однако в исходных данных таких зависимостей не было.

При работе с категориальными переменными для линейных моделей можно, например, использовать One-Hot Encoding.

#машинное_обучение
Что делать, если дисперсия некоторого признака почти нулевая? Как поступить с таким признаком?

▶️ Нулевая дисперсия означает отсутствие разброса в значениях этого признака. Он почти не изменяется для всех наблюдений. Такие признаки часто считаются малоинформативными.

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

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

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

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

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

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

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

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

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

Для предотвращения переобучения случайного леса можно попробовать настроить гиперпараметры. Вот параметры реализации из scikit-learn, на которые стоит обратить внимание: max_depth, n_estimators, criterion, min_samples_leaf, min_samples_split, max_leaf_nodes.

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

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

▪️colsample_bytree — это доля признаков, используемых для обучения. Чем меньше, тем ниже вероятность переобучения.
▪️subsample — доля выборки, используемой для обучения. Значения меньше 1 помогают предотвратить переобучение.
▪️max_depth — глубина дерева. Слишком большая глубина может привести к переобучению.
▪️gamma — минимальное уменьшение потерь, необходимое для дальнейшего разбиения узла. Большие значения препятствуют созданию сложных деревьев.
▪️min_child_weight — минимальная сумма весов наблюдений, необходимая для создания нового узла в дереве. Большие значения помогают предотвратить переобучение.

#машинное_обучение