Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №6

.docx
Скачиваний:
0
Добавлен:
29.09.2026
Размер:
1 Мб
Скачать
☆

Министерство цифрового развития связи и массовых коммуникаций

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ»

Кафедра «Математическая кибернетика и информационные технологии»

Отчёт по лабораторной работе №6

по дисциплине «Большие данные»

Выполнил: студент группы БСТ2104

Ягудин Р.Р.

Проверила: Тимофеева А.И.

Москва, 2023 г.

Ход лабораторной работы:

На рисунке 1 представлена команда для установки библиотеки PySpark

Рисунок 1 – Команда для установки библиотеки PySpark

На рисунке 2 представлены команды для построения и обучения модели машинного обучения

Рисунок 2 – Команды для построения и обучения модели машинного обучения

Пояснение команд:

  1. from pyspark.sql import SparkSession: создаётся сессия Spark, которая является точкой входа для использования PySpark. SparkSession предоставляет API для создания DataFrame, который является основным объектом для работы с данными в PySpark.

  2. from pyspark.ml import Pipeline: создаётся Pipeline (API в PySpark для построения и последовательного выполнения цепочки этапов обработки данных и обучения модели)

  3. from pyspark.ml.feature import StringIndexer: создаётся StringIndexer, который используется для преобразования строковых данных в числовые.

  4. from pyspark.ml.feature import VectorAssembler: создаётся VectorAssembler, который используется для объединения нескольких столбцов в один столбец вектора.

  5. from pyspark.ml.evaluation import MulticlassClassificationEvaluator: создаётся MulticlassClassificationEvaluator, который предоставляет инструменты для оценки производительности модели

На рисунке 3 представлена команда для создания Spark сессии

Рисунок 3 – Команда для создания Spark сессии

На рисунке 4 представлено создание переменной spark, который присваивается объект SparkSession

Рисунок 4 – Создание переменной spark

На рисунках 5 и 6 представлены коды и выводы результатов заданий

Рисунок 5 – Код и вывод результата задания

Рисунок 6 – Код и вывод результата задания

На рисунке 7 представлена работа с категориальными признаками

Рисунок 7 – Код работы с категориальными признаками

На рисунке 8 представлено применение новых столбцов к датафрейму

Рисунок 8 – Применение новых столбцов к датафрейму

На рисунках 9 и 10 представлены коды и выводы результатов заданий

Рисунок 9 – Код и вывод результата задания

Рисунок 10 – Код и вывод результата задания

На рисунке 11 представлена команда для формирования списка признаков, которые будут использоваться в качестве фич

Рисунок 11 – Команда для формирования списка признаков

На рисунке 12 представлены команды для создания VectorAssembler и его применение для объединения нескольких столбцов (features) в один столбец-вектор, на рисунке 13 представлен результат выполнения

Рисунок 12 – Команды для создания VectorAssembler и его применение для объединения нескольких столбцов (features) в один столбец-вектор

Рисунок 13 – Результат выполнения команд

На рисунке 14 представлена команда для формирования тренировочного и тестового датасета, на рисунке 15 представлен результат выполнения

Рисунок 14 – Формирование тренировочного и тестового датасета

Рисунок 15 – Результат выполнения команды

На рисунке 16 представлена команда для создания объекта evaluator с определёнными параметрами

Рисунок 16 – Команда для создания объекта evaluator с определёнными параметрами

На рисунке 17 представлен код, связанный с LogisticRegression (модель машинного обучения, которая пытается предсказать, выжил ли пассажир или нет на основе данных о том, кто выжил в обучающем наборе), использование модели для предсказания на тестовом наборе и вывод результата

Рисунок 17 – Код работы модели LogisticRegression, использование модели для предсказания на тестовом наборе и вывод результата

На рисунке 18 представлено вычисление точности модели LogisticRegression с использованием evaluator

Рисунок 18 – Вычисление точности модели LogisticRegression с использованием evaluator

На рисунке 19 представлен код, связанный с DecisionTreeClassifier (модель машинного обучения, способная выполнять мультиклассовую классификацию набора данных) и вывод результата

Рисунок 19 – Код работы модели DecisionTreeClassifier и вывод результата

На рисунке 20 представлено вычисление точности модели DecisionTreeClassifier с использованием evaluator

Рисунок 20 – Вычисление точности модели DecisionTreeClassifier с использованием evaluator

На рисунке 21 представлен код, связанный с RandomForestClassifier (модель машинного обучения, основанная на алгоритме RandomForest, основная идея которого заключается в построении нескольких решающих деревьев и объединении их прогнозов для получения более стабильного и точного результата), вывод результата и вычисление точности модели RandomForestClassifier с использованием evaluator

Рисунок 21 – Код работы модели RandomForestClassifier, вывод результата и вычисление точности с использованием evaluator

На рисунке 22 представлен код, связанный с Gradient-boosted tree classifier (модель машинного обучения, основная идея которой заключается в построении последовательности деревьев, где каждое новое дерево исправляет ошибки предыдущей композиции), вывод результата и вычисление точности модели Gradient-boosted tree classifier с использованием evaluator

Рисунок 22 – Код работы модели Gradient-boosted tree classifier, вывод результата и вычисление точности с использованием evaluator

На рисунке 23 представлено сохранение модели RandomForest и подключение нужного класса для её загрузки

Рисунок 23 – Сохранение и загрузка модели RandomForest

На рисунках 24-28 представлена работа с Pipeline (инструмент, позволяющий объединить последовательность этапов обработки данных и моделирования для эффективного и чистого выполнения многокомпонентных задач машинного обучения)

Рисунок 24 – Импортирование модуля PipelineModel, считывание данные из файла train.parquet и вывод результата

Рисунок 25 – Разбиение DataFrame titanic_df на тренировочный (80%) и тестовый (20%) наборы данных, вывод результата, преобразования двух столбцов в числовой формат, объединение столбцов в один вектор и создание Pipeline

Рисунок 26 – Получение обученной модели, проверка её типа, сохранение с перезаписью, загрузка, применение и вывод результата

Рисунок 27 – Получение обученной модели, проверка её типа, сохранение с перезаписью, загрузка, применение и вывод результата

Рисунок 28 – Код работы модели Pipeline для градиентного бустинга, вывод результата и вычисление точности с использованием evaluator

9