IIS_2023_1/alexandrov_dmitrii_lab_3/readme.md

61 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Задание
1. По данным о пассажирах Титаника решить задачу классификации с помощью дерева решений, в которой по различным характеристикам пассажиров требуется найти у выживших пассажиров два наиболее важных признака из трех рассматриваемых.
Вариант 1: Pclass,Name,Sex.
2. По данным курсовой работы с помощью дерева решений решить выбранную задачу: классификация - зависимость категории цены от всех остальных факторов, оценка результата и отбор наиболее значимых признаков.
### Запуск программы
Файл 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