IIS_2023_1/alexandrov_dmitrii_lab_3/readme.md

6.1 KiB
Raw Permalink Blame History

Задание

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

Вариант 1: Pclass,Name,Sex.

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

Запуск программы

Файл lab3.py содержит и запускает программу, аргументов и настройки вроде не требует.

Описание программы

Программа состоит из двух частей:

  1. Она считывает файл с данными по пассажирам "Титаника", признаки "класс", "имя", "пол" и запись о том, выжил ли пассажир. Данные предобрабатываются: запись о поле кодируется (ж - 0, м - 1), запись об имени кодируется (Tfidf). После этого дерево решений тренируется на данных и результаты выводятся в консоль.
  2. Она считывает файл с данными сбербанка по рынку недвижимости. Далее данные предобрабатываются: названия районов кодируется (Tfidf), нечисловые записи цифровизируются, запоняются нулевые записи, записи подразделяются на классы. После этого на данных обучается дерево решений и результат выводится в консоль и на форму. Поскольку признаков слишком много, выводимые результаты ограничены восемью наиболее значимыми.

Результаты тестирования

По результатам тестирования, можно сказать следующее:

По первой задаче:

  • Дерево решений показывает неплохие результаты, около 70-75%.
  • Однако оценка важности признаков даёт абсолютно неверный результат: наиболее значимым признаком назначается имя пассажира. Это значит, что кодировка не подходит для правильной обработки данных. Возможные решения: обнуление или исключение признака как аналитически очевидно незначимого.
  • Помимо неправильной оценки роли имени, пол определяется более чем в два раза более значимым, нежели класс. Действительная статистика (среди спасшихся пассажиров 74% женщин и детей (из которых многие также были мужского пола) и 26% мужчин, 60% первого класса, 44% - второго, 25% - третьего) скорее подтверждает правильность этого вывода.

По второй задаче:

  • Дерево решений показывает неплохие результаты, около 70-75%.
  • Оценка важности признаков показывает наиболее важным признаком площадь недвижимости, что скорее всего верно.
  • После площади с небольшим отрывом идёт количество спортивных объектов в округе. Это неверно хотя бы потому, что в данных присустствуют коррелирующие признаки - площадь жилого пространства и другие. К тому же доступна информация по действительному ранжированию.
  • Дальнейшие оценки содержат как правильные, так и неправильные признаки: этаж, количество этажей в доме, район - действительно значимые признаки, но они перемешаны с незначимыми.

Итого. Дерево решений даёт неплохие результаты при классификации. Однако для задач регрессии не подходят, т.к. неверно определяют значимые признаки. При работе также следует тщательнее предобрабатывать данные, в особенности малозначащие текстовые - предложенные методы кодирования показали себя неэффективно на лабораторных данных.

Пример консольных результатов:

Titanic data analysis

model score: 0.7777777777777778

feature importances: {'Pclass': 0.1287795817634186, 'Sex': 0.3381642167551354, 'Name': 0.533056201481446}

Sberbank data analysis

model score: 0.7162629757785467

feature importances:

full_sq - 0.1801327274709341

sport_count_3000 - 0.14881362533480907

floor - 0.03169232872469085

power_transmission_line_km - 0.027978416524911377

timestamp - 0.020092007662845194

max_floor - 0.019985442431576052

cafe_count_5000_price_2500 - 0.019397048405749438

sub_area - 0.017477163456413432