Data Science | Вопросы собесов
Kanalga Telegram’da o‘tish
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Ko'proq ko'rsatish4 920
Obunachilar
-324 soatlar
+17 kunlar
+830 kunlar
Postlar arxiv
Яндекс Музыка до 360 дней бесплатно
Яндекс Музыка для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в мультиподписке Плюс.
Попробуйте бесплатно❤️
Слушать
#реклама 18+
music.yandex.ru
О рекламодателе
🤔 Почему считается, что случайный лес не переобучается?
На самом деле случайный лес может переобучаться, особенно когда речь идет о наличии очень шумных данных или когда модель строится без ограничений на глубину деревьев. Однако, по сравнению с одиночными деревьями решений, случайный лес действительно обладает более высокой устойчивостью к переобучению по ряду причин:
🟠Ансамблевый метод
Случайный лес является ансамблевым методом, объединяющим предсказания множества деревьев решений. Каждое дерево в лесу строится независимо от других, что помогает уменьшить влияние ошибок отдельного дерева на итоговую модель. Это голосование по множеству деревьев повышает общую устойчивость и способность к обобщению.
🟠Использование подвыборок и подмножеств признаков
При построении каждого дерева случайный лес использует случайные подвыборки обучающих данных (bootstrap samples), а также случайные подмножества признаков. Это означает, что каждое дерево строится на основе различных аспектов данных, что уменьшает риск переобучения, связанный с чрезмерной оптимизацией под одни и те же шумы или выбросы в данных.
🟠Голосование по большинству
Когда несколько деревьев "голосуют" за окончательное предсказание, ошибки отдельных деревьев, склонных к переобучению, могут быть нивелированы. Если одно дерево переобучилось и ошибочно классифицирует пример, другие деревья, которые не страдают от этой проблемы, могут "исправить" эту ошибку своими предсказаниями.
🟠Устойчивость к шуму и выбросам
Поскольку каждое дерево строится независимо, влияние шума и выбросов снижается, так как они влияют только на те деревья, в подвыборки которых они попали. Это уменьшает их воздействие на общий результат ансамбля.
Ставь 👍 и забирай 📚 Базу знаний
Бесплатный 14-дневный онлайн-курс по дизайну интерьеров
Давно хочешь работать в творческой сфере и иметь доход от 100 тыс/мес? Тебе не нужно уметь рисовать или прямо сейчас принимать решение. Просто приходи и попробуй! Вдруг понравится создавать уютные интерьеры и ты найдешь в этом себя.
Регистрируйся на практический курс по дизайну интерьера с личным наставником. Осталось 7 мест!⚡
Зарегистрироваться
#реклама 16+
diskill-design.ru
О рекламодателе
🤔 Сравнение архитектуры RNN, CNN, трансформера?
RNN обрабатывает данные последовательно и хорошо работает с временными рядами или текстами, но страдает от проблем с градиентами и плохо масштабируется. CNN извлекает локальные признаки через свёртки, изначально предназначен для изображений, но может применяться к тексту. Трансформер использует механизм внимания, обрабатывает всё параллельно и учитывает контекст целиком, что делает его эффективным в работе с языком и последовательностями.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Бесплатный курс: веб-дизайн, графика, интерфейсы
Получи востребованные навыки:
- создание дизайна сайтов и приложений
- создание инфографики и карточек для маркетплейсов
- работа в графическом редакторе Figma и др.
Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰
Зарегистрироваться
#реклама 16+
ydaev.ru
О рекламодателе
🤔 Как сгенирировать распределение исходя из выборок?
Генерация распределения из выборок данных включает использование методов оценки плотности и генерации новых данных, которые соответствуют распределению исходных данных. Один из наиболее популярных методов — это использование оценки плотности ядра (KDE, Kernel Density Estimation). Также можно использовать другие методы, такие как метод исторгаммы или моделирование распределений с использованием параметрических подходов (например, нормальное распределение).
🚩Методы генерации распределения из выборок
🟠Оценка плотности ядра (KDE)
KDE сглаживает данные, чтобы создать непрерывное аппроксимированное распределение, основанное на данных выборки. Для реализации KDE можно использовать библиотеку
scipy или seaborn.
🟠Гистограмма
Гистограмма разбивает данные на бины и оценивает плотность данных в каждом бине. Это простой способ оценки распределения данных.
🟠Параметрическое моделирование
Можно подогнать данные к известным распределениям (например, нормальное, экспоненциальное) и использовать параметры этого распределения для генерации новых данных.
🚩Примеры генерации распределения в Python
Использование KDE с библиотекой seaborn
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# Пример данных
data = np.random.normal(loc=0, scale=1, size=1000)
# Оценка плотности ядра (KDE)
sns.kdeplot(data, shade=True)
plt.title("Kernel Density Estimation (KDE)")
plt.show()
Использование KDE с библиотекой scipy
import numpy as np
from scipy.stats import gaussian_kde
import matplotlib.pyplot as plt
# Пример данных
data = np.random.normal(loc=0, scale=1, size=1000)
# Оценка плотности ядра (KDE)
kde = gaussian_kde(data)
# Создание новых данных на основе KDE
x = np.linspace(min(data), max(data), 1000)
kde_values = kde(x)
plt.plot(x, kde_values)
plt.title("Kernel Density Estimation (KDE)")
plt.show()
Генерация новых данных из KDE
# Генерация новых данных на основе оцененного распределения
new_samples = kde.resample(size=1000).T[0]
plt.hist(new_samples, bins=30, density=True, alpha=0.5, label='Generated Data')
sns.kdeplot(data, shade=True, label='Original Data')
plt.title("Generated Data vs Original Data")
plt.legend()
plt.show()
Параметрическое моделирование (нормальное распределение)
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Пример данных
data = np.random.normal(loc=0, scale=1, size=1000)
# Оценка параметров нормального распределения
mu, std = norm.fit(data)
# Генерация новых данных
new_data = np.random.normal(loc=mu, scale=std, size=1000)
plt.hist(new_data, bins=30, density=True, alpha=0.5, label='Generated Data')
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2, label='Fitted Distribution')
plt.title("Generated Data with Fitted Distribution")
plt.legend()
plt.show()
Ставь 👍 и забирай 📚 Базу знанийРазработка и запуск интернет-магазина за 299 000 руб.
Адаптивные, быстрые и высоконагружаемые интернет магазины на CMS 1C-Битрикс под ключ. Сопровождение и развитие магазина. 299 000 руб.
Получить предложение
#реклама
webformat.ru
О рекламодателе
🤔 Какие принципы ООП тебе известны?
Основные принципы: инкапсуляция (сокрытие данных), наследование (повторное использование кода), полиморфизм (разные реализации одного интерфейса), абстракция (выделение ключевых характеристик).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В каких случаях логистическая регрессия на задачах классификации будет работать лучше, чем случайный лес?
Логистическая регрессия и случайный лес – это два популярных алгоритма для классификации, но они работают по-разному. Давайте разберём, в каких случаях логистическая регрессия будет лучше, чем случайный лес.
🚩Когда данные линейно разделимы
Логистическая регрессия – это линейный алгоритм. Если классы можно разделить гиперплоскостью, логистическая регрессия будет работать отлично.
Если у вас есть два класса, и они расположены в виде двух облаков по разные стороны от прямой, логистическая регрессия легко найдёт разделяющую границу.
Случайный лес в этом случае будет усложнять решение, строя множество деревьев, хотя можно обойтись простой линейной моделью.
🚩Когда данные высокоразмерные и разреженные
Логистическая регрессия хорошо работает с разреженными данными (например, при обработке текстов в NLP).
Если вы строите модель на основе Bag of Words (BoW) или TF-IDF для классификации текстов, логистическая регрессия обычно даёт хорошие результаты.
Случайный лес требует больше данных и может работать хуже в разреженных пространствах.
🚩Когда важны вероятность предсказания
Логистическая регрессия даёт интерпретируемые вероятности, так как использует сигмоидную функцию:
P(y=1|X) = \frac{1}{1 + e^{-(wX + b)}}
Случайный лес тоже может выдавать вероятности, но они менее стабильны и не так хорошо калиброваны.
В медицинской диагностике важно знать не только класс (болен/здоров), но и вероятность заболевания.
В таких случаях логистическая регрессия предпочтительнее.
🚩Когда важно объяснение модели
Логистическая регрессия даёт понятные коэффициенты \( w \), которые можно интерпретировать как влияние каждого признака на вероятность принадлежности к классу.
В задачах кредитного скоринга банки используют логистическую регрессию, потому что важно объяснять, почему клиенту одобряют или не одобряют кредит.
Случайный лес – «чёрный ящик», где трудно интерпретировать, почему модель приняла то или иное решение.
🚩Когда данных мало
Логистическая регрессия работает хорошо даже на небольших выборках, потому что имеет мало параметров и не склонна к переобучению.
Если у вас есть всего 100 примеров и 10 признаков, логистическая регрессия обучится хорошо, а случайный лес может переобучиться из-за высокой гибкости.
Ставь 👍 и забирай 📚 Базу знаний
Доброград: жизнь без мегаполиса, но со всем, что важно
А что, если после работы не нужно стоять в пробке, до школы — несколько минут, а природа - не только по выходным?
Доброград — новый город во Владимирской области, в 2,5 часах от Москвы. Здесь всё важное на расстоянии 15 минут:
🎓 школы и детские сады
🏃♂️ бассейн, спорт, теннис, падел, вейк-парк и гольф-поле
😊 лес, озёра, парки и 25 км велодорожек
✨ рестораны и SPA
✅ медицина
Дети могут сами добираться до школы. Спорт и любимые занятия становятся частью обычного дня. А вместо часов в дороге появляется время на семью, друзей и себя.
И это не место, куда приезжают только на выходные. Здесь уже живут 3000 человек из 60+ регионов России.
Выбирайте свой формат: готовые квартиры, таунхаусы или земельные участки.
Узнать больше
#реклама
dobrograd.ru
О рекламодателе
Пожизненный PRO доступ на easyoffer — по цене одного года!
До 2 сентября вы можете купить PRO навсегда.
Покупаешь один раз — пользуешься всю жизнь.
– База вопросов и задач из собеседований
– Примеры видео-ответов на вопросы
– Записи реальных собеседований
– Тренажеры "Проработка вопросов" и "Реальное собеседование"
– Аналитика требований из вакансий
– Автоотклики на вакансии
– Агрегатор вакансий (скоро)
👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro
🤔 Зачем нужен self super?
self указывает на текущий экземпляр класса, а super позволяет обращаться к методам родительского класса, избегая дублирования кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Подготовка к вступительным экзаменам в ШАД
120+ поступивших в ШАД. Преподаватели МГУ. Гарантия результата. Вы поступите в ШАД, магистратуру или мы зачислим Вас на следующий поток бесплатно
Узнать больше
#реклама 16+
shadhelper.com
О рекламодателе
🤔 Что такое recall?
Это метрика в машинном обучении и статистике, которая измеряет способность модели классификации находить все релевантные случаи в данных. Другими словами, он показывает, какую долю объектов из всех истинно положительных объектов модель смогла правильно классифицировать как положительные.
🚩Определение и формула
Определяется как отношение числа истинно положительных результатов (true positives, TP) к сумме истинно положительных и ложно отрицательных результатов (false negatives, FN):
\[ \text{Recall} = \frac{TP}{TP + FN} \]
🚩Зачем это нужно
Особенно важен в ситуациях, где пропуск истинно положительных результатов может иметь серьёзные последствия. Например, в медицинской диагностике важно обнаружить как можно больше реальных случаев заболевания, чтобы назначить соответствующее лечение.
Представим, что у нас есть тест на обнаружение болезни, и в группе из 100 человек 30 действительно болеют. Если тест правильно идентифицировал 25 из них как больных, полнота теста будет:
\[ \text{Recall} = \frac{25}{30} \approx 0.83 \]
from sklearn.metrics import recall_score
# Истинные метки
y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 1]
# Предсказанные метки
y_pred = [1, 0, 1, 0, 0, 1, 0, 1, 0, 1]
# Расчет полноты
recall = recall_score(y_true, y_pred)
print("Recall:", recall)
Ставь 👍 и забирай 📚 Базу знанийСкидка 25% на гели Ariel и Tide!
Скидка 25% в Любимой категории на товары брендов Ariel и Tide
Купить
#реклама
market.yandex.ru
О рекламодателе
🤔 Как посчитать рок аук скор?
Она измеряет способность модели различать положительные и отрицательные классы, независимо от выбранного порога классификации. Значение ROC AUC варьируется от 0 до 1, где 1 соответствует идеальной модели, а 0.5 — случайному угадыванию.
🚩Шаги для расчета в Python
1⃣Подготовка данных и модели.
2⃣Предсказание вероятностей классов.
3⃣Вычисление ROC AUC с использованием библиотеки
scikit-learn.
import numpy as np
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
# Генерация данных
X, y = make_classification(n_samples=1000, n_features=20, 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_pred_prob = model.predict_proba(X_test)[:, 1]
# Вычисление ROC AUC
roc_auc = roc_auc_score(y_test, y_pred_prob)
print(f"ROC AUC Score: {roc_auc:.2f}")
1⃣Генерация данных
make_classification создает набор данных для задачи классификации.
2⃣Разделение данных
train_test_split делит данные на обучающую и тестовую выборки.
3⃣Обучение модели
LogisticRegression используется для обучения модели логистической регрессии.
4⃣Предсказание вероятностей
predict_proba возвращает вероятности для каждого класса. Нас интересует вероятность положительного класса (1), поэтому берем второй столбец результата ([:, 1]).
5⃣Вычисление ROC AUC
roc_auc_score вычисляет AUC на основе истинных меток (y_test) и предсказанных вероятностей (y_pred_prob).
Ставь 👍 и забирай 📚 Базу знанийЗарабатывайте на установках Яндекс Браузера
Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей.
Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках.
Выплаты до 500₽ за каждую установку Яндекс Браузера.
Подать заявку
#реклама 0+
partner.browser.yandex.ru
О рекламодателе
🤔 Как можно сравнивать два ненормальных распределения?
🚩Непараметрические тесты
🟠Тест Манна-Уитни (U-тест Манна-Уитни)
Используется для сравнения двух независимых выборок. Тест проверяет, различаются ли распределения значений между двумя группами.
from scipy.stats import mannwhitneyu
data1 = [1, 2, 3, 4, 5]
data2 = [2, 3, 4, 5, 6]
stat, p = mannwhitneyu(data1, data2)
print(f'U-статистика: {stat}, p-значение: {p}')
🟠Тест Уилкоксона (Wilcoxon signed-rank test)
Используется для сравнения двух связанных выборок или парных наблюдений.
from scipy.stats import wilcoxon
before = [20, 30, 40, 50, 60]
after = [21, 29, 39, 51, 59]
stat, p = wilcoxon(before, after)
print(f'W-статистика: {stat}, p-значение: {p}')
🟠Критерий Колмогорова-Смирнова (Kolmogorov-Smirnov test)
Используется для сравнения формы двух распределений.
from scipy.stats import ks_2samp
data1 = [1, 2, 3, 4, 5]
data2 = [2, 3, 4, 5, 6]
stat, p = ks_2samp(data1, data2)
print(f'KS-статистика: {stat}, p-значение: {p}')
🚩Визуализация
🟠Гистограммы и плотности
Построение гистограмм и графиков плотности для визуального сравнения распределений.
import matplotlib.pyplot as plt
import seaborn as sns
data1 = [1, 2, 3, 4, 5]
data2 = [2, 3, 4, 5, 6]
sns.histplot(data1, kde=True, color='blue', label='Data1', alpha=0.5)
sns.histplot(data2, kde=True, color='red', label='Data2', alpha=0.5)
plt.legend()
plt.show()
🟠Boxplots (ящики с усами)
Помогают сравнить распределения и выявить отличия в медиане, квартилях и выбросах.
data1 = [1, 2, 3, 4, 5]
data2 = [2, 3, 4, 5, 6]
plt.boxplot([data1, data2], labels=['Data1', 'Data2'])
plt.show()
🚩Другие методы
🟠Коэффициент Спирмена (Spearman's rank correlation)
Проверяет монотонную связь между двумя выборками.
from scipy.stats import spearmanr
data1 = [1, 2, 3, 4, 5]
data2 = [2, 3, 4, 5, 6]
corr, p = spearmanr(data1, data2)
print(f'Корреляция Спирмена: {corr}, p-значение: {p}')
Ставь 👍 и забирай 📚 Базу знанийРегистрируйтесь на Yandex Scale 2026
Главная конференция Yandex Cloud.
Узнайте о сервисах, которые меняют ваш бизнес.
4 офлайн-трека (AI, Infra + DevTools, Data, Security), онлайн-трек Deep Tech, воркшопы по ИИ и интерактивы. Подробнее о программе читайте в карточках🗒
📅24 сентября
🚗Москва + 💻онлайн
Участие бесплатное!
Зарегистрироваться
#реклама 16+
scale.yandex.cloud
О рекламодателе
🤔 Как представить модель лтв для бизнеса?
Представление модели пожизненной ценности клиента (LTV) для бизнеса требует чёткого понимания целей бизнеса, практической значимости модели и способности переводить технические детали в понятные и полезные бизнес-инсайты.
🟠Определите цель модели LTV
Начните с объяснения, для чего была разработана модель LTV и какие бизнес-процессы она может улучшить. Это может быть повышение ROI маркетинговых кампаний, оптимизация взаимодействия с клиентами, повышение удержания клиентов или более эффективное распределение ресурсов.
🟠Подробно о методологии
Опишите, какие данные были использованы для обучения модели, какие методы машинного обучения применялись, и как производилась валидация результатов. Объясните выбор определённых переменных и их влияние на прогнозы LTV.
🟠Демонстрация результатов
Используйте визуализации для демонстрации работы модели. Графики, такие как ROC-кривые, диаграммы распределения LTV или сравнения реальных и предсказанных значений LTV, могут помочь наглядно представить эффективность модели. Также покажите, как модель справляется с различными сегментами клиентов.
🟠Бизнес-влияние
Объясните, как использование модели LTV может привести к конкретным бизнес-преимуществам. Приведите примеры улучшений: например, на сколько увеличилась рентабельность за счёт оптимизации маркетинговых затрат или как повысилась общая прибыль за счет более точного прогнозирования поведения клиентов.
🟠Предложения по реализации
Опишите, как модель можно интегрировать в текущие бизнес-процессы. Предложите конкретные шаги для внедрения модели, включая необходимые изменения в IT-инфраструктуре, процессы обработки данных и требования к персоналу.
🟠Рассмотрение ограничений и рисков
Не упустите возможность обсудить потенциальные ограничения модели и возможные риски, связанные с её использованием. Это может включать данные, которые могут стать устаревшими, потенциальное переобучение модели или вопросы, связанные с конфиденциальностью данных.
🟠План постоянного обновления и обслуживания
Модели машинного обучения требуют регулярного обновления для поддержания актуальности. Опишите процесс регулярного пересмотра и обновления модели, включая сбор новых данных, повторную оценку модели и адаптацию к изменяющимся рыночным условиям.
Ставь 👍 и забирай 📚 Базу знаний
