Data Scientist (Начальный уровень)
Курс разработан для школьников и студентов, желающих познакомиться с профессией Data Scientist. Программа включает базовые знания по анализу данных, работе с Python, визуализации информации и решению реальных задач.
Что предстоит пройти на курсе:
- Введение в Data Science
- Основы программирования на Python
- Работа с библиотеками NumPy и Pandas
- Визуализация данных (matplotlib, seaborn)
- Основы статистики
- Практические проекты: от анализа до выводов
Ожидаемые результаты после прохождения курса:
- Должен знать: основные понятия Data Science, принципы обработки и анализа данных, работу с популярными инструментами Python.
- Должен уметь: собирать, очищать и анализировать данные, строить графики, делать выводы на основе информации, выполнять простые прогнозы.
Формат обучения: онлайн/офлайн, лекции + практика, домашние задания, финальный проект.
-
Что такое Data Science и почему он важен?
Data Science — это область, объединяющая статистику, программирование и анализ данных для извлечения полезной информации. Он важен, потому что помогает принимать обоснованные решения в бизнесе, науке и других сферах. -
Какие инструменты используются в Data Science?
В Data Science часто применяются Python, библиотеки Pandas, NumPy, matplotlib, seaborn, SQL, Jupyter Notebook и другие инструменты для анализа и визуализации данных. -
Почему Python популярен в анализе данных?
Python прост в освоении, имеет богатую экосистему библиотек, поддерживает разные стили программирования и активно используется в научном и аналитическом сообществе. -
Что такое Pandas и зачем он нужен?
Pandas — это библиотека Python, предназначенная для работы с табличными данными. Она позволяет легко импортировать, фильтровать, агрегировать и анализировать данные. -
Для чего используется библиотека NumPy?
NumPy служит для работы с числовыми массивами и выполнения вычислений. Она обеспечивает эффективное хранение данных и быстрые математические операции. -
Что такое визуализация данных?
Это процесс представления данных в графической форме (графики, диаграммы), чтобы сделать информацию более понятной и доступной для анализа. -
Какие библиотеки визуализации данных вы знаете?
Самые популярные: matplotlib — для базовой визуализации, seaborn — для красивых статистических графиков, plotly — для интерактивных визуализаций. -
Зачем нужна очистка данных?
Очистка данных устраняет ошибки, дубликаты и пропуски, что делает анализ точным и надёжным. -
Что такое среднее значение и как оно вычисляется?
Среднее значение — это сумма всех чисел, делённая на их количество. Оно используется для оценки центральной тенденции. -
Что такое медиана и чем она отличается от среднего?
Медиана — это серединное значение в упорядоченном наборе данных. В отличие от среднего, она менее чувствительна к выбросам. -
Что такое мода?
Мода — это наиболее часто встречающееся значение в наборе данных. Она используется для категориальных переменных. -
Какими способами можно определить наличие пропусков в данных?
Пропуски можно найти с помощью метода isnull().sum() или info() в Pandas. -
Что делать, если в данных есть пропуски?
Можно удалить строки/колонки с пропусками, заполнить их средним/медианой или использовать модели для предсказания пропущенных значений. -
Как построить гистограмму в matplotlib?
Гистограмму строят с помощью функции plt.hist(), передавая ей данные и параметры отображения. -
Какие типы данных чаще всего встречаются в таблицах?
Числовые (int, float), строковые (object), булевы значения (True/False), даты и время. -
Как отфильтровать данные по условию в Pandas?
Используется синтаксис вроде df[df['column'] > 10] — он выбирает только те строки, где условие истинно. -
Что такое группировка данных?
Группировка (groupby) позволяет агрегировать данные по одному или нескольким признакам, например, посчитать среднее по группам. -
Как сохранить результаты анализа в файл?
Результаты можно сохранить в CSV-файл с помощью метода to_csv() или в Excel через to_excel(). -
Что такое корреляция?
Корреляция показывает степень взаимосвязи между двумя переменными. Значения варьируются от -1 до 1. -
Как построить тепловую карту корреляции?
Тепловую карту строят с помощью sns.heatmap(df.corr()), используя библиотеку seaborn. -
Что такое прогнозирование в Data Science?
Это задача предсказания будущих значений или событий на основе исторических данных. -
Какие простые модели прогнозирования используются?
Линейная регрессия, метод скользящего среднего, деревья решений. -
Что такое переобучение?
Переобучение — это когда модель "запоминает" тренировочные данные, но не может хорошо обобщаться на новых данных. -
Как проверить качество модели?
Качество модели оценивается с помощью метрик, таких как MAE, MSE, R² (для регрессии) или accuracy (для классификации). -
Зачем нужны проекты в курсе?
Проекты позволяют применить знания на практике, закрепить навыки и создать портфолио для будущих работодателей.
-
Какие навыки необходимы для начинающего Data Scientist?
Начинающему Data Scientist важно знать основы программирования (Python), уметь работать с данными, понимать базовую статистику и обладать аналитическим мышлением. -
Что такое датасет и где он используется?
Датасет — это набор данных, используемый для анализа, обучения моделей или визуализации. Он может быть представлен в виде таблицы, файла CSV или базы данных. -
Как открыть CSV-файл в Python?
CSV-файл открывается с помощью библиотеки Pandas: pd.read_csv('file.csv'). -
Как проверить размер таблицы в Pandas?
Размер таблицы можно узнать с помощью атрибута shape: df.shape — вернёт количество строк и столбцов. -
Что такое выбросы и как с ними работать?
Выбросы — это значения, сильно отличающиеся от остальных. Их можно удалить, заменить на среднее/медиану или оставить, если они не мешают анализу. -
Как добавить новый столбец в DataFrame?
Новый столбец добавляется просто: df['new_column'] = значения. -
Как объединить два датасета?
Для объединения используют методы merge() или concat() в зависимости от типа соединения (по ключам или по осям). -
Зачем нужны циклы в обработке данных?
Циклы позволяют автоматически выполнять однотипные операции над множеством данных, например, обрабатывать несколько файлов или вычислять значения по строкам. -
Что такое функция и зачем она нужна в анализе данных?
Функция — это блок кода, который можно вызывать несколько раз. Она помогает упрощать повторяющиеся действия, такие как очистка или преобразование данных. -
Как создать график рассеяния в matplotlib?
График рассеяния строится с помощью plt.scatter(x, y), где x и y — массивы данных. -
Какие виды графиков чаще всего используются в анализе данных?
Гистограммы, диаграммы рассеяния, линейные графики, столбчатые диаграммы, boxplot, тепловые карты. -
Как изменить стиль графика в matplotlib?
Стиль меняется с помощью команды plt.style.use('стиль'), например, plt.style.use('ggplot'). -
Что такое интерполяция?
Интерполяция — это метод заполнения пропущенных значений в данных на основе соседних точек. -
Как найти уникальные значения в колонке?
Уникальные значения находят с помощью метода unique(): df['column'].unique(). -
Как преобразовать данные в другой тип?
Тип данных меняют с помощью astype(), например: df['column'] = df['column'].astype(int). -
Что такое нормализация данных?
Это процесс масштабирования числовых значений к единому диапазону (например, от 0 до 1) для более корректной работы алгоритмов. -
Как найти максимальное значение в колонке?
Максимальное значение находится через метод max(): df['column'].max(). -
Как построить столбчатую диаграмму?
Столбчатая диаграмма строится с помощью plt.bar(x, y) или sns.barplot(). -
Что такое гистограмма и что она показывает?
Гистограмма показывает распределение числовых данных, группируя их по интервалам. -
Как экспортировать график в файл?
График сохраняется с помощью plt.savefig('filename.png'). -
Как определить, есть ли зависимость между переменными?
Зависимость можно определить через коэффициент корреляции или визуализацию (график рассеяния, тепловая карта). -
Что такое категориальные данные?
Это данные, принимающие ограниченное число значений, например, пол, цвет, марка автомобиля. -
Как закодировать категориальные данные?
Категориальные данные можно закодировать с помощью One-Hot Encoding (pd.get_dummies) или Label Encoding. -
Как работает метод describe() в Pandas?
Метод describe() выводит статистическую сводку по числовым колонкам: среднее, стандартное отклонение, минимум, максимум и т.д. -
Почему важно визуализировать данные перед анализом?
Визуализация помогает быстро понять структуру данных, выявить закономерности, выбросы и ошибки.
-
Какие типы переменных используются в статистике?
В статистике выделяют количественные (числовые) и качественные (категориальные) переменные. Количественные делятся на дискретные и непрерывные. -
Что такое стандартное отклонение и как оно рассчитывается?
Стандартное отклонение — это мера разброса данных относительно среднего значения. Рассчитывается как квадратный корень из дисперсии. -
Как найти пропущенные значения в DataFrame?
Пропущенные значения находят с помощью метода isnull() или isna(), например: df.isnull().sum(). -
Что такое boxplot и для чего он используется?
Boxplot — это график, показывающий распределение данных и наличие выбросов. Он полезен для анализа диапазона, медианы и экстремальных значений. -
Какие основные этапы работы с данными?
Этапы: сбор данных, очистка, преобразование, анализ, визуализация, интерпретация результатов. -
Что такое переобучение и как его избежать?
Переобучение — это когда модель слишком "подстраивается" под тренировочные данные. Избежать можно через регуляризацию, кросс-валидацию и упрощение модели. -
Что такое кросс-валидация?
Кросс-валидация — это метод оценки качества модели, при котором данные разбиваются на части, и модель обучается/тестируется на разных комбинациях этих частей. -
Как работает алгоритм линейной регрессии?
Линейная регрессия находит линейную зависимость между входными и выходными переменными, минимизируя ошибку предсказания. -
Что такое R² и что он показывает?
R² — коэффициент детерминации, показывает, насколько хорошо модель объясняет вариацию целевой переменной (значения от 0 до 1). -
Как построить линию тренда на графике?
Линию тренда строят с помощью sns.regplot() или вручную, применяя методы регрессии. -
Какие метрики используются для оценки регрессионных моделей?
MAE (средняя абсолютная ошибка), MSE (среднеквадратичная ошибка), RMSE (корень из MSE), R². -
Что такое MAE и как она рассчитывается?
MAE — это среднее значение абсолютных ошибок прогноза. Формула: mean(|y_pred - y_true|). -
Что такое MSE и почему она важна?
MSE — среднее квадратов ошибок. Она штрафует за большие ошибки сильнее, чем MAE, поэтому часто используется в оптимизации моделей. -
Какие библиотеки Python помогают в машинном обучении?
Scikit-learn, XGBoost, CatBoost, LightGBM, TensorFlow, PyTorch (для глубокого обучения). -
Что такое Scikit-learn и какие задачи он решает?
Scikit-learn — это библиотека машинного обучения, которая предоставляет инструменты для классификации, регрессии, кластеризации, обработки данных и оценки моделей. -
Как разделить данные на обучающую и тестовую выборки?
С помощью функции train_test_split() из sklearn.model_selection. -
Что такое матрица ошибок (confusion matrix)?
Матрица ошибок показывает количество правильных и неправильных предсказаний модели, разделяя их на истинно положительные, ложные положительные, истинно отрицательные и ложные отрицательные. -
Какие метрики используются в задачах классификации?
Accuracy, precision, recall, F1-score, ROC-AUC. -
Что такое точность (precision)?
Precision — доля правильно предсказанных положительных объектов среди всех объектов, предсказанных как положительные. -
Что такое полнота (recall)?
Recall — доля правильно предсказанных положительных объектов среди всех реальных положительных объектов. -
Как рассчитывается F1-мера?
F1-мера — это гармоническое среднее точности и полноты: F1 = 2 * (precision * recall) / (precision + recall). -
Что такое ROC-кривая и AUC-метрика?
ROC-кривая показывает соотношение между долей истинно положительных и ложноположительных результатов. AUC — площадь под этой кривой, характеризующая качество классификатора. -
Что такое кластеризация?
Кластеризация — это задача машинного обучения без учителя, при которой данные группируются по схожим признакам. -
Как работает алгоритм K-means?
K-means разбивает данные на K кластеров, итеративно перемещая центры кластеров и назначая точки ближайшему центру. -
Как выбрать оптимальное число кластеров в K-means?
Для этого можно использовать метод "локтя" или метрику силуэта.
-
Какой язык программирования чаще всего используется в Data Science?
A) Java
B) Python
C) C++
D) JavaScript
Правильный ответ: B) Python -
Какая библиотека в Python используется для работы с табличными данными?
A) Matplotlib
B) Seaborn
C) Pandas
D) Numpy
Правильный ответ: C) Pandas -
Какой метод в Pandas выводит первые 5 строк таблицы?
A) head()
B) tail()
C) sample()
D) first()
Правильный ответ: A) head() -
Какой из следующих типов графиков используется для отображения распределения данных?
A) Линейный график
B) Гистограмма
C) Диаграмма рассеяния
D) Круговая диаграмма
Правильный ответ: B) Гистограмма -
Что означает функция df.shape в Pandas?
A) Выводит количество строк
B) Выводит количество столбцов
C) Выводит размерность DataFrame (строки и столбцы)
D) Выводит общее количество элементов
Правильный ответ: C) Выводит размерность DataFrame (строки и столбцы) -
Какой метод используется для удаления пропущенных значений в Pandas?
A) fillna()
B) dropna()
C) replace()
D) interpolate()
Правильный ответ: B) dropna() -
Какой из следующих показателей характеризует центральную тенденцию?
A) Дисперсия
B) Стандартное отклонение
C) Медиана
D) Размах
Правильный ответ: C) Медиана -
Какая библиотека в Python используется для построения графиков?
A) Pandas
B) NumPy
C) Matplotlib
D) SciPy
Правильный ответ: C) Matplotlib -
Как называется процесс заполнения пропущенных данных средним значением?
A) Интерполяция
B) Нормализация
C) Импутация
D) Скейлинг
Правильный ответ: C) Импутация -
Какой метод в Pandas группирует данные по определённому признаку?
A) groupby()
B) merge()
C) concat()
D) join()
Правильный ответ: A) groupby() -
Какой график лучше всего подходит для сравнения категорий?
A) Гистограмма
B) Диаграмма рассеяния
C) Столбчатая диаграмма
D) Линейный график
Правильный ответ: C) Столбчатая диаграмма -
Какое значение корреляции указывает на сильную положительную связь?
A) -0.9
B) 0.1
C) 0.8
D) 0
Правильный ответ: C) 0.8 -
Какой из следующих показателей не является метрикой регрессии?
A) MAE
B) Accuracy
C) MSE
D) R²
Правильный ответ: B) Accuracy -
Какой алгоритм относится к задачам классификации?
A) K-means
B) Линейная регрессия
C) Логистическая регрессия
D) PCA
Правильный ответ: C) Логистическая регрессия -
Какой метод позволяет объединить два DataFrame в Pandas?
A) join()
B) merge()
C) concat()
D) Все вышеперечисленные
Правильный ответ: D) Все вышеперечисленные -
Какой из следующих методов нормализует данные?
A) StandardScaler
B) MinMaxScaler
C) LabelEncoder
D) PCA
Правильный ответ: B) MinMaxScaler -
Что такое переобучение модели?
A) Модель хорошо работает на тестовых данных, но плохо на тренировочных
B) Модель плохо работает как на тренировочных, так и на тестовых данных
C) Модель идеально предсказывает все значения
D) Модель слишком сложная и "запоминает" тренировочные данные
Правильный ответ: D) Модель слишком сложная и "запоминает" тренировочные данные -
Какой из следующих показателей используется в кластеризации?
A) F1-score
B) Silhouette Score
C) Precision
D) Recall
Правильный ответ: B) Silhouette Score -
Какой из следующих методов используется для кодирования категориальных переменных?
A) One-Hot Encoding
B) MinMaxScaler
C) PCA
D) StandardScaler
Правильный ответ: A) One-Hot Encoding -
Какой график используется для анализа выбросов?
A) Гистограмма
B) Boxplot
C) Тепловая карта
D) Линейный график
Правильный ответ: B) Boxplot -
Какой из следующих инструментов не относится к машинному обучению?
A) Scikit-learn
B) XGBoost
C) Jupyter Notebook
D) TensorFlow
Правильный ответ: C) Jupyter Notebook -
Какой метод возвращает статистическую сводку по данным в Pandas?
A) describe()
B) info()
C) head()
D) shape
Правильный ответ: A) describe() -
Какой из следующих типов данных может быть использован для линейной регрессии?
A) Булевы значения
B) Категориальные данные
C) Числовые данные
D) Текстовые данные
Правильный ответ: C) Числовые данные -
Какой из следующих параметров используется для разбиения данных на обучающую и тестовую выборки?
A) test_size
B) random_state
C) shuffle
D) Все вышеперечисленные
Правильный ответ: D) Все вышеперечисленные -
Какой из следующих терминов описывает ошибку, возникающую из-за слишком простой модели?
A) Переобучение
B) Недообучение
C) Дисперсия
D) Смещение
Правильный ответ: B) Недообучение
-
Какой из следующих методов используется для построения тепловой карты в Seaborn?
A) sns.lineplot()
B) sns.scatterplot()
C) sns.heatmap()
D) sns.barplot()
Правильный ответ: C) sns.heatmap() -
Какой из следующих типов данных представляет собой числа с плавающей точкой?
A) int
B) float
C) str
D) bool
Правильный ответ: B) float -
Что означает функция df.info() в Pandas?
A) Выводит первые 5 строк
B) Выводит статистическую сводку
C) Показывает типы данных и количество непропущенных значений
D) Выводит размерность DataFrame
Правильный ответ: C) Показывает типы данных и количество непропущенных значений -
Какой из следующих показателей используется для оценки качества кластеризации?
A) Accuracy
B) Silhouette Score
C) Precision
D) Recall
Правильный ответ: B) Silhouette Score -
Как называется процесс приведения данных к диапазону [0, 1]?
A) Стандартизация
B) Нормализация
C) Интерполяция
D) Дисперсия
Правильный ответ: B) Нормализация -
Какая метрика учитывает как precision, так и recall?
A) Accuracy
B) F1-score
C) ROC-AUC
D) MSE
Правильный ответ: B) F1-score -
Какой из следующих алгоритмов является алгоритмом машинного обучения без учителя?
A) Логистическая регрессия
B) K-means
C) Дерево решений
D) SVM
Правильный ответ: B) K-means -
Какой из следующих терминов обозначает ошибку модели на тренировочных данных?
A) Bias
B) Variance
C) Training error
D) Test error
Правильный ответ: C) Training error -
Какой из следующих инструментов используется для интерактивной визуализации?
A) Matplotlib
B) Seaborn
C) Plotly
D) Pandas
Правильный ответ: C) Plotly -
Какой метод возвращает уникальные значения столбца в Pandas?
A) unique()
B) nunique()
C) value_counts()
D) count()
Правильный ответ: A) unique() -
Какое значение коэффициента корреляции указывает на отсутствие линейной связи?
A) -1
B) 0
C) 0.5
D) 1
Правильный ответ: B) 0 -
Какой из следующих методов применяется для поиска оптимального количества кластеров в K-means?
A) Метод "локтя"
B) Метод ближайших соседей
C) Градиентный спуск
D) Кросс-валидация
Правильный ответ: A) Метод "локтя" -
Какой график используется для отображения взаимосвязи между двумя числовыми переменными?
A) Гистограмма
B) Диаграмма рассеяния
C) Boxplot
D) Тепловая карта
Правильный ответ: B) Диаграмма рассеяния -
Какой из следующих показателей не относится к классификации?
A) Confusion matrix
B) ROC-AUC
C) R²
D) F1-score
Правильный ответ: C) R² -
Какой из следующих методов используется для заполнения пропущенных значений?
A) dropna()
B) fillna()
C) isnull()
D) duplicated()
Правильный ответ: B) fillna() -
Какой из следующих параметров контролирует случайность при разделении выборок?
A) test_size
B) random_state
C) shuffle
D) stratify
Правильный ответ: B) random_state -
Какой из следующих методов позволяет создать новый признак на основе существующих?
A) map()
B) apply()
C) groupby()
D) Все вышеперечисленные
Правильный ответ: D) Все вышеперечисленные -
Какой из следующих показателей характеризует разброс данных?
A) Мода
B) Медиана
C) Стандартное отклонение
D) Среднее значение
Правильный ответ: C) Стандартное отклонение -
Какой из следующих типов графиков используется для отображения временных рядов?
A) Гистограмма
B) Диаграмма рассеяния
C) Линейный график
D) Boxplot
Правильный ответ: C) Линейный график -
Какой из следующих методов удаляет дубликаты в DataFrame?
A) dropna()
B) drop_duplicates()
C) duplicated()
D) replace()
Правильный ответ: B) drop_duplicates() -
Какой из следующих параметров в train_test_split задаёт долю тестовой выборки?
A) random_state
B) shuffle
C) test_size
D) stratify
Правильный ответ: C) test_size -
Какой из следующих методов возвращает количество уникальных значений в столбце?
A) unique()
B) nunique()
C) value_counts()
D) count()
Правильный ответ: B) nunique() -
Какой из следующих показателей лучше всего подходит для несбалансированных данных?
A) Accuracy
B) Precision
C) F1-score
D) Recall
Правильный ответ: C) F1-score -
Какой из следующих методов позволяет выполнить операцию над каждой строкой или столбцом?
A) apply()
B) map()
C) groupby()
D) agg()
Правильный ответ: A) apply() -
Какой из следующих терминов описывает способность модели работать хорошо на новых данных?
A) Переобучение
B) Обобщающая способность
C) Недообучение
D) Ошибка предсказания
Правильный ответ: B) Обобщающая способность
-
Какой из следующих методов используется для построения графика рассеяния в Matplotlib?
A) plt.plot()
B) plt.scatter()
C) plt.bar()
D) plt.hist()
Правильный ответ: B) plt.scatter() -
Что означает параметр inplace=True в методах Pandas?
A) Создаёт копию DataFrame
B) Изменяет исходный DataFrame без присвоения
C) Возвращает изменённый DataFrame
D) Ускоряет выполнение кода
Правильный ответ: B) Изменяет исходный DataFrame без присвоивания -
Какой из следующих типов данных не может быть использован в регрессии?
A) Целые числа
B) Действительные числа
C) Категориальные данные
D) Временные метки
Правильный ответ: C) Категориальные данные -
Какой из следующих показателей называется «площадь под ROC-кривой»?
A) Precision
B) Recall
C) Accuracy
D) ROC-AUC
Правильный ответ: D) ROC-AUC -
Какой из следующих методов применяется для преобразования категориальных переменных в числовые?
A) StandardScaler
B) LabelEncoder
C) MinMaxScaler
D) PCA
Правильный ответ: B) LabelEncoder -
Какое значение возвращает функция df.ndim?
A) Общее количество элементов
B) Число строк
C) Число столбцов
D) Количество измерений
Правильный ответ: D) Количество измерений -
Какой график лучше всего подходит для отображения частоты распределения категориальных данных?
A) Гистограмма
B) Boxplot
C) Столбчатая диаграмма
D) Диаграмма рассеяния
Правильный ответ: C) Столбчатая диаграмма -
Какой алгоритм машинного обучения используется для прогнозирования цен на недвижимость?
A) K-means
B) Логистическая регрессия
C) Линейная регрессия
D) Дерево решений (классификация)
Правильный ответ: C) Линейная регрессия -
Какой из следующих терминов обозначает ошибку, возникающую при чрезмерной чувствительности модели к данным?
A) Bias
B) Variance
C) Accuracy
D) MAE
Правильный ответ: B) Variance -
Какой из следующих методов позволяет сохранить DataFrame в CSV-файл?
A) df.save_csv()
B) df.to_csv()
C) df.write_csv()
D) df.export_csv()
Правильный ответ: B) df.to_csv() -
Какой из следующих методов выводит количество непустых значений в каждом столбце?
A) df.count()
B) df.shape
C) df.info()
D) df.describe()
Правильный ответ: A) df.count() -
Какой из следующих графиков используется для отслеживания изменений во времени?
A) Линейный график
B) Boxplot
C) Тепловая карта
D) Круговая диаграмма
Правильный ответ: A) Линейный график -
Какой из следующих показателей является мерой точности классификатора?
A) MSE
B) R²
C) Accuracy
D) MAE
Правильный ответ: C) Accuracy -
Какой из следующих инструментов не относится к Python-библиотекам анализа данных?
A) Scikit-learn
B) Excel
C) Numpy
D) Seaborn
Правильный ответ: B) Excel -
Какой из следующих методов позволяет применять функцию ко всем элементам Series?
A) map()
B) apply()
C) filter()
D) transform()
Правильный ответ: A) map() -
Какой из следующих терминов описывает разницу между фактическим и предсказанным значениями?
A) Ошибка модели
B) Точность
C) Полнота
D) F1-score
Правильный ответ: A) Ошибка модели -
Какой из следующих методов удаляет дубликаты в DataFrame?
A) df.remove_duplicates()
B) df.drop_duplicates()
C) df.delete_duplicates()
D) df.clear_duplicates()
Правильный ответ: B) df.drop_duplicates() -
Какой из следующих графиков помогает выявлять выбросы?
A) Гистограмма
B) Boxplot
C) Линейный график
D) Столбчатая диаграмма
Правильный ответ: B) Boxplot -
Какой из следующих методов возвращает все уникальные пары значений двух столбцов?
A) df.groupby()
B) df.pivot_table()
C) df.crosstab()
D) pd.crosstab()
Правильный ответ: D) pd.crosstab() -
Какой из следующих методов используется для масштабирования данных?
A) LabelEncoder
B) StandardScaler
C) train_test_split
D) PCA
Правильный ответ: B) StandardScaler -
Какой из следующих показателей используется для оценки качества линейной регрессии?
A) ROC-AUC
B) R²
C) Accuracy
D) F1-score
Правильный ответ: B) R² -
Какой из следующих методов позволяет объединить два DataFrame по индексу?
A) merge()
B) join()
C) concat()
D) combine()
Правильный ответ: B) join() -
Какой из следующих показателей определяет долю истинноположительных результатов среди всех положительных предсказаний?
A) Recall
B) Precision
C) Accuracy
D) F1-score
Правильный ответ: B) Precision -
Какой из следующих методов позволяет сбросить индекс DataFrame?
A) df.reset_index()
B) df.reindex()
C) df.set_index()
D) df.drop_index()
Правильный ответ: A) df.reset_index() -
Какой из следующих параметров в plt.plot() задаёт цвет графика?
A) style
B) marker
C) color
D) linestyle
Правильный ответ: C) color
Экзаменационный билет №1
Теория:
- Что такое Data Science и какие задачи он решает?
- Какие библиотеки Python чаще всего используются для анализа данных и визуализации?
Ответы на теорию:
- Data Science — это междисциплинарная область, которая использует статистические и алгоритмические методы для извлечения знаний из структурированных и неструктурированных данных. Она решает такие задачи, как прогнозирование, классификация, кластеризация, выявление аномалий и анализ временных рядов.
- Для анализа данных чаще всего применяются Pandas и NumPy, для визуализации — Matplotlib, Seaborn и Plotly.
Практика:
Напишите код на Python, который загружает CSV-файл data.csv, выводит первые 5 строк, проверяет наличие пропущенных значений и строит гистограмму для столбца 'age'.
import pandas as pd
# Загрузка данных
df = pd.read_csv('data.csv')
# Вывод первых 5 строк
print(df.head())
# Проверка пропущенных значений
print(df.isnull().sum())
# Построение гистограммы по столбцу 'age'
df['age'].hist()
Экзаменационный билет №2
Теория:
- Что означают термины «медиана», «среднее значение» и «мода»?
- Какие типы графиков вы знаете и для чего они используются?
Ответы на теорию:
- Медиана — среднее значение в отсортированном наборе данных. Среднее значение — сумма всех чисел, делённая на их количество. Мода — наиболее часто встречающееся значение.
- Гистограмма (распределение), диаграмма рассеяния (взаимосвязь), столбчатая диаграмма (сравнение категорий), линейный график (временные ряды), boxplot (выбросы и диапазон).
Практика:
Дан DataFrame с колонками 'name' и 'score'. Напишите код, который фильтрует строки, где 'score' больше 75, и сохраняет результат в новый CSV-файл 'high_scores.csv'.
import pandas as pd
# Загрузка данных
df = pd.read_csv('scores.csv')
# Фильтрация данных
filtered_df = df[df['score'] > 75]
# Сохранение результата в новый файл
filtered_df.to_csv('high_scores.csv', index=False)
Экзаменационный билет №3
Теория:
- Что такое переобучение и как его можно избежать?
- Охарактеризуйте метрики точности и полноты в задачах классификации.
Ответы на теорию:
- Переобучение — это когда модель идеально подстраивается под тренировочные данные, но плохо обобщает на новых. Его можно избежать через регуляризацию, использование валидационной выборки, упрощение модели или увеличение количества данных.
- Точность (precision) — доля правильно предсказанных положительных объектов среди всех предсказанных положительных. Полнота (recall) — доля правильно предсказанных положительных объектов среди всех реальных положительных.
Практика:
Используя библиотеку Matplotlib, постройте линейный график зависимости продаж от времени. Данные находятся в файле 'sales.csv' с колонками 'date' и 'revenue'.
import pandas as pd
import matplotlib.pyplot as plt
# Загрузка данных
df = pd.read_csv('sales.csv')
# Преобразование даты в формат datetime
df['date'] = pd.to_datetime(df['date'])
# Построение линейного графика
plt.plot(df['date'], df['revenue'])
plt.xlabel('Дата')
plt.ylabel('Выручка')
plt.title('Зависимость выручки от времени')
plt.show()
Экзаменационный билет №4
Теория:
- Что представляет собой процесс очистки данных?
- Что означает параметр random_state при разделении данных на обучающую и тестовую выборки?
Ответы на теорию:
- Очистка данных — это этап подготовки, включающий удаление дубликатов, заполнение или удаление пропусков, коррекцию ошибок и преобразование типов данных.
- Параметр random_state контролирует случайное разбиение данных, обеспечивая воспроизводимость результатов при повторных запусках.
Практика:
Напишите функцию на Python, которая принимает список чисел и возвращает среднее значение и медиану.
def mean_and_median(numbers):
mean = sum(numbers) / len(numbers)
sorted_numbers = sorted(numbers)
n = len(sorted_numbers)
if n % 2 == 0:
median = (sorted_numbers[n//2 - 1] + sorted_numbers[n//2]) / 2
else:
median = sorted_numbers[n//2]
return mean, median
# Пример использования
nums = [10, 20, 30, 40, 50]
mean, median = mean_and_median(nums)
print(f"Среднее: {mean}, Медиана: {median}")
Экзаменационный билет №5
Теория:
- Что такое кросс-валидация и зачем она нужна?
- Что такое One-Hot Encoding и почему он важен в машинном обучении?
Ответы на теорию:
- Кросс-валидация — это метод оценки качества модели, при котором данные разбиваются на несколько частей, и модель последовательно обучается и тестируется на разных комбинациях этих частей. Это позволяет более точно оценить её эффективность.
- One-Hot Encoding — это способ преобразования категориальных переменных в числовые значения путем создания новых бинарных столбцов. Он важен, потому что большинство моделей машинного обучения работают только с числовыми данными.
Практика:
Используя библиотеку Scikit-learn, выполните One-Hot кодирование для столбца 'color' в DataFrame, содержащего значения ['red', 'blue', 'green'].
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
# Исходные данные
data = pd.DataFrame({'color': ['red', 'blue', 'green', 'red', 'blue']})
# One-Hot кодирование
encoder = OneHotEncoder(sparse_output=False)
encoded = encoder.fit_transform(data[['color']])
encoded_df = pd.DataFrame(encoded, columns=encoder.get_feature_names_out(['color']))
# Объединение с исходным DataFrame
result = pd.concat([data, encoded_df], axis=1).drop(columns=['color'])
print(result)
Экзаменационный билет №6
Теория:
- Что такое корреляция и как она измеряется?
- Какие основные этапы работы с данными в Data Science?
Ответы на теорию:
- Корреляция — это статистическая мера, описывающая степень линейной зависимости между двумя переменными. Измеряется коэффициентом корреляции Пирсона, который принимает значения от -1 до 1.
- Основные этапы: сбор данных, очистка, преобразование, анализ, визуализация, интерпретация результатов.
Практика:
Напишите код на Python, который считывает CSV-файл data.csv, выводит размер таблицы, проверяет типы данных и строит тепловую карту корреляции для числовых столбцов.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Загрузка данных
df = pd.read_csv('data.csv')
# Вывод размера таблицы
print("Размер таблицы:", df.shape)
# Проверка типов данных
print("\nТипы данных:")
print(df.dtypes)
# Вычисление корреляционной матрицы
corr_matrix = df.corr()
# Построение тепловой карты
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title('Тепловая карта корреляции')
plt.show()
Экзаменационный билет №7
Теория:
- Что такое дисперсия и стандартное отклонение?
- Что такое переобучение и недообучение модели?
Ответы на теорию:
- Дисперсия — это среднеквадратическое отклонение значений от среднего. Стандартное отклонение — квадратный корень из дисперсии, используется для удобства интерпретации в тех же единицах измерения, что и данные.
- Переобучение — модель слишком сложная, идеально подстраивается под тренировочные данные, но плохо работает на новых. Недообучение — модель слишком простая и не способна уловить закономерности даже в тренировочных данных.
Практика:
Используя библиотеку Pandas, выполните группировку по столбцу 'category', вычислите среднее значение по 'price' и отсортируйте результаты по убыванию.
import pandas as pd
# Загрузка данных
df = pd.read_csv('products.csv')
# Группировка и вычисление среднего
grouped = df.groupby('category')['price'].mean().reset_index()
# Сортировка по убыванию
sorted_grouped = grouped.sort_values(by='price', ascending=False)
# Вывод результата
print(sorted_grouped)
Экзаменационный билет №8
Теория:
- Что такое метрики качества классификации и какие из них вы знаете?
- Какие задачи решает машинное обучение без учителя?
Ответы на теорию:
- Метрики качества классификации: accuracy, precision, recall, F1-score, ROC-AUC. Они помогают оценить эффективность модели в задачах распознавания классов.
- Машинное обучение без учителя решает задачи кластеризации (группировка данных), снижения размерности (PCA), анализа ассоциаций и обнаружения аномалий.
Практика:
Загрузите данные из файла data.csv, заполните пропущенные значения в столбце 'age' медианой и сохраните изменённый файл обратно в CSV.
import pandas as pd
# Загрузка данных
df = pd.read_csv('data.csv')
# Заполнение пропусков медианой
median_age = df['age'].median()
df['age'].fillna(median_age, inplace=True)
# Сохранение изменённого файла
df.to_csv('data_filled.csv', index=False)
Экзаменационный билет №9
Теория:
- Что такое регрессия и какие виды регрессии вы знаете?
- Что такое PCA и зачем он нужен?
Ответы на теорию:
- Регрессия — это задача предсказания непрерывных значений. Примеры: линейная регрессия, полиномиальная регрессия, логистическая регрессия (для классификации).
- PCA (Principal Component Analysis) — метод снижения размерности, позволяющий уменьшить количество признаков, сохранив при этом максимальную информацию. Используется для упрощения моделей и визуализации.
Практика:
Создайте DataFrame из словаря: {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 78]}. Добавьте новый столбец 'status', где значение будет "pass", если score >= 80, иначе "fail".
import pandas as pd
# Создание DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 78]}
df = pd.DataFrame(data)
# Добавление нового столбца
df['status'] = df['score'].apply(lambda x: 'pass' if x >= 80 else 'fail')
# Вывод результата
print(df)
Экзаменационный билет №10
Теория:
- Что такое точность (precision) и полнота (recall)?
- Что такое кластеризация и какой алгоритм вы можете назвать?
Ответы на теорию:
- Precision — доля правильно предсказанных положительных объектов среди всех предсказанных как положительные. Recall — доля правильно предсказанных положительных объектов среди всех реальных положительных.
- Кластеризация — это задача разделения данных на группы по схожести. Пример алгоритма: K-means.
Практика:
С помощью библиотеки Scikit-learn реализуйте алгоритм K-means для случайных данных из 2 кластеров. Визуализируйте результаты.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# Генерация данных
X, y = make_blobs(n_samples=300, centers=2, random_state=42)
# Обучение модели
kmeans = KMeans(n_clusters=2, random_state=42)
kmeans.fit(X)
labels = kmeans.predict(X)
# Визуализация
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=50)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', label='Центры')
plt.title('K-means кластеризация')
plt.legend()
plt.show()
Экзаменационный билет №11
Теория:
- Что такое визуализация данных и зачем она нужна?
- Какие типы переменных вы знаете?
Ответы на теорию:
- Визуализация данных — это представление информации в графической форме, чтобы сделать её более понятной, наглядной и доступной для анализа.
- Основные типы переменных: числовые (количественные) и категориальные (качественные). Числовые делятся на дискретные и непрерывные, а категориальные — на номинальные и порядковые.
Практика:
Напишите программу, которая создаёт DataFrame из списка словарей: [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': None}]. Замените пропущенные значения в столбце 'age' средним значением и выведите обновлённый DataFrame.
import pandas as pd
# Создание DataFrame
data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': None}]
df = pd.DataFrame(data)
# Вычисление среднего возраста без учета NaN
mean_age = df['age'].mean()
# Заполнение пропусков
df['age'].fillna(mean_age, inplace=True)
# Вывод результата
print(df)
Экзаменационный билет №12
Теория:
- Что такое матрица ошибок (confusion matrix)?
- Какие метрики используются в задачах регрессии?
Ответы на теорию:
- Матрица ошибок — это таблица, показывающая эффективность модели классификации, где указывается количество истинно положительных, ложноположительных, истинно отрицательных и ложноотрицательных результатов.
- Метрики регрессии: MAE (средняя абсолютная ошибка), MSE (среднеквадратичная ошибка), RMSE (корень из MSE), R² (коэффициент детерминации).
Практика:
Используя библиотеку Matplotlib, постройте столбчатую диаграмму количества студентов по специальностям из следующих данных:
majors = ['CS', 'Math', 'Physics', 'Biology']
students = [120, 80, 60, 90]
import matplotlib.pyplot as plt
# Данные
majors = ['CS', 'Math', 'Physics', 'Biology']
students = [120, 80, 60, 90]
# Построение диаграммы
plt.bar(majors, students, color='skyblue')
plt.xlabel('Специальности')
plt.ylabel('Количество студентов')
plt.title('Число студентов по специальностям')
plt.show()
Экзаменационный билет №13
Теория:
- Что такое точность модели и как она рассчитывается?
- Какие инструменты используются для работы с данными в Python?
Ответы на теорию:
- Точность (accuracy) — это доля правильных предсказаний среди всех сделанных. Рассчитывается как (TP + TN) / (TP + TN + FP + FN).
- Основные инструменты: Pandas (работа с данными), NumPy (математические операции), Matplotlib и Seaborn (визуализация), Scikit-learn (машинное обучение), Jupyter Notebook (интерактивная разработка).
Практика:
Создайте функцию calculate_mse, которая принимает два списка: реальных значений и предсказанных, и возвращает значение MSE (среднеквадратичную ошибку).
def calculate_mse(actual, predicted):
return sum((a - p)**2 for a, p in zip(actual, predicted)) / len(actual)
# Пример использования
actual_values = [3, -0.5, 2, 7]
predicted_values = [2.5, 0.0, 2, 8]
mse = calculate_mse(actual_values, predicted_values)
print(f"MSE: {mse}")
Экзаменационный билет №14
Теория:
- Что такое кластеризация и какие алгоритмы кластеризации вы знаете?
- Что такое PCA и для чего он используется?
Ответы на теорию:
- Кластеризация — это процесс группировки объектов по их схожести. Алгоритмы: K-means, DBSCAN, Hierarchical Clustering.
- PCA (Principal Component Analysis) — метод снижения размерности, позволяющий уменьшить число признаков, сохранив при этом максимальную информацию. Используется для упрощения моделей и визуализации.
Практика:
Загрузите данные из файла data.csv, найдите минимальное, максимальное и среднее значение в столбце 'salary' и выведите результаты.
import pandas as pd
# Загрузка данных
df = pd.read_csv('data.csv')
# Вычисление статистик
min_salary = df['salary'].min()
max_salary = df['salary'].max()
mean_salary = df['salary'].mean()
# Вывод результатов
print(f"Минимальная зарплата: {min_salary}")
print(f"Максимальная зарплата: {max_salary}")
print(f"Средняя зарплата: {mean_salary:.2f}")
Экзаменационный билет №15
Теория:
- Что такое машинное обучение и какие виды машинного обучения вы знаете?
- Что такое переобучение и как его можно определить?
Ответы на теорию:
- Машинное обучение — это область искусственного интеллекта, где модель обучается на данных. Виды: обучение с учителем (классификация, регрессия), без учителя (кластеризация, снижение размерности), обучение с подкреплением.
- Переобучение — это когда модель идеально работает на тренировочных данных, но плохо на тестовых. Определяется через сравнение метрик на тренировочной и тестовой выборках.
Практика:
Разделите данные на обучающую и тестовую выборки (80/20) с помощью train_test_split из Scikit-learn. Обучите модель линейной регрессии и выведите коэффициенты.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Загрузка данных
df = pd.read_csv('data.csv')
X = df[['feature']]
y = df['target']
# Разделение выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели
model = LinearRegression()
model.fit(X_train, y_train)
# Вывод коэффициентов
print(f"Коэффициент: {model.coef_[0]}")
print(f"Свободный член: {model.intercept_}")
Кейс №1: "Анализ продаж интернет-магазина"
Описание ситуации:
Вы начинающий специалист по анализу данных в небольшом интернет-магазине, который занимается продажей бытовой электроники. Перед вами поставлена задача — проанализировать данные о продажах за последние 6 месяцев и подготовить отчет для руководства.
Вам предоставлен датасет sales_data.csv, содержащий следующие столбцы:
Цель анализа:
- Выявить наиболее популярные категории товаров.
- Определить временные тренды (например, рост или падение продаж).
- Проанализировать географическое распределение продаж.
- Предложить рекомендации по улучшению стратегии продаж.
Предварительная инструкция:
В ходе анализа вы можете столкнуться с некоторыми проблемами в данных. Ваша задача — не просто выполнить визуализацию и расчеты, но и обнаружить скрытые ошибки , которые могут исказить выводы.
Задачи:
1. Подготовка данных
- Загрузите датасет.
- Проверьте типы данных.
- Обратите внимание на значения в столбце price_per_unit и total_price. Возможно ли, что они не согласованы?
Скрытая проблема №1: В некоторых строках значение total_price не равно произведению quantity * price_per_unit.
2. Анализ продаж
- Рассчитайте общую сумму выручки.
- Определите топ-5 самых продаваемых товаров.
- Постройте график ежемесячных продаж.
Скрытая проблема №2: Даты в столбце order_date имеют разные форматы (например, часть записей в формате DD/MM/YYYY, а часть — MM/DD/YYYY), что может привести к некорректной группировке по месяцам.
3. Географический анализ
- Посчитайте суммарную выручку по регионам.
- Постройте bar chart для сравнения регионов.
Скрытая проблема №3: В столбце region есть опечатки: например, «Москва», «москва», «Moscow», «Central». Это приводит к разделению одного региона на несколько категорий.
4. Временной анализ
- Преобразуйте order_date в корректный формат даты.
- Сгруппируйте данные по месяцам.
- Постройте линейный график продаж по времени.
Скрытая проблема №4: В данных есть заказы из будущего (даты больше текущей). Возможно, это аномалия ввода данных.
5. Рекомендации
На основе проведённого анализа:
- Оцените динамику продаж.
- Выявите регионы с наибольшим потенциалом.
- Определите, какие товары требуют усиленного продвижения.
- Предложите способы улучшения качества данных и повышения эффективности продаж.
Решение скрытых проблем:
Проблема №1:
Несоответствие между quantity * price_per_unit и total_price.
Решение:
- Проверить каждую строку на соответствие формулы.
- Исправить total_price, если обнаружены ошибки, или отметить такие строки как аномалии.
df['calculated_total'] = df['quantity'] * df['price_per_unit']
df[df['calculated_total'] != df['total_price']]
Проблема №2:
Несогласованный формат дат.
Решение:
- Привести все значения order_date к единому формату с помощью pd.to_datetime() и параметра errors='coerce'.
- Проверить наличие некорректных дат.
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
Проблема №3:
Опечатки в названиях регионов.
Решение:
- Привести все значения к нижнему регистру и унифицировать названия.
df['region'] = df['region'].str.lower().replace({
'москва': 'moscow',
'central': 'moscow',
'spb': 'st petersburg'
})
Проблема №4:
Даты из будущего.
Решение:
- Отфильтровать записи с датами больше текущей.
from datetime import datetime
current_time = datetime.now()
df = df[df['order_date'] <= current_time]
Итог:
Этот кейс позволяет студентам получить опыт работы с реальными данными, научиться выявлять и решать проблемы в датасете, а также делать осмысленные выводы. Он подходит для практической работы на начальном уровне обучения Data Science.
Кейс №2: "Анализ успеваемости студентов в онлайн-школе"
Описание ситуации:
Вы начинающий аналитик данных в онлайн-школе, которая предоставляет курсы по программированию для школьников и студентов. Перед вами поставлена задача — проанализировать данные об успеваемости учащихся на одном из курсов под названием "Python для начинающих" , чтобы помочь преподавателям улучшить учебный процесс и повысить вовлечённость.
Вам предоставлен датасет student_performance.csv, содержащий следующие столбцы:
Цель анализа:
- Понять, какая часть студентов завершает курс.
- Выявить факторы, влияющие на успешное завершение обучения.
- Определить слабые места в учебном процессе.
- Предложить рекомендации для повышения завершаемости курса.
Предварительная инструкция:
Этот кейс моделирует реальную ситуацию в образовательной среде. Данные могут содержать ошибки и аномалии, которые нужно найти и исправить перед началом анализа.
Задачи:
1. Подготовка данных
- Загрузите датасет.
- Проверьте типы данных.
- Обратите внимание на значения в столбцах avg_quiz_score и final_exam_score.
Скрытая проблема №1: В некоторых строках значения avg_quiz_score больше 100 или меньше 0, что противоречит описанию.
2. Анализ завершаемости курса
- Посчитайте процент студентов, завершивших курс.
- Сравните показатели завершаемости по полу и возрасту.
Скрытая проблема №2: В столбце completed есть значения вроде 'Да', 'да', 'Yes ', 'Y' вместо унифицированных 'Yes'/'No'.
3. Влияние активности на успех
- Постройте график зависимости между time_spent_hours и final_exam_score.
- Оцените корреляцию между количеством пройденных уроков и результатами экзамена.
Скрытая проблема №3: Время, потраченное на курс (time_spent_hours), содержит отрицательные значения и выбросы (например, 500 часов за курс).
4. Анализ успеваемости
- Найдите средний и медианный баллы по финальному экзамену.
- Определите долю студентов, набравших менее 50 баллов (неудовлетворительный результат).
- Постройте boxplot для сравнения результатов по возрасту.
Скрытая проблема №4: Некоторые студенты имеют значение final_exam_score, равное NaN, хотя при этом указано, что они завершили курс.
5. Рекомендации
На основе проведённого анализа:
- Какие группы студентов демонстрируют наилучшие/наихудшие результаты?
- Какие меры можно предложить для повышения вовлечённости и завершаемости?
- Как улучшить сбор и хранение данных?
Решение скрытых проблем:
Проблема №1:
Некорректные значения в столбцах avg_quiz_score и final_exam_score.
Решение:
Фильтрация и замена некорректных значений или их удаление.
df = df[(df['avg_quiz_score'] >= 0) & (df['avg_quiz_score'] <= 100)]
Проблема №2:
Несогласованность значений в completed.
Решение:
Привести все значения к единому формату.
df['completed'] = df['completed'].str.strip().str.lower().replace({
'да': 'yes',
'нет': 'no',
'y': 'yes',
'n': 'no'
})
Проблема №3:
Ошибка в значениях time_spent_hours.
Решение:
Удалить отрицательные значения и слишком большие выбросы.
df = df[df['time_spent_hours'] > 0]
df = df[df['time_spent_hours'] < 200] # Исключить выбросы
Проблема №4:
Отсутствуют значения в final_exam_score у завершивших курс.
Решение:
Заполнить пропуски средним значением или отметить как неопределённые.
mean_score = df['final_exam_score'].mean()
df['final_exam_score'].fillna(mean_score, inplace=True)
Итог:
Этот кейс позволяет студентам применить знания по очистке данных, анализу категориальных и числовых переменных, построению графиков и интерпретации результатов. Он особенно полезен для развития навыков критического мышления и подготовки аналитических выводов, понятных не только техническим специалистам, но и преподавателям и менеджерам.
Ролевая игра №1: "Data Team: Спасение проекта"
Цель игры:
Познакомить обучающихся с реальными процессами в команде Data Science, развить навыки работы в команде, принятия решений, анализа данных и презентации результатов. Игра также направлена на развитие soft skills: коммуникации, тайм-менеджмента и критического мышления.
Формат:
Командная ролевая игра с элементами симуляции реального проекта.
Продолжительность: 2–3 академических часа.
Участники: 4–6 человек в команде (можно провести как соревновательный формат между группами).
Сеттинг:
Вы — молодая стартап-команда в сфере онлайн-образования под названием "EduTech Future" , которая получает задание от инвестора подготовить аналитический отчет по эффективности курса "Python для начинающих". Инвестор угрожает закрыть финансирование, если не будет виден прогресс и рост вовлечённости студентов.
Вам нужно проанализировать данные, выявить проблемы, предложить решения и защитить свой отчет перед "инвестором" (преподавателем или другой группой).
Роли в команде:
- Project Manager – отвечает за планирование, распределение задач, контроль сроков.
- Data Analyst – занимается анализом данных, выявлением трендов, подготовкой графиков и сводных таблиц.
- Data Scientist – строит модели (например, прогнозирует завершаемость курса), оценивает корреляции и зависимости.
- Data Engineer – занимается очисткой данных, подготовкой датасета, проверяет целостность информации.
- Business Analyst / Presenter – формулирует выводы, готовит презентацию, представляет результаты инвестору.
Примечание: В зависимости от количества участников роли можно объединять или делегировать.
Этапы игры:
Этап 1: Получение задания (10 мин)
Команда получает бриф:
- Задача: проанализировать данные студентов и предложить меры по повышению завершаемости курса.
- Данные: предоставляется CSV-файл со скрытыми ошибками и аномалиями.
- Срок: ограниченное время на выполнение (например, 90 минут).
Этап 2: Анализ данных (30–40 мин)
Команда:
- Проверяет данные на пропуски, выбросы, некорректные значения.
- Выполняет первичный EDA (Exploratory Data Analysis).
- Готовит графики, вычисляет метрики.
Этап 3: Прогнозирование и рекомендации (20–30 мин)
Команда:
- Строит простую модель (например, классификацию «закончил/не закончил»).
- Формулирует гипотезы и рекомендации по улучшению курса.
Этап 4: Презентация результатов (10–15 мин)
Каждая команда представляет:
- Основные выводы.
- Проблемы, найденные в данных.
- Предложенные улучшения.
- Визуализации и прогнозы.
Инвестор (преподаватель или другая группа) задаёт вопросы и оценивает качество защиты.
Обучающие эффекты:
- Практика работы с реальными данными.
- Развитие навыков EDA и базового машинного обучения.
- Опыт работы в команде и распределения ролей.
- Написание отчета и презентации результатов.
- Развитие soft skills: коммуникация, лидерство, работа под давлением времени.
Возможные проблемы и вызовы во время игры:
Материалы для игры:
- CSV-файл с данными (например, student_performance.csv из кейса №2).
- Шаблон презентации.
- Бланк оценки от "инвестора".
- Таблица ролей и обязанностей.
Итог:
Эта ролевая игра даёт возможность школьникам и студентам на практике прочувствовать, как выглядит реальная работа в области Data Science. Она помогает понять, что успех проекта зависит не только от технических навыков, но и от взаимодействия внутри команды, качества данных и способности доносить свои идеи до заказчика.
Ролевая игра №2: "Data Crisis: Защита от кибератак"
Цель игры:
Научить обучающихся анализировать аномалии в данных, выявлять признаки киберугроз и принимать решения на основе анализа. Игра также направлена на развитие навыков командной работы, логического мышления и быстрого принятия решений в условиях стресса.
Формат:
Симуляционная ролевая игра с элементами escape-комнаты и защиты информационных систем.
Продолжительность: 2–3 академических часа.
Участники: 4–6 человек в команде (можно провести в формате соревнования между группами).
Сеттинг:
Вы — молодые специалисты в составе отдела кибербезопасности крупной компании "TechSecure" , которая внедряет новые технологии хранения данных. Ночью система зафиксировала подозрительную активность: необычный трафик, множественные входы с неизвестных IP-адресов и резкое увеличение нагрузки на серверы.
Ваша задача — как можно скорее проанализировать предоставленные логи, выявить возможные угрозы и предложить меры по их устранению, пока не произошла полная утечка данных.
Роли в команде:
- Координатор (Team Lead) – управляет работой команды, распределяет задачи, контролирует время.
- Аналитик безопасности (Security Analyst) – изучает логи, выявляет аномалии, оценивает уровень угрозы.
- Data Scientist – строит модели поведения пользователей, определяет паттерны атак.
- Инженер данных (Data Engineer) – очищает данные, готовит датасет для анализа, проверяет целостность информации.
- Специалист по коммуникациям (PR/Reporter) – готовит отчет и объясняет технические выводы на понятном языке руководству.
Примечание: При малом количестве участников роли могут совмещаться.
Этапы игры:
Этап 1: Получение задания и брифинг (10 мин)
Команда получает:
- Бриф от руководителя: «Система сигнализирует о возможной DDoS-атаке или попытке взлома».
- Данные: файл security_logs.csv с логами запросов, содержащий информацию о времени, IP-адресах, типах запросов, длительности сессий и статусах ответа.
- Задача: выявить аномалии, классифицировать тип угрозы, предложить действия для защиты системы.
Этап 2: Анализ логов и поиск аномалий (40 мин)
Команда:
- Проверяет данные на наличие выбросов (например, большое количество запросов с одного IP).
- Строит временные графики активности.
- Выделяет потенциально опасные IP и события.
- Применяет простую классификацию (например, пороговое значение количества запросов в минуту).
Этап 3: Принятие решений и защита системы (20 мин)
Команда:
- Формулирует гипотезу: что именно происходит (DDoS, brute-force атака, SQL-injection и т.д.).
- Предлагает конкретные меры: блокировка IP, усиление авторизации, ограничение частоты запросов и т.д.
- Подготавливает короткий отчет и презентацию.
Этап 4: Отчет перед руководством (10–15 мин)
Каждая команда представляет:
- Обнаруженные угрозы.
- Какие методы анализа использовались.
- Какие действия рекомендуются.
- Как предотвратить подобные инциденты в будущем.
Обучающие эффекты:
- Опыт анализа реальных логов и выявления аномалий.
- Развитие навыков работы с временными данными и категориальными переменными.
- Понимание принципов кибербезопасности через призму анализа данных.
- Работа в условиях ограниченного времени и давления.
- Умение доносить технические выводы до неспециалистов.
Возможные проблемы и вызовы во время игры:
Материалы для игры:
- CSV-файл с логами (security_logs.csv) — может содержать такие поля, как timestamp, ip_address, request_type, status_code, user_agent, duration.
- Шаблон отчета.
- Краткая информация о типах кибератак.
- Примеры визуализаций и кода (по желанию).
Итог:
Эта ролевая игра помогает участникам применить свои знания Data Science в нестандартной и напряжённой ситуации, развивает аналитическое мышление и показывает, как данные могут быть использованы для защиты бизнеса. Она отлично подходит как практическое занятие по анализу аномалий и работе с реальными логами.
Ролевая игра №3: "Data City: Умный город будущего"
Цель игры:
Научить обучающихся применять навыки анализа данных для решения реальных задач городской инфраструктуры, таких как транспортные заторы, потребление энергии и экологическая обстановка. Развить понимание междисциплинарности Data Science и его роли в устойчивом развитии городов.
Формат:
Командная симуляционная ролевая игра с элементами проектного обучения и кейс-чемпионата.
Продолжительность: 2–3 академических часа.
Участники: 4–6 человек в команде (возможен групповой формат соревнования).
Сеттинг:
Вы — молодые специалисты из разных областей, приглашённые в проектную команду города "Smartopolis" , который стремится стать одним из первых умных городов в стране. Город столкнулся с рядом проблем: пробки, перегруженные дороги, рост потребления электроэнергии и снижение качества воздуха.
Ваша задача — на основе открытых данных проанализировать ситуацию, предложить решения и представить стратегию развития умного города перед комиссией экспертов.
Роли в команде:
- Project Manager – отвечает за планирование, распределение задач, контроль сроков.
- Transportation Analyst – анализирует данные о пробках, маршрутах общественного транспорта и пешеходной активности.
- Environmental Analyst – исследует уровень загрязнения, температурные аномалии и другие экологические показатели.
- Energy Analyst – анализирует данные по потреблению энергии и предлагает меры по оптимизации.
- Data Visualizer / Presenter – готовит визуализации и презентацию, объясняет выводы экспертам.
Примечание: При необходимости роли могут совмещаться.
Этапы игры:
Этап 1: Брифинг от администрации города (10 мин)
Команда получает:
- Задачу: проанализировать состояние ключевых систем города и предложить цифровое решение.
- Данные: набор CSV-файлов с информацией о:
- дорожном трафике (traffic_data.csv)
- уровне загрязнения (air_quality.csv)
- потреблении энергии (energy_usage.csv)
- Срок: ограниченное время на выполнение (например, 90 минут)
Этап 2: Анализ данных (40 мин)
Каждый специалист работает со своей частью:
- Трафик: выявление "горячих точек", времени максимальных пробок
- Экология: корреляция между загрязнением и другими факторами
- Энергия: выявление пиков потребления и возможностей экономии
Этап 3: Разработка решений (20 мин)
Команда:
- Формулирует гипотезы: где установить новые датчики, как оптимизировать светофоры, какие районы нуждаются в озеленении.
- Предлагает конкретные меры: внедрение ИИ для управления светофорами, переход на светодиодное освещение и т.п.
Этап 4: Презентация решений перед комиссией (10–15 мин)
Каждая команда представляет:
- Основные проблемы, выявленные в данных.
- Визуализации и метрики.
- Предложенные решения.
- Как эти меры повлияют на жизнь горожан.
Обучающие эффекты:
- Практика работы с разнообразными типами данных.
- Навыки междисциплинарного подхода и системного мышления.
- Опыт принятия решений на основе данных.
- Развитие soft skills: работа в команде, презентация, защита точки зрения.
- Понимание роли Data Science в реальной жизни и устойчивом развитии.
Возможные проблемы и вызовы во время игры:
Материалы для игры:
- traffic_data.csv – данные о трафике: время, улица, скорость, плотность.
- air_quality.csv – уровень загрязнения, температура, влажность, дата.
- energy_usage.csv – потребление энергии по районам города.
- Шаблон презентации и отчета.
- Краткая информация о технологиях Smart City.
Итог:
Эта ролевая игра позволяет участникам увидеть, как данные могут быть использованы не только в бизнесе, но и в интересах общества и устойчивого развития. Она помогает развить аналитическое мышление, научиться работать с разными типами данных и предлагать решения, имеющие реальное значение для жизни людей.
Ролевая игра №4: "Data Detective: Тайна пропавших заказов"
Цель игры:
Развить у обучающихся навыки анализа данных, выявления аномалий и принятия решений на основе логического вывода. Игра также направлена на развитие критического мышления, внимательности к деталям и командной работы в условиях неопределенности.
Формат:
Командная ролевая игра с элементами детективного расследования и анализа данных.
Продолжительность: 2 академических часа.
Участники: 3–5 человек в команде (можно провести как соревнование между группами).
Сеттинг:
Вы — молодые аналитики в компании "DeliveryTech" , которая занимается доставкой еды по городу. Недавно начались жалобы от клиентов: некоторые заказы не доходят, хотя система показывает их как "доставленные". Это серьёзно влияет на репутацию компании и уровень доверия клиентов.
Вам предстоит разобраться в ситуации: кто виноват — курьеры, система доставки или кто-то намеренно мешает работе? Вам предоставлены данные о последних 1000 заказах и несколько подозрительных фактов.
Роли в команде:
- Главный детектив (Team Lead) – руководит расследованием, координирует работу, принимает финальное решение.
- Аналитик данных (Data Analyst) – работает с датасетом, ищет аномалии, строит графики и сводные таблицы.
- Технический специалист (Data Engineer) – очищает данные, проверяет целостность, формирует выборку для анализа.
- Эксперт по поведению (Behaviour Analyst) – изучает поведение курьеров, клиентов и времени доставки, выявляет паттерны.
- Офицер связи (Communications Officer) – готовит финальный отчет и объясняет выводы, как будто представляет дело в головном офисе.
Примечание: При меньшем количестве участников роли можно совмещать.
Этапы игры:
Этап 1: Получение задания и брифинг (10 мин)
Команда получает:
- Описание проблемы: «Заказы помечаются как доставленные, но клиенты их не получают».
- Данные: orders.csv с информацией о:
- order_id
- customer_name
- delivery_address
- courier_name
- order_time
- expected_delivery_time
- actual_delivery_time
- status (delivered / not delivered / unknown)
- rating (от 1 до 5, если есть)
- Задача: найти закономерности, выявить причины и определить, кто или что стоит за исчезновением заказов.
Этап 2: Анализ данных (40 мин)
Команда:
- Проверяет данные на наличие аномалий (например, статус "delivered", но нет actual_delivery_time).
- Сравнивает ожидаемое и реальное время доставки.
- Выявляет курьеров с наибольшим числом жалоб или отклонений.
- Строит графики и диаграммы для выявления паттернов.
Этап 3: Формулировка гипотез (20 мин)
Команда:
- Предлагает возможные причины: технические ошибки, человеческий фактор, мошенничество.
- Определяет ключевые подозреваемые группы: курьеры, система, клиенты.
- Формулирует рекомендации по исправлению ситуации.
Этап 4: Презентация дела перед руководством (10–15 мин)
Каждая команда:
- Рассказывает, как они нашли проблему.
- Показывает графики и анализ.
- Объясняет, почему произошли пропажи.
- Предлагает конкретные действия для устранения проблемы.
Обучающие эффекты:
- Развитие навыков анализа и интерпретации данных.
- Умение находить скрытые закономерности и аномалии.
- Работа с реальными сценариями бизнес-задач.
- Развитие soft skills: логическое мышление, презентация, работа в команде.
- Понимание важности качества данных в принятии решений.
Возможные проблемы и вызовы во время игры:
Материалы для игры:
- CSV-файл с данными (orders.csv) — содержит реалистичные аномалии.
- Шаблон отчета детектива.
- Примеры кода для анализа и визуализации.
- Список вопросов-подсказок для продвижения по делу.
Итог:
Эта ролевая игра предлагает уникальный подход к обучению Data Science через призму детективного расследования. Она помогает развить аналитический подход, внимание к деталям и учит видеть за числами реальные события. Подходит как для школьников, так и для студентов начального уровня обучения.
Интеллект-карта №1: "Путь начинающего Data Scientist"
Центральная идея:
Data Scientist — это профессия будущего, объединяющая программирование, анализ данных и статистику
1. Основы программирования
- Python: синтаксис, переменные, циклы, функции
- Работа с Jupyter Notebook
- Ошибки и отладка кода
2. Работа с данными
- Загрузка и сохранение данных (CSV, Excel)
- Типы данных
- Очистка данных: пропуски, дубликаты, выбросы
- Преобразование данных: кодирование, масштабирование
3. Анализ данных
- Среднее, медиана, мода
- Дисперсия, стандартное отклонение
- Корреляция
- Агрегация и группировка данных
4. Визуализация
- Гистограммы, графики рассеяния, boxplot
- Библиотеки: matplotlib, seaborn
- Построение диаграмм по данным
5. Простейшие модели
- Линейная регрессия
- Классификация на примере KNN
- Метрики качества: accuracy, precision, recall
6. Проектная работа
- Формулировка задачи
- Подготовка данных
- Анализ и визуализация
- Выводы и презентация
Интеллект-карта №2: "Технические навыки Data Scientist"
Центральная идея:
Ключевые инструменты и технологии для анализа данных
1. Язык программирования
- Python
- Основы программирования
- Условия, циклы, функции
2. Библиотеки Python
- NumPy : работа с массивами
- Pandas : анализ табличных данных
- Matplotlib / Seaborn : визуализация
- Scikit-learn : машинное обучение
3. Работа с данными
- Импорт/экспорт файлов
- Обработка пропусков и ошибок
- Нормализация и кодирование признаков
4. Инструменты разработки
- Jupyter Notebook
- Google Colab
- GitHub (базовое использование)
5. Алгоритмы ML (начальный уровень)
- Линейная регрессия
- K ближайших соседей (KNN)
- Дерево решений (визуализация)
6. Оценка моделей
- MAE, MSE, R²
- Accuracy, Precision, Recall
- Confusion matrix
Интеллект-карта №3: "Процесс работы Data Scientist"
Центральная идея:
От данных к выводам: этапы типичного проекта
1. Определение задачи
- Цель анализа
- Что нужно исследовать
- Какие данные доступны
2. Сбор данных
- Открытые источники
- CSV, Excel, базы данных
- API (на начальном уровне — примеры)
3. Очистка данных
- Удаление дубликатов
- Заполнение пропусков
- Обработка выбросов
4. Исследовательский анализ данных (EDA)
- Статистика: среднее, медиана, корреляция
- Визуализация распределений и связей
- Выявление аномалий
5. Подготовка данных к моделированию
- Создание новых признаков
- Нормализация, кодирование
- Разделение на train/test выборки
6. Построение модели
- Выбор алгоритма
- Обучение
- Оценка качества
7. Интерпретация результатов
- Формулировка выводов
- Рекомендации
- Подготовка презентации
1. Учебник: «Python для анализа данных» — Wes McKinney
- Год издания: 2022 (2-е издание)
- Издательство: ДМК Пресс
- Краткое описание:
Официальный гайд по библиотеке Pandas от её создателя. Отлично подходит для освоения работы с табличными данными, очистки и визуализации. - Почему полезен: Основа для начального уровня, содержит практические примеры.
2. Учебное пособие: «Анализ данных с помощью Python. Современный инструментарий» — Jake VanderPlas
- Год издания: 2020
- Издательство: Питер
- Краткое описание:
Рассказывает о NumPy, Matplotlib, Scikit-learn и других инструментах. Много примеров кода и задач. - Почему полезен: Подходит как дидактическое пособие с упражнениями.
3. Задачник: «Практикум по анализу данных на Python» — коллектив авторов (Stepik)
- Год издания: 2023
- Формат: онлайн-курс + PDF
- Краткое описание:
Сборник задач по работе с данными, визуализации и простым моделям машинного обучения. - Почему полезен: Идеален для тренировки навыков через практику.
4. Хрестоматия: «Основы Data Science. Сборник статей для школьников и студентов» — редактор А. Н. Тихонов
- Год издания: 2021
- Издательство: Бином
- Краткое описание:
Статьи о профессии Data Scientist, этике данных, истории развития машинного обучения и примерах из жизни. - Почему полезен: Расширяет кругозор и формирует целостное представление о профессии.
5. Методические рекомендации: «Методика преподавания основ Data Science в школе и ВУЗе» — Е. С. Кузнецова
- Год издания: 2022
- Формат: электронный/печатный
- Краткое описание:
Методическое руководство для педагогов: как построить курс, использовать проектный подход, оценивать знания. - Почему полезен: Для преподавателей и методистов, желающих внедрять курс в учебный процесс.
-
«Data Science с нуля: Путь от любопытства к данным»
Освойте основы анализа данных, визуализации и машинного обучения с помощью Python — без предварительных знаний. -
«Юный Дата-саентист: Исследуем мир через данные»
Курс для школьников, который научит видеть закономерности, читать графики и решать задачи с реальными датасетами. -
«Python и данные: Первые шаги в профессии Data Scientist»
Изучите Python, библиотеки Pandas и Matplotlib и создайте свой первый проект по анализу данных. -
«Данные вокруг нас: Введение в Data Science для подростков»
Узнайте, как данные помогают принимать решения в бизнесе, науке и повседневной жизни. -
«Мир данных: Научись думать как аналитик»
Развивайте логическое мышление и учитесь работать с информацией, которая встречается каждый день. -
«Data School: От теории к практике за 8 недель»
Интенсивный курс, который поможет пройти путь от изучения Python до создания собственного проекта. -
«Аналитика для начинающих: Как превратить числа в смысл»
Научитесь находить ответы в данных, строить графики и делать выводы, понятные даже неспециалистам. -
«Будущее начинается с данных»
Программа для школьников и студентов, раскрывающая возможности профессии Data Scientist. -
«Data Explorer: Первый курс по анализу данных»
Откройте для себя мир данных через интересные кейсы, игры и практические задания. -
«Как устроены данные? Начальный курс Data Science»
Поймите, что такое таблицы, графики, корреляция и почему данные так важны в современном мире. -
«Старт в Data Science: Онлайн-курс для школьников»
Образовательная программа с интерактивными заданиями, проектами и обратной связью от преподавателей. -
«Data Science Junior: Для тех, кто хочет всё знать»
Курс, разработанный специально для подростков, желающих освоить одну из самых востребованных профессий. -
«Цифры говорят: Введение в анализ данных»
Научитесь слушать, что говорят данные, и использовать их для принятия решений. -
«От нуля до аналитика за 2 месяца»
Компактный, интенсивный курс для новичков, которые хотят сделать первый шаг в профессии. -
«Data для всех: Лёгкий старт в науку о данных»
Без сложной математики и программирования — просто и доступно о том, как работать с информацией. -
«Профессия будущего: Data Scientist с нуля»
Курс, дающий базовое представление о профессии и первые практические навыки. -
«Юный учёный данных: Учимся анализировать информацию»
Интересные задачи, мини-проекты и работа с реальными датасетами для школьников. -
«Data Science для школьников: Все секреты профессии»
Подробное введение в профессию с практикой в Python, визуализацией и простыми моделями. -
«Школа данных: Подготовка к профессии Data Scientist»
Программа подготовки для старшеклассников и студентов первого курса. -
«Data-наука своими руками: Курс для начинающих»
Творческий подход к работе с данными: от сбора информации до презентации результатов. -
«Как стать специалистом по данным? Базовый курс»
Пошаговая программа, которая поможет начать путь в Data Science с нуля. -
«Основы Data Science: Практический курс для школьников»
Ориентирован на развитие навыков мышления через работу с цифрами, графиками и проектами. -
«Data Science для детей и подростков: Все самое важное»
Увлекательный курс, объясняющий, как данные влияют на нашу жизнь и как с ними работать. -
«Первый курс по данным: Для юных исследователей»
Подходит для школьников, интересующихся наукой, технологиями и аналитикой. -
«Data Start: С чего начинается наука о данных»
Краткий и ясный курс, дающий базовые знания и навыки для дальнейшего развития в области Data Science.
Нет элементов для просмотра