ru
Feedback
Data Science | Вопросы собесов

Data Science | Вопросы собесов

Открыть в Telegram
4 918
Подписчики
-224 часа
-37 дней
+630 день
Привлечение подписчиков
август '26
август '26
+45
в 0 каналах
июль '26
+47
в 0 каналах
Get PRO
июнь '26
+43
в 1 каналах
Get PRO
май '26
+32
в 0 каналах
Get PRO
апрель '26
+55
в 0 каналах
Get PRO
март '26
+58
в 0 каналах
Get PRO
февраль '26
+115
в 0 каналах
Get PRO
январь '26
+100
в 0 каналах
Get PRO
декабрь '25
+62
в 0 каналах
Get PRO
ноябрь '25
+110
в 0 каналах
Get PRO
октябрь '25
+132
в 1 каналах
Get PRO
сентябрь '25
+75
в 0 каналах
Get PRO
август '25
+82
в 0 каналах
Get PRO
июль '25
+125
в 0 каналах
Get PRO
июнь '25
+127
в 0 каналах
Get PRO
май '25
+124
в 1 каналах
Get PRO
апрель '25
+166
в 0 каналах
Get PRO
март '25
+598
в 5 каналах
Get PRO
февраль '25
+332
в 4 каналах
Get PRO
январь '25
+201
в 53 каналах
Get PRO
декабрь '24
+120
в 0 каналах
Get PRO
ноябрь '24
+162
в 1 каналах
Get PRO
октябрь '24
+310
в 40 каналах
Get PRO
сентябрь '24
+408
в 249 каналах
Get PRO
август '24
+181
в 1 каналах
Get PRO
июль '24
+342
в 54 каналах
Get PRO
июнь '24
+924
в 244 каналах
Get PRO
май '24
+999
в 191 каналах
Get PRO
апрель '24
+689
в 23 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
29 августа0
28 августа+1
27 августа0
26 августа+2
25 августа+1
24 августа+2
23 августа+2
22 августа+1
21 августа+2
20 августа+1
19 августа+3
18 августа0
17 августа+3
16 августа+3
15 августа+1
14 августа+4
13 августа+5
12 августа+1
11 августа+2
10 августа+2
09 августа0
08 августа0
07 августа0
06 августа+2
05 августа+1
04 августа0
03 августа+5
02 августа0
01 августа+1
Посты канала
«Нейросети для руководителей» от Яндекса и НИУ ВШЭ ⚡ Команда Яндекс Практикума собрала интенсив «Нейросети для руководителей»
«Нейросети для руководителей» от Яндекса и НИУ ВШЭ ⚡ Команда Яндекс Практикума собрала интенсив «Нейросети для руководителей», чтобы за 3 недели подготовить менеджеров к работе по новым правилам рынка. ✅ В программе: - 14 нейросетей — ChatGPT, Claude, n8n, Cursor и другие. - Практики под руководством топ-экспертов по ИИ из Яндекса и НИУ ВШЭ. - 6 воркшопов, которые легко совмещать с работой. - 6 проектов на ваших реальных кейсах — от аналитической справки до мини-продуктов и агентных цепочек. На выходе — весь спектр ИИ-навыков: отчёты и аналитика без ручной работы, гипотезы за часы, стратегия вместо операционки. Руководители перестают «тушить пожары» и начинают по-настоящему управлять. Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе

2
🤔 Какие способы регурялизации сеточек знаешь? Регуляризация нейросетей помогает избежать переобучения, улучшая их способность к обобщению. Рассмотрим основные методы: 🟠L1 и L2-регуляризация (Weight Decay) Добавляют штраф за большие веса в функцию ошибки, предотвращая слишком сложные модели. L1-регуляризация (Lasso, L1-norm) Добавляет к функции ошибки сумму абсолютных значений весов: Loss = Loss_{original} + \lambda \sum |w| Заставляет веса стремиться к нулю, создавая разреженные модели (некоторые веса становятся 0). L2-регуляризация (Ridge, L2-norm) Добавляет сумму квадратов весов: Loss = Loss_{original} + \lambda \sum w^2 Уменьшает значения весов, но не зануляет их полностью. import torch.nn as nn import torch.optim as optim model = nn.Linear(10, 1) optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001) # L2-регуляризация 🟠Dropout Отключает случайные нейроны в процессе обучения, предотвращая их зависимость друг от друга. В каждом шаге обучения случайные нейроны "выключаются" с вероятностью p. В тестовом режиме нейроны работают в полную силу, но с весами, скорректированными на p. import torch.nn as nn class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 50) self.dropout = nn.Dropout(p=0.5) # Выключаем 50% нейронов self.fc2 = nn.Linear(50, 1) def forward(self, x): x = self.fc1(x) x = self.dropout(x) x = self.fc2(x) return x 🟠Batch Normalization Нормализует входные данные каждого слоя, уменьшая зависимость от масштаба входных данных. Ускоряет обучение Снижает зависимость от начальных весов Обладает небольшим регуляризационным эффектом import torch.nn as nn class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 50) self.bn1 = nn.BatchNorm1d(50) # Нормализация self.fc2 = nn.Linear(50, 1) def forward(self, x): x = self.fc1(x) x = self.bn1(x) x = self.fc2(x) return x 🟠Data Augmentation (для CV-задач) Искусственное увеличение данных путём аугментаций (повороты, отражения, изменения яркости). import torchvision.transforms as transforms transform = transforms.Compose([ transforms.RandomHorizontalFlip(), transforms.RandomRotation(10), transforms.ColorJitter(brightness=0.2, contrast=0.2), transforms.ToTensor() ]) 🟠Early Stopping Останавливает обучение, если валидационная ошибка перестаёт уменьшаться. from torch.optim.lr_scheduler import ReduceLROnPlateau scheduler = ReduceLROnPlateau(optimizer, mode='min', patience=5) Ставь 👍 и забирай 📚 Базу знаний
121
3
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке Плюс. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
158
4
🤔 Почему считается, что случайный лес не переобучается? На самом деле случайный лес может переобучаться, особенно когда речь идет о наличии очень шумных данных или когда модель строится без ограничений на глубину деревьев. Однако, по сравнению с одиночными деревьями решений, случайный лес действительно обладает более высокой устойчивостью к переобучению по ряду причин: 🟠Ансамблевый метод Случайный лес является ансамблевым методом, объединяющим предсказания множества деревьев решений. Каждое дерево в лесу строится независимо от других, что помогает уменьшить влияние ошибок отдельного дерева на итоговую модель. Это голосование по множеству деревьев повышает общую устойчивость и способность к обобщению. 🟠Использование подвыборок и подмножеств признаков При построении каждого дерева случайный лес использует случайные подвыборки обучающих данных (bootstrap samples), а также случайные подмножества признаков. Это означает, что каждое дерево строится на основе различных аспектов данных, что уменьшает риск переобучения, связанный с чрезмерной оптимизацией под одни и те же шумы или выбросы в данных. 🟠Голосование по большинству Когда несколько деревьев "голосуют" за окончательное предсказание, ошибки отдельных деревьев, склонных к переобучению, могут быть нивелированы. Если одно дерево переобучилось и ошибочно классифицирует пример, другие деревья, которые не страдают от этой проблемы, могут "исправить" эту ошибку своими предсказаниями. 🟠Устойчивость к шуму и выбросам Поскольку каждое дерево строится независимо, влияние шума и выбросов снижается, так как они влияют только на те деревья, в подвыборки которых они попали. Это уменьшает их воздействие на общий результат ансамбля. Ставь 👍 и забирай 📚 Базу знаний
189
5
Бесплатный 14-дневный онлайн-курс по дизайну интерьеров Давно хочешь работать в творческой сфере и иметь доход от 100 тыс/мес
Бесплатный 14-дневный онлайн-курс по дизайну интерьеров Давно хочешь работать в творческой сфере и иметь доход от 100 тыс/мес? Тебе не нужно уметь рисовать или прямо сейчас принимать решение. Просто приходи и попробуй! Вдруг понравится создавать уютные интерьеры и ты найдешь в этом себя. Регистрируйся на практический курс по дизайну интерьера с личным наставником. Осталось 7 мест!⚡ Зарегистрироваться #реклама 16+ diskill-design.ru О рекламодателе
215
6
🤔 Сравнение архитектуры RNN, CNN, трансформера? RNN обрабатывает данные последовательно и хорошо работает с временными рядами или текстами, но страдает от проблем с градиентами и плохо масштабируется. CNN извлекает локальные признаки через свёртки, изначально предназначен для изображений, но может применяться к тексту. Трансформер использует механизм внимания, обрабатывает всё параллельно и учитывает контекст целиком, что делает его эффективным в работе с языком и последовательностями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
205
7
Бесплатный курс: веб-дизайн, графика, интерфейсы Получи востребованные навыки: - создание дизайна сайтов и приложений - созда
Бесплатный курс: веб-дизайн, графика, интерфейсы Получи востребованные навыки: - создание дизайна сайтов и приложений - создание инфографики и карточек для маркетплейсов - работа в графическом редакторе Figma и др. Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе
207
8
🤔 Как сгенирировать распределение исходя из выборок? Генерация распределения из выборок данных включает использование методов оценки плотности и генерации новых данных, которые соответствуют распределению исходных данных. Один из наиболее популярных методов — это использование оценки плотности ядра (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() Ставь 👍 и забирай 📚 Базу знаний
197
9
Разработка и запуск интернет-магазина за 299 000 руб. Адаптивные, быстрые и высоконагружаемые интернет магазины на CMS 1C-Бит
Разработка и запуск интернет-магазина за 299 000 руб. Адаптивные, быстрые и высоконагружаемые интернет магазины на CMS 1C-Битрикс под ключ. Сопровождение и развитие магазина. 299 000 руб. Получить предложение #реклама webformat.ru О рекламодателе
214
10
🤔 Какие принципы ООП тебе известны? Основные принципы: инкапсуляция (сокрытие данных), наследование (повторное использование кода), полиморфизм (разные реализации одного интерфейса), абстракция (выделение ключевых характеристик). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
243
11
🤔 В каких случаях логистическая регрессия на задачах классификации будет работать лучше, чем случайный лес? Логистическая регрессия и случайный лес – это два популярных алгоритма для классификации, но они работают по-разному. Давайте разберём, в каких случаях логистическая регрессия будет лучше, чем случайный лес. 🚩Когда данные линейно разделимы Логистическая регрессия – это линейный алгоритм. Если классы можно разделить гиперплоскостью, логистическая регрессия будет работать отлично. Если у вас есть два класса, и они расположены в виде двух облаков по разные стороны от прямой, логистическая регрессия легко найдёт разделяющую границу. Случайный лес в этом случае будет усложнять решение, строя множество деревьев, хотя можно обойтись простой линейной моделью. 🚩Когда данные высокоразмерные и разреженные Логистическая регрессия хорошо работает с разреженными данными (например, при обработке текстов в NLP). Если вы строите модель на основе Bag of Words (BoW) или TF-IDF для классификации текстов, логистическая регрессия обычно даёт хорошие результаты. Случайный лес требует больше данных и может работать хуже в разреженных пространствах. 🚩Когда важны вероятность предсказания Логистическая регрессия даёт интерпретируемые вероятности, так как использует сигмоидную функцию: P(y=1|X) = \frac{1}{1 + e^{-(wX + b)}} Случайный лес тоже может выдавать вероятности, но они менее стабильны и не так хорошо калиброваны. В медицинской диагностике важно знать не только класс (болен/здоров), но и вероятность заболевания. В таких случаях логистическая регрессия предпочтительнее. 🚩Когда важно объяснение модели Логистическая регрессия даёт понятные коэффициенты \( w \), которые можно интерпретировать как влияние каждого признака на вероятность принадлежности к классу. В задачах кредитного скоринга банки используют логистическую регрессию, потому что важно объяснять, почему клиенту одобряют или не одобряют кредит. Случайный лес – «чёрный ящик», где трудно интерпретировать, почему модель приняла то или иное решение. 🚩Когда данных мало Логистическая регрессия работает хорошо даже на небольших выборках, потому что имеет мало параметров и не склонна к переобучению. Если у вас есть всего 100 примеров и 10 признаков, логистическая регрессия обучится хорошо, а случайный лес может переобучиться из-за высокой гибкости. Ставь 👍 и забирай 📚 Базу знаний
246
12
Доброград: жизнь без мегаполиса, но со всем, что важно А что, если после работы не нужно стоять в пробке, до школы — нескольк+2
Доброград: жизнь без мегаполиса, но со всем, что важно А что, если после работы не нужно стоять в пробке, до школы — несколько минут, а природа - не только по выходным? Доброград — новый город во Владимирской области, в 2,5 часах от Москвы. Здесь всё важное на расстоянии 15 минут: 🎓 школы и детские сады 🏃‍♂️ бассейн, спорт, теннис, падел, вейк-парк и гольф-поле 😊 лес, озёра, парки и 25 км велодорожек ✨ рестораны и SPA ✅ медицина Дети могут сами добираться до школы. Спорт и любимые занятия становятся частью обычного дня. А вместо часов в дороге появляется время на семью, друзей и себя. И это не место, куда приезжают только на выходные. Здесь уже живут 3000 человек из 60+ регионов России. Выбирайте свой формат: готовые квартиры, таунхаусы или земельные участки. Узнать больше #реклама dobrograd.ru О рекламодателе
225
13
Пожизненный PRO доступ на easyoffer — по цене одного года! До 2 сентября вы можете купить PRO навсегда. Покупаешь один раз — пользуешься всю жизнь. – База вопросов и задач из собеседований – Примеры видео-ответов на вопросы – Записи реальных собеседований – Тренажеры "Проработка вопросов" и "Реальное собеседование" – Аналитика требований из вакансий – Автоотклики на вакансии – Агрегатор вакансий (скоро) 👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro
216
14
🤔 Зачем нужен self super? self указывает на текущий экземпляр класса, а super позволяет обращаться к методам родительского класса, избегая дублирования кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
242
15
Подготовка к вступительным экзаменам в ШАД 120+ поступивших в ШАД. Преподаватели МГУ. Гарантия результата. Вы поступите в ШАД+3
Подготовка к вступительным экзаменам в ШАД 120+ поступивших в ШАД. Преподаватели МГУ. Гарантия результата. Вы поступите в ШАД, магистратуру или мы зачислим Вас на следующий поток бесплатно Узнать больше #реклама 16+ shadhelper.com О рекламодателе
246
16
🤔 Что такое 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) Ставь 👍 и забирай 📚 Базу знаний
277
17
Скидка 25% на гели Ariel и Tide! Скидка 25% в Любимой категории на товары брендов Ariel и Tide Купить #реклама market.yandex.
Скидка 25% на гели Ariel и Tide! Скидка 25% в Любимой категории на товары брендов Ariel и Tide Купить #реклама market.yandex.ru О рекламодателе
221
18
🤔 Как посчитать рок аук скор? Она измеряет способность модели различать положительные и отрицательные классы, независимо от выбранного порога классификации. Значение 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). Ставь 👍 и забирай 📚 Базу знаний
296
19
Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайт
Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей. Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках. Выплаты до 500₽ за каждую установку Яндекс Браузера. Подать заявку #реклама 0+ partner.browser.yandex.ru О рекламодателе
185
20
🤔 Как можно сравнивать два ненормальных распределения? 🚩Непараметрические тесты 🟠Тест Манна-Уитни (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}') Ставь 👍 и забирай 📚 Базу знаний
279