72 lines
5.7 KiB
Markdown
72 lines
5.7 KiB
Markdown
# Лабораторная 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' - наименьшее.
|
||
|