и посмотреть медиа
Data Science - собесы
и посмотреть медиа
Собесы Data Science.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы для собеседований по Data Science.
🤔 Как выбрать сплит? Выбор метода разделения (сплита) данных является важным этапом при построении моделей машинного обучения. Правильный выбор сплита позволяет добиться более точных и обобщающих моделей. 🚩Методы 🟠Holdout Method (Метод отложенного набора) Данные делятся на две части: обучающая выборка (train set) и тестовая выборка (test set). Обычно деление производится в пропорции 70/30 или 80/20. Когда у вас достаточно большой набор данных.Для быстрой оценки производительности модели. from sklearn.model_selection import train_test_split # Исходные данные X = ... y = ... # Деление данных на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 🟠K-Fold Cross-Validation (K-кратная кросс-валидация) Данные делятся на K частей (фолдов). Модель обучается K раз, каждый раз используя K-1 частей для обучения и одну часть для тестирования. Результаты оцениваются как среднее значение по всем фолдам. Когда нужно уменьшить влияние случайности, особенно при небольшом объеме данных. Для более надежной оценки производительности модели. from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier # Исходные данные X = ... y = ... # Модель model = RandomForestClassifier() # K-кратная кросс-валидация scores = cross_val_score(model, X, y, cv=5) print(f"Средняя точность: {scores.mean()}") 🟠Stratified K-Fold Cross-Validation (Стратифицированная K-кратная кросс-валидация) Подобно K-Fold Cross-Validation, но деление на фолды производится таким образом, чтобы в каждом фолде сохранялись пропорции классов, как в исходных данных. Для задач классификации, особенно при наличии несбалансированных классов. from sklearn.model_selection import StratifiedKFold from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import cross_val_score # Исходные данные X = ... y = ... # Стратифицированная K-кратная кросс-валидация skf = StratifiedKFold(n_splits=5) model = RandomForestClassifier() scores = cross_val_score(model, X, y, cv=skf) print(f"Средняя точность: {scores.mean()}") 🟠Leave-One-Out Cross-Validation (LOOCV) Частный случай K-Fold Cross-Validation, где K равно количеству образцов в данных. Каждый раз модель обучается на всех образцах, кроме одного, который используется для тестирования. При очень небольших наборах данных, где важно использовать как можно больше данных для обучения. from sklearn.model_selection import LeaveOneOut from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score # Исходные данные X = ... y = ... # LOOCV loo = LeaveOneOut() model = LogisticRegression() scores = cross_val_score(model, X, y, cv=loo) print(f"Средняя точность: {scores.mean()}") Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что известно о ML дизайне? ML-дизайн включает выбор модели, структуры данных, метрик и процесса обучения для конкретной задачи. Важные аспекты: • Постановка задачи (классификация, регрессия, кластеризация). • Подготовка данных (очистка, масштабирование, выделение признаков). • Выбор и настройка модели, а также оптимизация гиперпараметров. • Оценка результатов (использование метрик качества и валидации). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какой базовый алгоритм чаще всего используется? В машинном обучении часто используются различные базовые алгоритмы в зависимости от типа задачи и характеристик данных. Однако, некоторые алгоритмы являются особенно популярными и универсальными. 🟠Линейная регрессия (Linear Regression) Линейная регрессия используется для задач регрессии, где цель – предсказать непрерывную переменную на основе одной или нескольких независимых переменных. Простота, интерпретируемость и эффективное обучение на больших объемах данных. from sklearn.linear_model import LinearRegression # Пример использования линейной регрессии model = LinearRegression() model.fit(X_train, y_train) predictions = model.predict(X_test) 🟠Логистическая регрессия (Logistic Regression) Логистическая регрессия используется для задач бинарной классификации. Она оценивает вероятность принадлежности наблюдения к одному из двух классов. Простота, интерпретируемость и эффективность для линейно разделимых классов. from sklearn.linear_model import LogisticRegression # Пример использования логистической регрессии model = LogisticRegression() model.fit(X_train, y_train) predictions = model.predict(X_test) 🟠K-ближайших соседей (K-Nearest Neighbors, KNN) KNN используется как для классификации, так и для регрессии. Алгоритм находит K ближайших обучающих примеров в пространстве признаков и предсказывает класс (или значение) на основе большинства (или среднего) этих соседей. Простота и отсутствие необходимости в явной фазе обучения. from sklearn.neighbors import KNeighborsClassifier # Пример использования K-ближайших соседей model = KNeighborsClassifier(n_neighbors=5) model.fit(X_train, y_train) predictions = model.predict(X_test) 🟠Решающие деревья (Decision Trees) Решающие деревья используются как для классификации, так и для регрессии. Дерево строится путем разбиения данных на подмножества на основе значений признаков. Интерпретируемость, способность работать с категориальными и числовыми данными, и выявление важности признаков. from sklearn.tree import DecisionTreeClassifier # Пример использования решающего дерева model = DecisionTreeClassifier() model.fit(X_train, y_train) predictions = model.predict(X_test) 🟠Случайный лес (Random Forest) Случайный лес состоит из множества решающих деревьев, обученных на различных подвыборках данных. Итоговое предсказание получается путем усреднения предсказаний отдельных деревьев. Высокая точность, устойчивость к переобучению и возможность обработки больших объемов данных. from sklearn.ensemble import RandomForestClassifier # Пример использования случайного леса model = RandomForestClassifier(n_estimators=100) model.fit(X_train, y_train) predictions = model.predict(X_test) 🟠Градиентный бустинг (Gradient Boosting) Градиентный бустинг создает ансамбль слабых моделей (обычно деревьев), обучаясь последовательно, чтобы уменьшить ошибку предыдущих моделей. Высокая точность, особенно для сложных задач с большими объемами данных. from sklearn.ensemble import GradientBoostingClassifier # Пример использования градиентного бустинга model = GradientBoostingClassifier() model.fit(X_train, y_train) predictions = model.predict(X_test) Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как можно сравнивать два ненормальных распределения? 1. Применить непараметрические тесты, такие как тест Манна-Уитни или Краскела-Уоллиса. 2. Использовать бутстрепинг для создания доверительных интервалов. 3. Рассмотреть преобразование данных для приближения к нормальному виду. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Чем отличается берт от gpt? Это две популярные модели для обработки естественного языка, разработанные на основе архитектуры трансформеров. Хотя обе модели имеют общее происхождение, они разработаны для разных целей и обладают различными архитектурными особенностями. 🚩Основные отличия 🟠Архитектура BERT: Использует энкодерную часть трансформера. GPT: Использует декодерную часть трансформера. 🟠Направленность (Обучение контекста) BERT: Двунаправленный (bidirectional), то есть обучается, учитывая контекст как слева, так и справа от текущего слова. GPT: Однонаправленный (unidirectional), то есть обучается, учитывая только контекст слева направо (или наоборот). 🟠Цель обучения BERT: Обучается на задачах Masked Language Modeling (MLM) и Next Sentence Prediction (NSP). MLM: Некоторые слова в предложении заменяются на маскированные токены, и модель должна предсказать эти слова. NSP: Пара предложений используется для определения, идет ли одно предложение после другого. GPT: Обучается на задаче Language Modeling (LM). LM: Модель предсказывает следующее слово в предложении, учитывая предыдущие слова. 🟠Применение BERT: Лучше подходит для задач, требующих глубокого понимания контекста, таких как Named Entity Recognition (NER), Question Answering (QA) и текстовая классификация. GPT: Лучше подходит для генерации текста, диалоговых систем, создания контента и задач, где важно продолжение текста. 🚩Примеры задач и применения 🟠BERT BERT хорош для задач, где важно учитывать контекст с обеих сторон целевого слова. from transformers import BertTokenizer, BertForSequenceClassification from transformers import pipeline # Загрузка модели и токенизатора model_name = 'bert-base-uncased' tokenizer = BertTokenizer.from_pretrained(model_name) model = BertForSequenceClassification.from_pretrained(model_name) # Задача классификации текста nlp_pipeline = pipeline('sentiment-analysis', model=model, tokenizer=tokenizer) # Пример текста text = "BERT is a powerful model for natural language processing." # Анализ текста result = nlp_pipeline(text) print(result) 🟠GPT GPT хорош для задач, связанных с генерацией текста. from transformers import GPT2LMHeadModel, GPT2Tokenizer # Загрузка модели и токенизатора model_name = 'gpt2' tokenizer = GPT2Tokenizer.from_pretrained(model_name) model = GPT2LMHeadModel.from_pretrained(model_name) # Генерация текста input_text = "Once upon a time" input_ids = tokenizer.encode(input_text, return_tensors='pt') # Генерация продолжения текста output = model.generate(input_ids, max_length=50, num_return_sequences=1) # Декодирование и вывод текста generated_text = tokenizer.decode(output[0], skip_special_tokens=True) print(generated_text) Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что известно о Gradient-boosted trees? Это ансамблевый метод, строящий модель как последовательность слабых моделей (обычно деревьев), где каждая новая модель корректирует ошибки предыдущей. Он использует градиентный спуск по функции потерь. Обладает высокой точностью и хорошо работает с табличными данными, но чувствителен к гиперпараметрам. Популярные реализации — XGBoost, LightGBM, CatBoost. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие оконные функции известны? Оконные функции предоставляют мощные возможности для выполнения сложных расчетов над подмножеством строк, которые определены в рамках "окна", относящегося к текущей строке в результате запроса. 🟠Функции ранжирования Эти функции присваивают ранг каждой строке в рамках определенного раздела данных. ROW_NUMBER(): Возвращает уникальный номер каждой строки, начиная с 1, в порядке, указанном в ORDER BY внутри оконной спецификации. RANK(): Присваивает ранг каждой строке, одинаковые значения получают одинаковый ранг, при этом следующий за теми же значениями ранг будет увеличен на количество повторений. DENSE_RANK(): Похоже на RANK, но ранги увеличиваются на 1 между группами и не пропускаются значения (например, 1, 2, 2, 3). 🟠Функции смещения Эти функции предоставляют доступ к данным в строках, находящихся на определенном расстоянии от текущей строки. LAG(value, offset, default): Возвращает значение столбца из строки, находящейся на offset позиций перед текущей строкой. Если такой строки нет, возвращается default. LEAD(value, offset, default): Возвращает значение столбца из строки, находящейся на offset позиций после текущей строки. Если такой строки нет, возвращается default. 🟠Статистические функции Эти функции используются для вычисления статистического ранга относительно других строк в окне. PERCENT_RANK(): Возвращает процентное положение текущей строки в группе, где самая первая строка имеет значение 0. CUME_DIST(): Возвращает кумулятивный дистрибутив текущей строки в группе. 🟠Агрегатные функции Могут быть применены в контексте оконных функций для выполнения вычислений в пределах определенного окна. SUM(value): Возвращает сумму значений столбца в окне. AVG(value): Возвращает среднее значение столбца в окне. MIN(value) и MAX(value): Возвращают минимальное и максимальное значение столбца в окне. COUNT(value): Возвращает количество значений в окне. SELECT employee_id, department_id, salary, AVG(salary) OVER (PARTITION BY department_id ORDER BY salary) AS avg_salary FROM employees; Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Назови формулу линейной модели. Формула линейной модели имеет вид: `y = w0 + w1 * x1 + w2 * x2 + ... + wn * xn`, где `y` — это предсказанная величина, `x1, x2, ..., xn` — входные переменные (признаки), а `w0, w1, ..., wn` — коэффициенты (веса), которые модель подбирает во время обучения. `w0` представляет собой свободный член (смещение или bias). Цель линейной регрессии — найти такие значения весов, которые минимизируют ошибку предсказания. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Опиши дизайн эксперимента проверки работы рекомендательной модели при условии деления пользователей по геопозиции? Дизайн эксперимента для проверки работы рекомендательной системы с разделением пользователей по геопозиции может включать несколько ключевых этапов, в том числе подготовку данных, разделение пользователей, разработку и оценку рекомендательной модели. 🟠Определение целей эксперимента Перед началом эксперимента необходимо четко определить, что именно вы хотите изучить или доказать. Например, вы можете проверить, улучшится ли качество рекомендаций при использовании географических данных. 🟠Сбор и подготовка данных Для проведения эксперимента необходимо собрать достаточное количество данных о пользователях, включая их географическое положение и историю взаимодействий с продуктом. Данные должны быть предварительно обработаны для удаления ошибок и пропусков. 🟠Разделение пользователей Пользователи делятся на группы согласно их геопозиции. Например, можно разделить их на регионы: Север, Юг, Запад, Восток. Важно, чтобы в каждой группе было достаточно пользователей для статистической значимости результатов. 🟠Разработка модели Разрабатывается рекомендательная модель, которая может использовать географическую информацию для улучшения качества рекомендаций. Например, модель может предпочитать рекомендовать продукты или услуги, популярные в том же географическом регионе. 🟠Экспериментальное тестирование Разработанная модель тестируется на разных группах пользователей. Можно провести A/B-тестирование, где одной группе показываются рекомендации без учета геопозиции, а другой — с учетом. Также можно сравнить работу модели на разных географических группах. 🟠Анализ результатов Результаты эксперимента анализируются на предмет различий в эффективности рекомендаций. Особое внимание уделяется метрикам, таким как точность, полнота, и другие релевантные показатели качества рекомендаций. 🟠Выводы На основе анализа данных делаются выводы о том, насколько эффективно использование геопозиции улучшает качество рекомендаций. # Пример кода для разделения пользователей по геопозиции и подготовки данных import pandas as pd # Загрузка данных data = pd.read_csv('user_data.csv') # Предполагаем, что у нас есть колонки 'user_id', 'region' и 'interaction' # Разделение данных по регионам groups = data.groupby('region') # Пример создания модели и оценки для каждой группы for region, group_data in groups: train, test = train_test_split(group_data, test_size=0.2) model = train_model(train) results = evaluate_model(model, test) print(f"Результаты для региона {region}: {results}") Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!