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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое сглаживание Лапласа и зачем его используют в наивном байесовском классификаторе?

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

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

#машинное_обучение
4👍3
Объясните, как учится Word2Vec? Какая функция потерь? Что максимизируется?

Word2Vec — это метод обучения векторных представлений слов. Он использует одну из двух архитектур: CBOW (Continuous Bag of Words) или Skip-gram.

▪️CBOW прогнозирует текущее слово на основе контекста (окружающих слов).
▪️Skip-gram наоборот использует текущее слово для предсказания контекста.

В процессе обучения Word2Vec использует нейронную сеть с одним скрытым слоем. Входные данные представляют собой слова в форме «one-hot encoded» векторов. Сеть обучается так, чтобы векторные представления слов в скрытом слое кодировали семантические и синтаксические характеристики слов.

Word2Vec может использовать несколько разных функций потерь, но наиболее распространёнными являются Negative Sampling Loss и Hierarchical Softmax. Цель обучения — максимизировать косинусное сходство между векторами слов, которые встречаются в похожих контекстах, и минимизировать его для слов, которые не встречаются вместе.

#NLP
#машинное_обучение
🔥10
Объясните разницу между SQL и NoSQL базами данных?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#машинное_обучение
👍9💯2
Что произойдёт, если использовать 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.

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

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

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

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

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

#машинное_обучение
#статистика
👍4🔥42