.. | ||
lab3.py | ||
readme.md | ||
sberbank_data.csv | ||
titanic_data.csv |
Задание
- По данным о пассажирах Титаника решить задачу классификации с помощью дерева решений, в которой по различным характеристикам пассажиров требуется найти у выживших пассажиров два наиболее важных признака из трех рассматриваемых.
Вариант 1: Pclass,Name,Sex.
- По данным курсовой работы с помощью дерева решений решить выбранную задачу: классификация - зависимость категории цены от всех остальных факторов, оценка результата и отбор наиболее значимых признаков.
Запуск программы
Файл lab3.py содержит и запускает программу, аргументов и настройки вроде не требует.
Описание программы
Программа состоит из двух частей:
- Она считывает файл с данными по пассажирам "Титаника", признаки "класс", "имя", "пол" и запись о том, выжил ли пассажир. Данные предобрабатываются: запись о поле кодируется (ж - 0, м - 1), запись об имени кодируется (Tfidf). После этого дерево решений тренируется на данных и результаты выводятся в консоль.
- Она считывает файл с данными сбербанка по рынку недвижимости. Далее данные предобрабатываются: названия районов кодируется (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