.. | ||
ds_salaries.csv | ||
main.py | ||
Readme.md |
Лабораторная 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
: Используется для оценки точности классификации.
Шаги программы
-
Загрузка данных:
- Загружаются данные из файла
ds_salaries.csv
с использованием библиотеки pandas.
- Загружаются данные из файла
-
Определение категорий заработной платы:
- Создаются категории заработной платы на основе бинов с использованием
pd.cut
.
- Создаются категории заработной платы на основе бинов с использованием
-
Добавление столбца с категориями:
- Добавляется столбец с категориями в данные.
-
Предварительная обработка данных:
- Категориальные признаки ('experience_level', 'employment_type', 'job_title', 'employee_residence', 'company_location', 'company_size') обрабатываются с использованием OneHotEncoder.
- Числовые признаки ('work_year', 'remote_ratio') нормализуются с помощью StandardScaler.
- Эти шаги объединяются в ColumnTransformer и используются в качестве предварительного обработчика данных.
-
Выбор признаков:
- Определены признаки, которые будут использоваться для обучения модели.
-
Разделение данных:
- Данные разделены на обучающий и тестовый наборы в соотношении 80/20 с использованием функции
train_test_split
.
- Данные разделены на обучающий и тестовый наборы в соотношении 80/20 с использованием функции
-
Обучение модели:
- Используется MLPClassifier, объединенный с предварительным обработчиком данных в рамках Pipeline.
-
Оценка производительности модели:
- Вычисляется и выводится точность модели с использованием метрики
accuracy_score
.
- Вычисляется и выводится точность модели с использованием метрики
Запуск программы
- Склонировать или скачать код
main.py
. - Запустите файл в среде, поддерживающей выполнение Python.
python main.py
Результаты
- Точность модели оценивается метрикой accuracy, которая может быть выведена в консоль или использована для визуализации.
В данном случае accuracy получилось: 0.5901639344262295
Чем ближе результат к единице, тем лучше, но данный результат в 59% можно считать средним.