Logo
TGCATALOG
Каталог Подборки Блог
Data Science - собесы

Data Science - собесы

Собесы Data Science.

Нет оценок
608
29.10.2026
608
29.10.2026
Нет оценок
608
29.10.2026
Безопасный переход через бот
О канале

Собесы Data Science.

Подписчиков 4,871
Тематика Технологии
Язык Русский
Ссылка t.me/easy_ds

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Вопросы для собеседований по Data Science.

Последние посты

Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Как обучаются линейные модели? Линейные модели обучаются путём нахождения оптимальных весов, которые минимизируют функцию потери, обычно через градиентный спуск. В случае простых моделей (например, линейной регрессии) может быть использовано аналитическое решение (метод наименьших квадратов). При больших данных или сложных задачах применяется итеративный подход для более эффективной оптимизации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи про метрики, классификацию? Для оценки моделей классификации позволяют определить, насколько хорошо модель справляется с задачей предсказания классов. 🚩Основные метрики классификации 🟠Точность (Accuracy) Доля правильных предсказаний. Когда классы сбалансированы. \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} 🟠Полнота (Recall) Доля правильно предсказанных положительных примеров. Когда важно минимизировать пропуск положительных случаев. \text{Recall} = \frac{TP}{TP + FN} 🟠Точность (Precision) Доля правильно предсказанных положительных примеров из всех предсказанных положительных. Когда важно минимизировать количество ложноположительных случаев. \text{Precision} = \frac{TP}{TP + FP} 🟠F-мера (F-score) Гармоническое среднее между точностью и полнотой. Когда нужно сбалансировать точность и полноту. F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} 🟠Матрица ошибок (Confusion Matrix) Таблица с количеством истинных положительных, истинных отрицательных, ложноположительных и ложноотрицательных предсказаний. 🟠ROC-кривая и AUC ROC-кривая показывает соотношение истинно положительных и ложноположительных срабатываний при различных порогах. AUC – площадь под ROC-кривой. Для оценки качества моделей при различных порогах классификации. 🚩Примеры использования Accuracy, Precision, Recall и F1-Score from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix # Истинные метки и предсказанные метки y_true = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1] y_pred = [0, 1, 0, 1, 0, 1, 0, 1, 1, 0] # Вычисление метрик accuracy = accuracy_score(y_true, y_pred) precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) f1 = f1_score(y_true, y_pred) cm = confusion_matrix(y_true, y_pred) print(f"Accuracy: {accuracy}") print(f"Precision: {precision}") print(f"Recall: {recall}") print(f"F1 Score: {f1}") print(f"Confusion Matrix:\n{cm}") ROC-кривая и AUC import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import roc_curve, roc_auc_score # Истинные метки и предсказанные вероятности y_true = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1] y_scores = [0.1, 0.4, 0.35, 0.8, 0.2, 0.75, 0.3, 0.4, 0.85, 0.6] # Вычисление ROC-кривой и AUC fpr, tpr, thresholds = roc_curve(y_true, y_scores) roc_auc = roc_auc_score(y_true, y_scores) # Построение ROC-кривой plt.figure() plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC-кривая (AUC = {roc_auc:.2f})') plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.0]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('ROC-кривая') plt.legend(loc="lower right") plt.show() Ставь 👍 и забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Что такое мультиколлинеарность? Это ситуация, когда признаки сильно коррелируют друг с другом. - Это вызывает нестабильность линейных моделей, так как коэффициенты могут становиться большими и неинтерпретируемыми. - Решения: удаление зависимых признаков, PCA, L1-регуляризация (Lasso). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Как с помощью линейной модели понять какие фичи можно сразу откинуть? Использование линейной модели для выбора наиболее значимых признаков (фич) и отсеивания менее значимых может быть выполнено несколькими способами. Ниже я опишу наиболее популярные подходы: Анализ коэффициентов линейной модели: В линейной модели значимость признаков определяется величиной и знаком коэффициентов при этих признаках. Если коэффициент признака мал или близок к нулю, это может указывать на его низкую значимость. import numpy as np from sklearn.linear_model import LinearRegression # Пример данных X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) y = np.array([1, 2, 3, 4]) # Создание и обучение линейной модели model = LinearRegression() model.fit(X, y) # Получение коэффициентов coefficients = model.coef_ print(f"Коэффициенты модели: {coefficients}") Интерпретация: 🟠Коэффициенты с малыми абсолютными значениями указывают на признаки, которые менее важны для модели. 🟠Признаки с большими абсолютными значениями коэффи­циентов считаются более важными. Регуляризация: Lasso (L1) и Ridge (L2): Методы регуляризации позволяют улучшить интерпретацию модели и выбрать значимые признаки: 🟠Lasso (L1): Принуждает некоторые коэффициенты быть равными нулю, эффективно отбирая признаки. 🟠Ridge (L2): Не отбирает признаки напрямую, но уменьшает влияние малозначимых признаков. from sklearn.linear_model import Lasso # Создание и обучение Lasso модели lasso = Lasso(alpha=0.1) # Параметр alpha контролирует силу регуляризации lasso.fit(X, y) # Получение коэффициентов coefficients = lasso.coef_ print(f"Коэффициенты Lasso модели: {coefficients}") Интерпретация: Коэффициенты, которые стали нулевыми после применения Lasso, указывают на признаки, которые можно отсеять. Методы оценки важности признаков (Feature Importance): Хотя это напрямую не относится к линейным моделям, такие методы как Random Forest или Gradient Boosting могут помочь оценить важность признаков. from sklearn.ensemble import RandomForestRegressor # Создание и обучение модели Random Forest model = RandomForestRegressor() model.fit(X, y) # Получение важности признаков importances = model.feature_importances_ print(f"Важность признаков: {importances}") Ставь 👍 и забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Чем отличается итератор от генератора? Итератор — это объект с методами iter и next, позволяющий поочерёдно перебирать элементы. Генератор — это удобная форма итератора, создаваемая функцией с использованием yield, которая сохраняет своё состояние между вызовами. Итераторы требуют ручной реализации, а генераторы упрощают создание итераций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Как делается прунинг деревьев? Прунинг деревьев (или обрезка деревьев решений) — это процесс удаления ненужных ветвей в дереве, чтобы упростить модель и предотвратить переобучение. Обычно это делается путем удаления или сокращения узлов, которые добавляют мало полезной информации, что уменьшает сложность дерева без значительных потерь в точности. Существует несколько методов прунинга, включая предобрезку (pruning during tree construction) и постобрезку (pruning after tree construction), которые помогают сбалансировать общее количество узлов и глубину дерева, улучшая его обобщающую способность. 🚩До обрезки (Pre-pruning) До обрезки включает остановку роста дерева раньше, чем оно полностью обучится. В процессе построения дерева принимаются решения о прекращении роста текущей ветви, если выполнение одного из критериев остановки. Максимальная глубина дерева (max depth) Останавливает рост дерева, если оно достигает определенной глубины. Минимальное количество образцов в листе (min samples leaf) Останавливает рост дерева, если в узле меньше определенного количества образцов. Минимальное количество образцов для разбиения (min samples split) Останавливает рост дерева, если меньше определенного количества образцов в узле для разбиения. Минимальная информационная выгода (min impurity decrease) Останавливает рост дерева, если уменьшение неопределенности после разбиения меньше определенного порога. 🚩После обрезки (Post-pruning) После обрезки включает создание полного дерева и затем удаление некоторых его ветвей. Этот метод часто считается более эффективным, так как позволяет создать дерево с максимальной сложностью и затем упрощать его 🟠Обрезка на основе ошибки на валидационном наборе Дерево сначала обучается до полной глубины, а затем на валидационном наборе данных удаляются ветви, которые увеличивают ошибку. 🟠Обрезка на основе критерия минимальной ошибки (cost complexity pruning) Включает расчет ошибки для каждого поддерева и удаление тех, которые увеличивают общую ошибку меньше всего. 🚩Пример обрезки деревьев До обрезки from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split # Загрузка данных data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42) # Модель с параметрами до обрезки model_pre_pruning = DecisionTreeClassifier(max_depth=3, min_samples_split=4, min_samples_leaf=2) model_pre_pruning.fit(X_train, y_train) # Оценка модели print(f"Точность на тестовом наборе (до обрезки): {model_pre_pruning.score(X_test, y_test)}") После обрезки from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree import matplotlib.pyplot as plt # Создание и обучение дерева без обрезки model = DecisionTreeClassifier() model.fit(X_train, y_train) # Построение полного дерева plt.figure(figsize=(20,10)) plot_tree(model, filled=True) plt.show() # Применение после обрезки с помощью параметра cost_complexity_pruning path = model.cost_complexity_pruning_path(X_train, y_train) ccp_alphas, impurities = path.ccp_alphas, path.impurities # Обучение моделей для каждого значения alpha models = [] for ccp_alpha in ccp_alphas: model = DecisionTreeClassifier(ccp_alpha=ccp_alpha) model.fit(X_train, y_train) models.append(model) # Выбор лучшей модели на основе валидационного набора best_model = None best_score = 0 for model in models: score = model.score(X_test, y_test) if score > best_score: best_model = model best_score = score # Оценка лучшей модели print(f"Точность на тестовом наборе (после обрезки): {best_score}") Ставь 👍 и забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Что такое градиентный спуск? Градиентный спуск — это метод оптимизации, который используется для нахождения минимального значения функции ошибки модели путём итеративного изменения параметров модели (например, весов). На каждом шаге вычисляется градиент функции ошибки по параметрам, и параметры корректируются в направлении, противоположном градиенту. Шаг изменения регулируется параметром скорости обучения (learning rate). Градиентный спуск эффективен для обучения моделей с большим количеством параметров. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Что такое F-score и зачем его используют? Это метрика, используемая для оценки качества бинарных классификаторов, которая учитывает как точность (precision), так и полноту (recall) модели. Она особенно полезна в ситуациях с несбалансированными классами, где одно значение может быть значительно больше другого. 🚩Зачем нужен? 🟠Комбинирования точности и полноты в одну метрику Точность (Precision): Доля правильно предсказанных положительных примеров из всех предсказанных положительных. Полнота (Recall): Доля правильно предсказанных положительных примеров из всех истинных положительных. 🟠Балансировки между точностью и полнотой В некоторых задачах важнее минимизировать ложноположительные ошибки, в других – ложные отрицательные. F-score помогает найти баланс. 🟠Оценки моделей на несбалансированных данных В условиях, где один класс значительно преобладает, F-score дает более полное представление о производительности модели, чем просто точность или полнота. 🚩Как вычисляется? Это гармоническое среднее точности и полноты, что позволяет избежать завышения оценки при высоком значении только одной из метрик. Формула F-score выглядит следующим образом: F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} Где: \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Пример from sklearn.metrics import f1_score # Пример данных y_true = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1] # Истинные значения y_pred = [0, 1, 0, 1, 0, 1, 0, 1, 1, 0] # Предсказанные значения # Вычисление F-score f1 = f1_score(y_true, y_pred) print(f'F-score: {f1:.2f}') Ставь 👍 и забирай 📚 Базу знаний
Data Science - собесы
Data Science - собесы
🔒Открыть пост
и посмотреть медиа
🤔 Назови формулу линейной модели. Формула линейной модели имеет вид: `y = w0 + w1 * x1 + w2 * x2 + ... + wn * xn`, где `y` — это предсказанная величина, `x1, x2, ..., xn` — входные переменные (признаки), а `w0, w1, ..., wn` — коэффициенты (веса), которые модель подбирает во время обучения. `w0` представляет собой свободный член (смещение или bias). Цель линейной регрессии — найти такие значения весов, которые минимизируют ошибку предсказания. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Data Science - собесы
Динамика подписчиков
+-0.7% за 30 дней
Текущие
4,871
Месяц назад
4,906
Средний рост
+-1 / день
Обновлено
6 часов назад

Отзывы о канале Data Science - собесы

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход