IIS_2023_1/degtyarev_mikhail_lab_6/Readme.md

61 lines
4.8 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.

# Лабораторная 6
## Вариант 9
## Задание
Использовать нейронную сеть MLPClassifier для данных из таблицы 1 по варианту, самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо она подходит для решения сформулированной вами задачи
Задача:
Использовать MLPClassifier для прогнозирования заработной платы на основе опыта работы (experience_level), типа занятости (employment_type), местоположения компании (company_location) и размера компании (company_size). Оценить, насколько хорошо нейронная сеть подходит для решения этой задачи.
## Описание Программы
Программа представляет собой пример использования MLPClassifier для прогнозирования заработной платы на основе различных признаков.
### Используемые библиотеки
- `pandas`: Библиотека для обработки и анализа данных, используется для загрузки и предобработки данных.
- `scikit-learn`:
- `train_test_split`: Используется для разделения данных на обучающий и тестовый наборы.
- `StandardScaler`: Применяется для нормализации числовых признаков.
- `OneHotEncoder`: Используется для кодирования категориальных признаков.
- `MLPClassifier`: Классификатор многослойного персептрона (нейронная сеть).
- `accuracy_score`: Используется для оценки точности классификации.
### Шаги программы
1. **Загрузка данных:**
- Загружаются данные из файла `ds_salaries.csv` с использованием библиотеки pandas.
2. **Определение категорий заработной платы:**
- Создаются категории заработной платы на основе бинов с использованием `pd.cut`.
3. **Добавление столбца с категориями:**
- Добавляется столбец с категориями в данные.
4. **Предварительная обработка данных:**
- Категориальные признаки ('experience_level', 'employment_type', 'job_title', 'employee_residence', 'company_location', 'company_size') обрабатываются с использованием OneHotEncoder.
- Числовые признаки ('work_year', 'remote_ratio') нормализуются с помощью StandardScaler.
- Эти шаги объединяются в ColumnTransformer и используются в качестве предварительного обработчика данных.
5. **Выбор признаков:**
- Определены признаки, которые будут использоваться для обучения модели.
6. **Разделение данных:**
- Данные разделены на обучающий и тестовый наборы в соотношении 80/20 с использованием функции `train_test_split`.
7. **Обучение модели:**
- Используется MLPClassifier, объединенный с предварительным обработчиком данных в рамках Pipeline.
8. **Оценка производительности модели:**
- Вычисляется и выводится точность модели с использованием метрики `accuracy_score`.
### Запуск программы
- Склонировать или скачать код `main.py`.
- Запустите файл в среде, поддерживающей выполнение Python. `python main.py`
### Результаты
- Точность модели оценивается метрикой accuracy, которая может быть выведена в консоль или использована для визуализации.
В данном случае accuracy получилось: 0.5901639344262295
Чем ближе результат к единице, тем лучше, но данный результат в 59% можно считать средним.