IIS_2023_1/degtyarev_mikhail_lab_3/Readme.md

72 lines
5.7 KiB
Markdown
Raw 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.

# Лабораторная 3
## Вариант 9
## Задание
Решите с помощью библиотечной реализации дерева решений задачу из лабораторной работы «Веб-сервис «Дерево решений» по предмету «Методы искусственного интеллекта»на 99% ваших данных.
Проверьте работу модели на оставшемся проценте, сделайте вывод.
## Описание Программы
Данная программа предназначена для построения и оценки модели дерева решений с использованием данных о зарплатах в области Data Science.
1) Задача, решаемая деревом решений:
Можно использовать дерево решений для классификации должностей на основе опыта работы (experience_level), типа занятости (employment_type), местоположения компании (company_location) и размера компании (company_size). Например, можно предсказать категории должностей, такие как "Junior Data Scientist," "Senior Data Analyst," и т.д.
### Используемые библиотеки
- `pandas`: Библиотека для обработки и анализа данных, используется для загрузки и предобработки данных.
- `scikit-learn`: Библиотека для машинного обучения, включает в себя реализацию дерева решений (DecisionTreeClassifier), метрики оценки модели (accuracy_score, mean_squared_error) и кодировщик категориальных переменных (LabelEncoder).
### Шаги программы
**Загрузка данных:**
Данные о зарплатах в области Data Science загружаются из файла 'ds_salaries.csv'.
Столбец 'Unnamed: 0', предположительно, содержащий индекс или идентификатор, удаляется.
**Предобработка данных:**
Определены признаки (features) и целевая переменная (target).
Категориальные признаки преобразованы в числовой формат с использованием LabelEncoder.
Целевая переменная также преобразована в числовой формат.
**Разделение данных:**
Данные разделены на обучающий (99%) и тестовый (1%) наборы с использованием train_test_split.
**Построение и обучение модели:**
Создана и обучена модель дерева решений с использованием DecisionTreeClassifier.
**Предсказание и оценка:**
Выполнено предсказание категорий должностей на тестовом наборе данных.
Оценена точность модели с использованием accuracy_score.
Рассчитана средняя квадратичная ошибка в процентах с использованием mean_squared_error.
**Анализ важности признаков:**
Выведена важность каждого признака в модели.
Вывод первых 5 строк тестового набора данных:
Выведены первые 5 строк тестового набора данных для ознакомления с фактическими и предсказанными значениями.
### Запуск программы
- Склонировать или скачать код `main.py`.
- Запустите файл в среде, поддерживающей выполнение Python. `python main.py`
### Результаты
![](img.png)
На основе результатов, предоставленных моделью дерева решений, можно сделать вывод, что текущая модель не идеально подходит для задачи классификации должностей на основе предоставленных данных.
**Точность модели 14.29%**
Низкая точность может свидетельствовать о том, что модель недостаточно эффективна в предсказании категорий должностей. Возможные причины низкой точности могут включать в себя неоптимальный выбор признаков, недостаточную обработку данных или неоптимальную настройку параметров модели.
**Средняя квадратичная ошибка: 165.86%**
Высокая средняя квадратичная ошибка также указывает на значительное отклонение предсказанных значений от фактических значений. Это говорит о том, что модель недостаточно точно предсказывает категории должностей.
**Важность признаков**
'company_location' оказывает наибольшее влияние на модель, тогда как 'employment_type' - наименьшее.