Update README.md && Add result images
This commit is contained in:
parent
72b717d7ae
commit
aa543e057e
@ -1,23 +1,76 @@
|
||||
# IIS_2023_1
|
||||
<h4>Задание</h4>
|
||||
<p>
|
||||
<u>Часть 1.</u> По данным о пассажирах Титаника решите задачу классификации
|
||||
(с помощью дерева решений), в которой по различным характеристикам
|
||||
пассажиров требуется найти у выживших пассажиров два наиболее важных
|
||||
признака из трех рассматриваемых (по варианту). Пример решения задачи
|
||||
можно посмотреть здесь: [1] (стр.188). Скачать данные можно по ссылке:
|
||||
https://www.kaggle.com/datasets/heptapod/titanic <br /> <br />
|
||||
9. Pclass, Cabin,Embarked 10 Name, Cabin,Embarked
|
||||
</p>
|
||||
<p>
|
||||
<u>Часть 2.</u> Решите с помощью библиотечной реализации дерева решений
|
||||
задачу из лабораторной работы «Веб-сервис «Дерево решений» по предмету
|
||||
«Методы искусственного интеллекта» на 99% ваших данных. Проверьте
|
||||
работу модели на оставшемся проценте, сделайте вывод.
|
||||
</p>
|
||||
</p>
|
||||
<h4>Способок запуска программы</h4>
|
||||
<h4>Описание кода</h4>
|
||||
<h6>Результат: </h6>
|
||||
<p>
|
||||
</p>
|
||||
### Задание
|
||||
<u>Часть 1.</u> По данным о пассажирах Титаника решите задачу классификации (с помощью дерева решений), в которой по различным характеристикам пассажиров требуется найти у выживших пассажиров два наиболее важных признака из трех рассматриваемых (по варианту). Пример решения задачи можно посмотреть здесь: [1] (стр.188). Скачать данные можно по ссылке: https://www.kaggle.com/datasets/heptapod/titanic
|
||||
|
||||
<u>9 Вариант.</u> Pclass, Cabin,Embarked 10 Name, Cabin,Embarked
|
||||
|
||||
<u>Часть 2.</u> Решите с помощью библиотечной реализации дерева решений задачу из лабораторной работы «Веб-сервис «Дерево решений» по предмету «Методы искусственного интеллекта» на 99% ваших данных. Проверьте работу модели на оставшемся проценте, сделайте вывод
|
||||
### Способ запуска лабораторной работы
|
||||
Чтобы запустить 1-ю часть лабораторной работы, нужно запустить скрипт `shadaev_anton_lab_3/titanic.py`
|
||||
|
||||
Чтобы запустить 2-ю часть лабораторной работы, нужно запустить скрипт `shadaev_anton_lab_3/stroke_prediction.py`
|
||||
|
||||
### Стек технологий
|
||||
* `Sklearn` - библиотека, которая поддерживает различные методы регрессии и классификации, включая линейную регрессию, метод k-ближайших соседей, регрессию опорных векторов, деревья принятия решений, ансамбль методов, такие как random forest и градиентный бустинг
|
||||
* `Pandas` - библиотека, которая позволяет работать с двумерными и многомерными таблицами, строить сводные таблицы, выделять колонки, использовать фильтры по параметрам, выполнять группировку по параметрам, запускать функции (сложение, нахождение медианы, среднего, минимального, максимального значений), объединять таблицы и многое другое
|
||||
### Описание кода
|
||||
<u>Часть 1.</u>
|
||||
|
||||
1. Импорт необходимых библиотек и модулей: `pandas` для работы с данными, `train_test_split` из `sklearn.model_selection` для разделения данных на обучающий и тестовый наборы, `DecisionTreeClassifier` из `sklearn.tree` для создания модели классификации, и `LabelEncoder` из `sklearn.preprocessing` для преобразования категориальных данных в числовые, `scikit-learn.org`.
|
||||
|
||||
1. Загрузка данных о пассажирах на "Титанике" из CSV-файла с помощью `pandas`.
|
||||
|
||||
1. Обработка пропущенных значений в столбце 'Embarked', заменяя их на 'S'.
|
||||
|
||||
1. Преобразование категориальных данных в числовые с помощью `LabelEncoder`. Это делается для столбцов 'Pclass', 'Cabin' и 'Embarked'.
|
||||
|
||||
1. Вывод первых 10 записей из обработанного набора данных.
|
||||
|
||||
1. Разделение данных на признаки (X) и целевую переменную (y).
|
||||
|
||||
1. Разделение данных на обучающий и тестовый наборы с помощью функции `train_test_split` из `sklearn.model_selection`. 20% данных выделяются для тестового набора, а остальные 80% - для обучающего.
|
||||
|
||||
1. Создание модели классификации на основе алгоритма решающего дерева с помощью `DecisionTreeClassifier` из `sklearn.tree`.
|
||||
|
||||
1. Обучение модели с использованием обучающего набора данных.
|
||||
|
||||
1. Вычисление и вывод важности признаков для модели. Это делается с помощью атрибута `feature_importances_ `модели.
|
||||
|
||||
|
||||
<u>Часть 2.</u>
|
||||
|
||||
1. Импорт необходимых библиотек и модулей: `pandas` для работы с данными, `accuracy_score` и `mean_squared_error` из `sklearn.metrics` для вычисления метрик модели, `train_test_split` из `sklearn.model_selection` для разделения данных на обучающий и тестовый наборы, и `DecisionTreeClassifier` из `sklearn.tree` для создания модели классификации.
|
||||
|
||||
1. Загрузка данных о риске инсульта из CSV-файла с помощью `pandas`.
|
||||
|
||||
1. Преобразование категориальных данных в числовые с помощью метода `map`.
|
||||
|
||||
1. Определение признаков и целевой переменной.
|
||||
|
||||
1. Разделение данных на обучающую и тестовую выборки с помощью функции `train_test_split` из `sklearn.model_selection`. 20% данных выделяются для тестового набора, а остальные 80% - для обучающего.
|
||||
|
||||
1. Создание модели классификации на основе алгоритма решающего дерева с помощью `DecisionTreeClassifier` из `sklearn.tree`.
|
||||
|
||||
1. Обучение модели с использованием обучающего набора данных.
|
||||
|
||||
1. Вычисление важности признаков для модели. Это делается с помощью атрибута `feature_importances_` модели.
|
||||
|
||||
1. Вычисление 'Accuracy' модели с использованием функции `accuracy_score` из `sklearn.metrics`.
|
||||
|
||||
1. Вычисление средней квадратичной ошибки с использованием функции `mean_squared_error` из `sklearn.metrics`.
|
||||
|
||||
1. Вывод результатов, включая первые 10 строк данных, важность признаков, точность модели и среднюю квадратичную ошибку.
|
||||
|
||||
### Решение
|
||||
<u>Часть 1.</u>
|
||||
![img.png](public/img/img_0.png)
|
||||
|
||||
<u>Часть 2.</u>
|
||||
![img_1.png](public/img/img_1.png)
|
||||
|
||||
### Вывод
|
||||
Исходя из выводимых результатов, можно сделать вывод, что:
|
||||
|
||||
* Значения в массиве `[0.25588112 0.40781287 0.24234788 0.09395812]` соответствуют признакам `hypertension`, `heart_disease`, `ever_married` и `gender` соответственно. Значение `0.40781287` указано для `heart_disease`, что означает, что этот признак является наиболее важным для прогнозирования результата. Признак `hypertension` следует за ним с важностью `0.25588112`, `ever_married` - `0.24234788`, и `gender` - `0.09395812`. Это означает, что `heart_disease` влияет на прогноз больше всего, `hypertension` и `ever_married` влияют на прогноз в средней степени, а `gender` влияет на прогноз меньше всего.
|
||||
* Accuracy модели составляет 94%, что означает, что модель правильно классифицировала 94% примеров из тестового набора данных. Это хороший показатель, который указывает на то, что модель хорошо справляется с задачей классификации.
|
||||
* Средняя квадратичная ошибка составляет 6.07%, что является достаточно хорошим показателем для модели. Меньшее значение MSE указывает на то, что прогнозы модели в среднем близки к истинным значениям.
|
BIN
shadaev_anton_lab_3/public/img/img_0.png
Normal file
BIN
shadaev_anton_lab_3/public/img/img_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
BIN
shadaev_anton_lab_3/public/img/img_1.png
Normal file
BIN
shadaev_anton_lab_3/public/img/img_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
Loading…
Reference in New Issue
Block a user