61 lines
4.8 KiB
Markdown
61 lines
4.8 KiB
Markdown
# Лабораторная 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% можно считать средним.
|
||
|