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>
|