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' - наименьшее.
|
|||
|
|