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% можно считать средним.
|
|||
|
|