Скачиваний:
1
Добавлен:
07.06.2026
Размер:
1.9 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Информационных технологий и программной инженерии

Кафедра Систем обработки данных

Направление: 09.03.02 Информационные системы и технологии

Профиль: Прикладные информационные системы и технологии

Лабораторная работа №4

«Реализация жизненного цикла интеллектуальных систем в информационной среде их сопровождения»

по дисциплине

«Интеллектуальные системы и технологии»

Выполнил:

студент группы ИСТ-223

Хакова Ю.М. «____» _________2026 г.

Принял:

ассистент кафедры ИУС

Пелих Д.А. «____» _________2026 г.

Цель работы:

Разработка базы знаний и модели машинного обучения для прогнозирования назначения стипендии студентам на основе их академических достижений и внеучебной активности.

Задачи

1. Необходимо изучить основы логического программирования на языке Prolog и ознакомиться с функциональными возможностями системы SWI-Prolog.

2. Создать свою собственную обучаемую модель для определения наличия стипендии у студентов. Изначальными данными являются средние баллы студентов и наличие/отсутствие стипендии. При помощи этих входных данных будет осуществляться создание, обучение и тестирование модели дерева решений.

Ход работы

В ходе выполнения лабораторной работы были изучены основные функции пункта меню File в среде SWI-Prolog (Рисунок 1).

Меню File содержит следующие команды:

  • Consult — используется для загрузки файла с базой знаний (например, .pl). Позволяет подключить созданный файл к системе Prolog для дальнейшей работы с ним.

  • Edit — открывает выбранный файл базы знаний для редактирования. Удобно для внесения изменений в факты и правила.

  • New — позволяет создать новый файл с базой знаний.

  • Reload modified files — выполняет повторную загрузку изменённых файлов без необходимости их повторного открытия вручную.

  • Close — закрывает текущий файл или окно.

  • Halt prolog — завершает работу среды SWI-Prolog.

Рисунок 1 – Функциональные кнопки пункта навигационного меню «File»

Создание базы знаний, содержащую информацию о возможности получения стипендии и трудоустройства студентов (Рисунок 2).

Рисунок 2 – База знаний студентов в Prolog

После загрузки базы знаний в среду SWI-Prolog были выполнены запросы для проверки получения стипендии студентами и возможности их трудоустройства (Рисунок 3).

В результате были получены следующие ответы:

  • запрос stipendiya('Popov'). вернул значение true, следовательно, студент Попов получает стипендию;

  • запрос stipendiya('Ivanov'). вернул значение true, следовательно, студент Иванов также получает стипендию;

  • запрос isAbleToWork('Popov', X). показал, что студент Попов может трудоустроиться в компанию IBM.

Полученные результаты подтверждают корректность работы созданной базы знаний и логических правил. Система SWI-Prolog успешно обрабатывает факты и правила, а также позволяет формировать запросы для получения нужной информации о студентах.

Рисунок 3 – Выполнение запросов к базе знаний

Практическая часть II

Подключаем нужные для работы библиотеки и инициализируем датафрейм для обучнения и тестирования модели. Он содержит данные о студентах (средний балл и наличие стипендии) (Рисунок 4).

Рисунок 4 –  Исходные данные о студентах для обучения модели

Разделение данных на признаки и целевую переменную (Рисунок 5).

X — это переменная, которая содержит признаки. Признаки — это данные, которые модель будет использовать для обучения. В данном случае у нас только один признак — 'Средний_балл'.

y — это переменная, которая содержит целевую переменную. Целевая переменная — это то, что модель пытается предсказать. В данном случае это 'Стипендия' (1 — стипендия есть, 0 — стипендии нет).

Рисунок 5 – Разделение данных на признаки и целевую переменную

Мы разделяем данные на две части:

  • Обучающая выборка (X_train, y_train): данные, на которых модель будет обучаться. Она пытается найти закономерности между признаками (X_train) и целевой переменной (y_train). Например, модель может заметить, что если Средний_балл >= 4, то стипендия обычно есть.

  • Тестовая выборка (X_test, y_test): данные, на которых модель будет проверяться после обучения. Мы используем признаки (X_test), чтобы модель сделала предсказания, а затем сравниваем их с реальными значениями (y_test). Это помогает понять, насколько хорошо модель обобщает данные и может ли она правильно предсказывать на новых данных, которые она раньше не видела.

test_size=0.2 означает, что 20% данных будут использоваться для тестирования, а 80% — для обучения.

random_state=42 задает начальное значение для генератора случайных чисел. Это нужно для того, чтобы результаты были воспроизводимыми.

Далее создаем модель в коде.

DecisionTreeClassifier() — это конструктор класса, который создает объект модели дерева решений. Пока модель "пустая" — она еще не обучена.

model.fit(X_train, y_train) — это метод, который обучает модель на данных.