IIS_2023_1/degtyarev_mikhail_lab_6
2023-12-23 01:05:21 +04:00
..
ds_salaries.csv degtyarev_mikhail_lab_6_is_ready 2023-12-23 01:05:21 +04:00
main.py degtyarev_mikhail_lab_6_is_ready 2023-12-23 01:05:21 +04:00
Readme.md degtyarev_mikhail_lab_6_is_ready 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% можно считать средним.