IIS_2023_1/podkorytova_yulia_lab_3
2023-11-02 20:02:38 +04:00
..
dataset.csv podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00
lr3.py podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00
README.md podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00
result1.JPG podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00
result2.JPG podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00
titanic.csv podkorytova_yulia_lab_3 2023-11-02 20:02:38 +04:00

Лабораторная работа 3. Деревья решений

Задание на лабораторную:

Часть 1. По данным о пассажирах Титаника решите задачу классификации (с помощью дерева решений), в которой по различным характеристикам пассажиров требуется найти у выживших пассажиров два наиболее важных признака из трех рассматриваемых (по варианту).

Вариант 20. Pclass, Parch, Fare

Часть 2. Решите с помощью библиотечной реализации дерева решений задачу из лабораторной работы «Веб-сервис «Дерево решений» по предмету «Методы искусственного интеллекта» на 99% ваших данных. Проверьте работу модели на оставшемся проценте, сделайте вывод.


Как запустить лабораторную работу:

Для запуска лабораторной работы необходимо открыть файл lr3.py, нажать на ПКМ и в выпадающем списке выбрать опцию "Run".


Технологии:

NumPy (Numerical Python) - это библиотека для научных вычислений в Python, которая обеспечивает эффективные вычисления и манипуляции с данными.

Pandas - это библиотека на языке Python, которая предоставляет удобные и эффективные инструменты для обработки и анализа данных. Она предоставляет высокоуровневые структуры данных, такие как DataFrame, которые позволяют легко и гибко работать с табличными данными.

Scikit-learn (Sklearn) - это библиотека для языка программирования Python, которая предоставляет инструменты для разработки и применения различных алгоритмов машинного обучения, включая классификацию, регрессию, кластеризацию, снижение размерности и многое другое. Scikit-learn также предлагает функции для предобработки данных, оценки моделей и выбора наилучших параметров.


Что делает лабораторная работа:

В первой части лабораторной работе загружается выборка из файла titanic.csv с помощью пакета Pandas, пустые значения убираются из выборки. Далее в выборку отбираются 3 признака (Pclass, Parch, Fare) и определяется целевая переменная (Survived). После обучается решающее дерево классификации с параметром random_state=241 и остальными параметрами по умолчанию. Результатом первой части лабораторной работы являются определение двух наиболее важных признаков у выживших пассажиров.

Во второй части лабораторной работе загружается выборка из файла dataset.csv с помощью пакета Pandas, тип устройства и уровень гибкости приводятся в числовому виду. Далее в выборку отбираются 2 признака (Age и Device) и определяется целевая переменная (Flexibility Level). После данные разделяются на обучающие и тестовые выборки, создается и обучается дерево регрессии с параметрами по умолчанию. Результатом второй части лабораторной работы являются определение зависимости уровня гибкости от возраста и типа устройства и оценка точности модели.


Пример выходных данных:

Часть 1: выводятся первые 5 записей таблицы со столбцами по варианту, важности признаков и 2 наиболее важных признака из трех.

Часть 2: выводятся первые 5 записей таблицы со столбцами по варианту, важности признаков, 2 наиболее важных признака из трех и средняя квадратичная ошибка.


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

По результатам второй части лабораторной можно сказать, что уровень гибкости праткически одинаково зависит как от типа устройства, с которого человек работает, так и от возраста учащегося. Device оказался более важным признаком, чем Age, но стоит сделать замечание, тип устройства и уровень гибкости были преобразованы к числовому виду, характер данных был искажен, так как ранее объекты столбцов не могли быть математически сравнимы между собой, а после преобразований эта характеристика у них появилась. Посчитанная среднеквадратичная ошибка находится ближе к 0, чем к 1, это говорит о высоком качестве модели.