и посмотреть медиа
Data Science - interviews
и посмотреть медиа
Data Science interviews.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Interview questions on Data Science.
🤔 Зачем нужен yield вместо return в функции? `yield` используется в генераторах Python и позволяет функции возвращать промежуточный результат, приостанавливая выполнение функции и сохраняя ее состояние для последующего возобновления. Это эффективно для работы с большими данными или сложными алгоритмами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Когда ROC AUC будет плохо определять качество классификатора ? ROC AUC (Receiver Operating Characteristic - Area Under Curve) является популярной метрикой для оценки качества бинарного классификатора. Однако, в некоторых ситуациях использование ROC AUC может быть неэффективным или вводящим в заблуждение. 🟠Сильно несбалансированные данные При сильном дисбалансе классов, где один класс существенно преобладает над другим, ROC AUC может давать завышенные оценки качества модели. Это происходит потому, что ROC AUC учитывает как истинно положительные, так и ложно положительные сработки, но при этом не всегда отражает способность модели предсказывать редкий класс. 🟠Различная стоимость ошибок Если ошибки различных типов (ложно положительные и ложно отрицательные) имеют разную стоимость, ROC AUC может неадекватно отражать качество модели. В таких случаях более подходящей метрикой может быть Precision-Recall Curve или специфическая метрика, учитывающая стоимость ошибок. 🟠Малое количество положительных примеров При малом количестве положительных примеров (класса 1), ROC AUC может стать менее надежной, так как небольшое изменение в предсказаниях может существенно повлиять на значение метрики. В таких случаях Precision-Recall Curve и PR AUC могут предоставить более надежную оценку. 🟠Нестабильность при малых выборках Может быть нестабильной и сильно зависеть от конкретного набора данных, особенно при небольших выборках. Это может привести к значительным колебаниям в оценках качества модели. import numpy as np import pandas as pd from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_auc_score, precision_recall_curve, auc # Создание несбалансированного набора данных X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, n_clusters_per_class=1, weights=[0.99], flip_y=0, random_state=42) # Разделение на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Обучение модели логистической регрессии model = LogisticRegression() model.fit(X_train, y_train) # Предсказание вероятностей y_scores = model.predict_proba(X_test)[:, 1] # Вычисление ROC AUC roc_auc = roc_auc_score(y_test, y_scores) # Вычисление Precision-Recall AUC precision, recall, _ = precision_recall_curve(y_test, y_scores) pr_auc = auc(recall, precision) print(f"ROC AUC: {roc_auc}") print(f"Precision-Recall AUC: {pr_auc}") Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Расскажи о Gradient-boosted trees Градиентный бустинг (Gradient Boosting) – это мощная техника машинного обучения, которая используется в задачах классификации и регрессии. Он строит последовательность деревьев решений, где каждое новое дерево исправляет ошибки предыдущих. 🚩Как работает градиентный бустинг? Первое дерево делает предсказания (например, просто среднее значение таргета). Считаются ошибки (остатки) между предсказанием и реальными значениями. Следующее дерево обучается предсказывать эти ошибки. Шаг 2 и 3 повторяются – каждое новое дерево учится уменьшать ошибку. Итоговый ответ – сумма предсказаний всех деревьев, умноженная на коэффициент обучения. F_{m}(x) = F_{m-1}(x) + \gamma \cdot h_m(x) Где: \( F_{m}(x) \) – предсказание на шаге \( m \) \( h_m(x) \) – новое дерево, обученное на ошибках \( \gamma \) – коэффициент обучения (learning rate), регулирует вклад каждого нового дерева 🚩Популярные реализации градиентного бустинга 🟠XGBoost самый быстрый и популярный, поддерживает регуляризацию. 🟠LightGBM быстрее XGBoost, строит деревья сверху вниз (leaf-wise). 🟠CatBoost лучший для категориальных признаков, использует особые методы кодирования. 🚩Когда использовать градиентный бустинг? Если важна высокая точность модели. Если признаки имеют сложные нелинейные зависимости. Если нужно предсказывать на табличных данных. Не подходит, если данных мало – модель может переобучиться. Требует тщательной настройки гиперпараметров. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 В чём разница между методом GMM и K-Means? 1. K-Means: o Основан на разделении данных по расстояниям до центроидов (жёсткое разделение). o Каждая точка принадлежит только одному кластеру. 2. GMM (Gaussian Mixture Model): o Использует вероятностный подход: каждая точка имеет вероятность принадлежности к каждому кластеру (мягкое разделение). o Кластеры формируются на основе распределений Гаусса, что делает GMM более гибким для сложных данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Знаешь ли такие два понятия: стэкинг и блэндинг? Это две техники ансамблевого машинного обучения, которые используются для улучшения предсказательной способности моделей за счёт комбинирования различных предсказаний. Обе техники предполагают использование нескольких базовых моделей, но они реализуются немного по-разному. 🚩Стэкинг (Stacking) Это метод ансамблевого обучения, при котором модели различных типов обучаются на одном и том же наборе данных, а затем их предсказания используются как входные данные для мета-модели (финальной модели), которая делает окончательное предсказание. 🟠Первый уровень (Base Level Models) На первом уровне несколько различных моделей обучаются независимо на полном обучающем наборе данных. Каждая модель делает предсказания, которые затем используются на втором уровне. 🟠Второй уровень (Meta-model) На втором уровне мета-модель обучается на предсказаниях, сделанных моделями первого уровня. Цель мета-модели — корректно интерпретировать предсказания базовых моделей и сделать окончательное предсказание. 🚩Блэндинг (Blending) Похож на стэкинг, но проще и обычно включает меньшее количество моделей и менее сложный метод агрегации. В блэндинге также используются предсказания нескольких моделей, но вместо создания отдельного обучающего набора для мета-модели, предсказания комбинируются напрямую, например, путём взвешенного среднего или простого голосования. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое интерквантили? Это статистическая мера вариативности, которая описывает диапазон центральных 50% данных в наборе. IQR используется для оценки разброса данных и для выявления выбросов. 🚩Понятия 🟠Квартили Первый квартиль (Q1): Значение, ниже которого находится 25% данных. Второй квартиль (Q2): Это медиана, значение, ниже которого находится 50% данных. Третий квартиль (Q3): Значение, ниже которого находится 75% данных. 🟠Интерквартильный размах (IQR) Разница между третьим и первым квартилями. Интерпретация: IQR показывает диапазон, в котором находится центральная половина данных, и помогает понять разброс данных вокруг медианы. IQR = Q3 - Q1 🚩Примеры 🟠Сортировка данных [1, 3, 3, 6, 7, 8, 9, 15, 18, 19] 🟠Вычисление квартилей Первый квартиль (Q1): Среднее значение между вторым и третьим элементом (3 и 6), то есть 4.5. Медиана (Q2): Среднее значение между пятым и шестым элементом (7 и 8), то есть 7.5. Третий квартиль (Q3): Среднее значение между восьмым и девятым элементом (15 и 18), то есть 16.5. Вычисление IQR: IQR = Q3 - Q1 = 16.5 - 4.5 = 12 🚩Использование интерквартильного размаха 🟠Выявление выбросов Значения, которые находятся ниже \(Q1 - 1.5 \times IQR\) или выше \(Q3 + 1.5 \times IQR\), считаются выбросами. 🟠Сравнение распределений IQR может использоваться для сравнения разброса данных в разных наборах или группах. Пример import numpy as np # Данные data = [1, 3, 3, 6, 7, 8, 9, 15, 18, 19] # Вычисление квартилей Q1 = np.percentile(data, 25) Q2 = np.percentile(data, 50) Q3 = np.percentile(data, 75) # Вычисление IQR IQR = Q3 - Q1 print(f"Первый квартиль (Q1): {Q1}") print(f"Медиана (Q2): {Q2}") print(f"Третий квартиль (Q3): {Q3}") print(f"Интерквартильный размах (IQR): {IQR}") # Выявление выбросов lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR print(f"Границы для выбросов: {lower_bound} и {upper_bound}") outliers = [x for x in data if x < lower_bound or x > upper_bound] print(f"Выбросы: {outliers}") Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое градиентный спуск? Градиентный спуск — это метод оптимизации, который используется для нахождения минимального значения функции ошибки модели путём итеративного изменения параметров модели (например, весов). На каждом шаге вычисляется градиент функции ошибки по параметрам, и параметры корректируются в направлении, противоположном градиенту. Шаг изменения регулируется параметром скорости обучения (learning rate). Градиентный спуск эффективен для обучения моделей с большим количеством параметров. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как объяснить бизнесу, что значат ошибки I и II рода? Являются важными концепциями в статистике и тестировании гипотез, и их понимание критично для принятия обоснованных бизнес-решений. Эти ошибки могут быть особенно значимы при оценке рисков, управлении качеством, маркетинговых кампаниях и многих других областях. 🚩Объяснение 🟠Ошибка I рода (Ложно-положительный результат) Возникает, когда мы отвергаем нулевую гипотезу, хотя она на самом деле верна. Представьте, что у вас есть система детекции мошенничества для онлайн-платежей. Ошибка I рода в этом контексте будет означать, что система пометила законную транзакцию как мошенническую. Клиенты могут быть недовольны блокировкой их законных транзакций, что может привести к потере доверия и уменьшению числа пользователей. 🟠Ошибка II рода (Ложно-отрицательный результат) Происходит, когда мы не отвергаем нулевую гипотезу, хотя она на самом деле ложна. В системе детекции мошенничества, ошибка II рода будет означать, что система не распознала мошенническую транзакцию и пропустила её. Пропуск мошеннических транзакций может привести к финансовым потерям и возможным проблемам с репутацией. 🚩Объяснение на метафорах 🟠Ошибка I рода (Ложно-положительный результат) Представьте, что у вас есть сигнализация в доме, которая должна срабатывать только в случае кражи. Ошибка I рода - это когда сигнализация срабатывает, даже если кражи нет, например, от шума ветра. Последствия: Частые ложные срабатывания сигнализации могут вызвать недовольство и раздражение, возможно, вы даже решите отключить систему. 🟠Ошибка II рода (Ложно-отрицательный результат) Теперь представьте, что сигнализация в вашем доме не срабатывает, когда происходит кража. Это и есть ошибка II рода. Последствия: Вор может свободно украсть ваше имущество, и вы останетесь без защиты. 🚩Как ошибки влияют на бизнес 🟠Ошибка I рода Маркетинговая кампания, направленная на привлечение новых клиентов, ошибочно определяет некоторых текущих клиентов как новых и отправляет им специальные предложения, что увеличивает расходы без получения новых клиентов. Риски: Дополнительные расходы, снижение эффективности кампаний, ухудшение клиентского опыта. 🟠Ошибка II рода Кампания по удержанию клиентов не распознает реальных клиентов, склонных к уходу, и не предпринимает мер для их удержания. Риски: Потеря клиентов, снижение доходов, ухудшение клиентской базы. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаРабота в IT — худшая затея для новичка в 2026 году. Мёртвые вакансии, огромная конкуренция, заоблачные требования к кандидатам, ещё и поганый AI. Но всё ли так очевидно? Пока одни бесконечно учат Python, делают очередной пет-проект и ждут, когда станут «достаточно хороши» для первой работы, умные читают Богдана и разбираются, как получить первую работу. Он больше 6 лет работает в бигтехе, прошёл 350+ собеседований и знает: — Почему твоё резюме не даёт откликов — Почему ты не зарабатываешь 400к? — Где искать работу ML-инженеру? И это лишь малая часть. На канале собрана целая база по всем аспектам поиска работы, от резюме до получения оффера и торга. Подписывайся, пока это бесплатно: Ссылка скрыта Реклама ИП Камаев Богдан Эльмарович ИНН 770973951244 erid:CQH36pWzJqVJCbWwemLt6NZsLG2GvZTerG927tW8yZ2ft1
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!