IIS_2023_1/antonov_dmitry_lab_6/README.md

89 lines
6.1 KiB
Markdown
Raw Normal View History

2023-10-08 15:38:58 +04:00
# Лаб 6 Нейронная сеть
2023-10-08 15:37:46 +04:00
2023-10-08 15:38:58 +04:00
Использовать нейронную сеть MLPClassifier по варианту для данных из датасета курсовой
2023-10-08 15:37:46 +04:00
Predict students' dropout and academic success (отсев студентов),
самостоятельно сформулировав задачу. Оценить, насколько хорошо она подходит
для решения сформулированной вами задачи.
# Вариант 3
2023-10-08 15:38:58 +04:00
Нейронная сеть MLPClassifier
2023-10-08 15:37:46 +04:00
# Запуск
Выполнением скрипта файла (вывод в консоль).
# Задача регрессии
Для прогнозирования отсева учащихся и набора данных об успеваемости спрогнозируйте отсев
2023-10-08 15:38:58 +04:00
используя нейронную сеть для признаков
2023-10-08 15:37:46 +04:00
'Curricular units 2nd sem (approved)' - (Учебные блоки 2-го семестра (утверждены))
'Curricular units 2nd sem (grade)' - (Учебные блоки 2-го семестра (класс))
'Tuition fees up to date' - (Стоимость обучения")
# Описание модели:
"MLPClassifier" - это тип искусственной нейронной сети прямого действия, которая широко используется для задач классификации.
Объяснение некоторых ключевых параметров:
1. hidden_layer_sizes:
- Этот параметр определяет количество нейронов в каждом скрытом слое и количество скрытых слоев в сети.
- Это кортеж, где каждый элемент представляет количество нейронов в определенном скрытом слое.
- Например, `hidden_layer_sizes=(100, 100)` означает, что есть два скрытых слоя, причем первый слой
- содержит 100 нейронов, а второй слой также содержит 100 нейронов.
2. activation:
- Этот параметр определяет функцию активации для скрытых слоев. Функция активации привносит
нелинейность в сеть, позволяя ей изучать сложные паттерны.
- Распространенные варианты включают:
- "identity": линейная функция активации (обычно не используется на практике).
- "logistic": сигмовидная логистическая функция
- "tanh": гиперболическая касательная функция
- "relu": Выпрямленная линейная единица измерения
3. solver:
- Этот параметр определяет алгоритм, используемый для оптимизации весов нейронной сети.
- Распространенные варианты включают:
- `adam": оптимизатор на основе стохастического градиента, сочетающий идеи RMSProp и Momentum.
- `sgd": Стохастический градиентный спуск.
- `lbfgs": алгоритм Бройдена-Флетчера-Гольдфарба-Шанно с ограниченной памятью.
4. alpha:
- Параметр штрафа L2 (условие регуляризации). Это помогает предотвратить переобучение,
наказывая за большие веса.
- Более высокие значения "альфа" приводят к более сильной регуляризации.
5. max_iter:
- Максимальное количество итераций для тренировочного процесса. Этот параметр помогает
предотвратить бесконечное обучение модели.
6. learning_rate:
- График скорости обучения для обновления веса. Он определяет размер шага, с которым веса
обновляются во время тренировки.
- Опции включают 'constant', 'invscaling', и 'adaptive'.
7. random_state:
- Начальное значение, используемое генератором случайных чисел. Установка начального значения
гарантирует воспроизводимость результатов.
8. batch_size:
- Количество образцов, использованных в каждой мини-партии во время обучения. Это влияет
на скорость конвергенции и использование памяти.
9. early_stopping:
- Если установлено значение "True", обучение прекратится, если оценка проверки не улучшится.
Это помогает предотвратить переобучение.
10. validation_fraction:
- Доля обучающих данных, которую следует отложить в качестве валидационного набора для ранней
остановки.
# Результат:
Из прошлой лабораторной точность регрессии для вышеперечисленных признаков составила 0.6256 (alpha = 0.01)
Точность нейронной сети для вышеперечисленных признаков составила 72.32%
(при изменении описанных выше параметров оценка не улучается)
На примере тех же самых признаков нейронная сеть обеспечивает
лучшее качество предсказания отсева студентов.
<p>
<div>Результат</div>
<img src="screens/img.png" width="650" title="Результат">
</p>