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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Считаете ли вы нужным как-то готовиться к поведенческому (behavioral) интервью?
Anonymous Poll
59%
Да
41%
Нет
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

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

👉Подписаться👈
Какую функцию активации использовать для классов, которые не являются взаимоисключающими?

В таких случаях предсказание для каждого класса можно рассматривать как отдельную задачу бинарной классификации — задачу предсказания того, принадлежит объект к конкретному классу или нет.

Наиболее распространённый подход для такой задачи — это использование сигмоиды в качестве функции активации и бинарной кросс-энтропии в качестве функции потерь. Сигмоида на каждом выходе даёт вероятность принадлежности объекта к классу, а бинарная кросс-энтропия измеряет разницу между предсказанными вероятностями и истинными метками для каждого класса.

#машинное_обучение
🌐 Преимущества и недостатки работы в ИТ-аутсорсинговой компании

В этой статье мы разберемся, какие плюсы и минусы предполагает в себе работа в аутсорсинговой компании. Вы узнаете, чем привлекательна работа в этой сфере, с какими трудностями вам придется столкнуться и как сделать правильный выбор, чтобы аутсорсинг стал не ловушкой, а трамплином к успеху.

Получите основу для дальнейшего изучения более сложных нейронных сетей:
🔵 Базовые модели ML и приложения

🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие существуют методы разбиения в алгоритмах построения решающих деревьев?

🔹Индекс Джини (Gini Impurity)
Используется для задач классификации. Он измеряет вероятность того, что случайно выбранный объект будет неправильно классифицирован. Чем ниже значение индекса Джини, тем «чище» разбиение.

🔹Информационный прирост (Information Gain)
Он измеряет то, как снижается энтропия (степень неопределённости) после разбиения данных. Этот метод помогает выбрать наилучший признак для разбиения в задачах классификации.

🔹Дисперсия (Variance)
Для задач регрессии, где целевая переменная является непрерывной, используется метод дисперсии. Цель — минимизировать разброс значений целевой переменной в подмножествах после разбиения.

#машинное_обучение
📊🚀💡Power BI: когда Excel уже не справляется

Представьте, что все ключевые показатели вашего бизнеса доступны в один клик. Мы расскажем, как BI-инструменты делают это реальностью и почему без них уже не обойтись.

👉 Читать статью
Почему свёрточные нейросети оказались лучше обычных (MLP, например) именно в задачах классификации изображений?

🔹Количество параметров

Представим, что вы решили использовать обычную многослойную сеть с кросс-энтропией для классификации изображений, предварительно развернув каждую картинку в вектор. В таком случае, количество параметров в первом слое будет зависеть от размерности вектора (например, 1920x1080) и числа нейронов. Если количество нейронов слишком мало, мы рискуем потерять важную информацию.

Свёрточные нейросети предлагают решение этой проблемы. Их архитектура позволяет значительно сократить количество параметров за счёт использования свёрток и пулинговых слоёв. Это не только уменьшает сложность модели, но и помогает сохранять важные характеристики изображений.

🔹Структура данных

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

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

#глубокое_обучение
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
🐍⚙️ 10 способов оптимизации Python-кода

Python ценят за простоту, гибкость и читаемость, но критикуют за невысокую производительность. Эта критика не всегда обоснована: есть несколько эффективных способов значительно повысить скорость Python-приложений, предназначенных для выполнения сложных вычислений и обработки больших объёмов данных.

Об этих способах читайте в нашей статье 👈
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно подготовиться к техническому интервью 👀
Опишите процесс предобработки видеоданных для их использования в ML-моделях

🔹Предобработка на уровне кадров

Этапы предобработки видеоданных на уровне отдельных кадров включают:
▪️Сэмплирование, то есть выборка ключевых кадров для сокращения объёма данных.
▪️Приведение всех кадров к одинаковому размеру.
▪️Масштабирование и нормализация, то есть корректировка значений пикселей. Чаще всего нормализация осуществляется для приведения значений к диапазону [0, 1] или [-1, 1].

🔹Видеоэнкодеры

▪️Обработка видео целиком — с помощью 3D-свёрточных сетей (3D-CNN) или трансформеров. Эти модели захватывают как пространственные, так и временные зависимости между кадрами. Такой метод более ресурсоёмкий, но позволяет модели лучше улавливать динамику видеоряда.
▪️Обработка отдельных кадров — каждый кадр обрабатывается отдельно для получения эмбеддингов, которые затем агрегируются (например, с помощью усреднения или рекуррентных сетей). Этот подход быстрее, но может потерять часть информации о временных зависимостях.

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

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

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

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

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

Начнём с того, что нужно определить типы вредоносного контента, которые мы хотим отслеживать: это могут быть хейтспич, угрозы насилия, кибербуллинг и др. Затем важно понять объём контента, который предстоит анализировать (например, сотни миллионов постов в день), и то, какие языки должны поддерживаться.

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

Одним из главных вызовов является разработка мультимодальной модели. Вредоносный контент может быть представлен в разных форматах: текст, изображения, видео, поэтому необходимо эффективно обрабатывать все эти типы данных. Для этого можно использовать методы раннего и позднего слияния данных: либо объединять данные разных типов сразу для единого предсказания, либо обрабатывать их независимо и затем объединять результаты. Для разработки могут использоваться нейронные сети, такие как модели на основе BERT для текстов и модели CLIP для изображений.

Важной частью системы также является возможность объяснить пользователю, почему его контент был помечен как вредоносный. Кроме того, в процессе онлайн-тестирования и развёртывания системы необходимо следить за её эффективностью через метрики, такие как процент вредоносных постов и количество успешных апелляций.

#машинное_обучение
👨‍🎓📈 Как выбрать специализацию и начать обучение Data Science

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

Наш курс по математике для начала карьеры в Data Science:
🔵 Математика для Data Science
🔵 Основы программирования на Python

📎 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите логистическую регрессию

import numpy as np

class LogisticRegression:

def __init__(self, learning_rate=0.01, n_iters=1000):
self.learning_rate = learning_rate
self.n_iters = n_iters
self.weights = None
self.bias = None

def fit(self, X, y):
# initialize weights and bias to zeros
n_samples, n_features = X.shape
self.weights = np.zeros(n_features)
self.bias = 0

# gradient descent optimization
for i in range(self.n_iters):
# calculate predicted probabilities and cost
z = np.dot(X, self.weights) + self.bias
y_pred = self._sigmoid(z)
cost = (-1 / n_samples) * np.sum(y * np.log(y_pred) + (1 - y) * np.log(1 - y_pred))

# calculate gradients
dw = (1 / n_samples) * np.dot(X.T, (y_pred - y))
db = (1 / n_samples) * np.sum(y_pred - y)

# update weights and bias
self.weights -= self.learning_rate * dw
self.bias -= self.learning_rate * db

def predict(self, X):
# calculate predicted probabilities
z = np.dot(X, self.weights) + self.bias
y_pred = self._sigmoid(z)
# convert probabilities to binary predictions
return np.round(y_pred).astype(int)

def _sigmoid(self, z):
return 1 / (1 + np.exp(-z))


#python
#машинное_обучение
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать
🥷 Путь ML-самурая: от школьной математики до передового машинного обучения

В новой статье рассказываем, что именно нужно изучить, чтобы стать ML-специалистом. Начинаем с простого — базовой математики, — а заканчиваем многомерным анализом и нейросетями.

О том, как не потерять мотивацию в процессе обучения, тоже написали 🤝

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

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

👉Подписаться👈
Почему удаление высоко коррелированных признаков считается хорошей практикой?

Удаление высоко коррелированных признаков считается хорошей практикой по нескольким причинам:

▫️Устранение мультиколлинеарности
Когда два или более признаков имеют высокую корреляцию, это может привести к проблеме мультиколлинеарности, особенно в линейных моделях, таких как линейная регрессия и логистическая регрессия. Мультиколлинеарность означает, что признаки не несут дополнительной информации, что приводит к нестабильности коэффициентов модели. Модель может стать чувствительной к малым изменениям в данных, что вызывает большие изменения в оценке параметров.

▫️Снижение размерности
Каждый добавленный признак увеличивает размерность пространства признаков, что усложняет модель. Это может привести к проблеме, известной как «проклятие размерности» (curse of dimensionality). В пространствах высокой размерности расстояния между точками увеличиваются, и данные становятся более разреженными. Это затрудняет обучение модели, так как для правильного обобщения данных требуется больше наблюдений, чтобы покрыть все возможные комбинации признаков. Удаление коррелированных признаков помогает уменьшить размерность и улучшить работу модели.

▫️Улучшение интерпретируемости модели
Когда признаки высоко коррелированы, интерпретировать влияние каждого признака на итоговый результат модели становится сложно. Например, в линейных моделях трудно определить, какой из коррелированных признаков на самом деле влияет на результат, так как они могут взаимозависимо изменять коэффициенты друг друга.

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

Сэмплирование — это способ скорректировать обучающую выборку так, чтобы распределение классов стало сбалансированным.

Вот несколько методов сэмплирования:

▪️Случайное сэмплирование (Random Sampling)
Выборка осуществляется случайным образом без каких-либо условий. Здесь можно выделить два подтипа: сэмлирование с возвращением и без возвращения. В первом случае объекты могут быть выбраны несколько раз, во втором — каждый объект выбирается только один раз.

▪️ Стратифицированное сэмплирование (Stratified Sampling)
При этом методе данные разделяются на группы, и сэмплирование производится из каждой группы пропорционально её размеру.

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