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