IIS_2023_1/degtyarev_mikhail_lab_3/Readme.md

72 lines
5.7 KiB
Markdown
Raw Normal View History

2023-12-03 15:08:35 +04:00
# Лабораторная 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' - наименьшее.