IIS_2023_1/degtyarev_mikhail_lab_6/Readme.md

61 lines
4.8 KiB
Markdown
Raw Normal View History

2023-12-23 01:05:21 +04:00
# Лабораторная 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% можно считать средним.