View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

MainPage/AI System/Labs

AI System

Курс состоит из двух блоков:
该课程由两个部分组成:

Каждый блок включает в себя несколько лабораторных работ, для сдачи необходимо сделать R&D отчет по итогам модуля. Защита лабораторных работ происходит в таком формате:
每个模块包括多个实验室工作;要通过,您必须根据模块的结果制作研发报告。 实验室工作的辩护以以下形式进行:

Модуль 1. Базы знаний и онтологии

Модуль 2. Методы МО

Модуль 1. Базы знаний и онтологии

Лабораторная 1. Создание базы знаний и выполнение запросов в Prolog

Требуется создать базу знаний в языке программирования Prolog и реализовать набор запросов, используя эту базу знаний. Задача направлена на развитие навыков работы с фактами, предикатами, и правилами в логическом программировании.
需要用 Prolog 编程语言创建一个知识库,并使用该知识库实现一组查询。 该任务旨在培养逻辑编程中处理事实、谓词和规则的技能。

Задание

Критерии оценки 评估标准

Тематики БЗ BZ主题

Любая, связанная с играми. Например,
任何与游戏有关的东西。 例如,

Лабораторная 2. Создание онтологии в Protege

Целью этой лабораторной работы является знакомство со средой разработки онтологий Protege и перевод базы знаний, созданной в предыдущей лабораторной работе в онтологическую форму в Protege.
本实验的目的是熟悉 Protege 本体开发环境,并将之前实验中创建的知识库转化为 Protege 中的本体形式。

Задание

Преобразовать факты и отношения из Prolog в концепты и свойства в онтологии. Описать классы и свойства в онтологии, которые соответствуют объектам и отношениям из базы знаний. Например, если у были классы “Человек” и “Машина” и свойство “возраст”, создайте аналогичные классы и свойства в онтологии в Protege.
将 Prolog 中的事实和关系转换为本体中的概念和属性。 描述本体中与知识库中的对象和关系相对应的类和属性。 例如,如果您有类“Man”和“Machine”以及属性“age”,请在 Protege 的本体中创建类似的类和属性。

Критерии оценки

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

Целью этой лабораторной работы является разработка программы, которая будет использовать базу знаний или онтологию для предоставления рекомендаций на основе введенных пользователем данных. (Knowledge-based support system) 该实验室的目标是开发一个程序,该程序将使用知识库或本体根据用户输入提供建议。(基于知识的支持系统)

Задание

Пример

Входная строка:

Мне 13 лет, мне нравятся: RPG, инди-игры

Нужно

Спарсить строку, разбить на факты, построить запрос, используя эти предикаты. (Формат входной строки фиксированный, искать частичное соответсвие подстроки не нужно)
解析字符串,将其拆分为事实,使用这些谓词构建查询。 (输入字符串的格式是固定的,不需要搜索子字符串的部分匹配)

Критерии оценки

Шаблон отчёта по Модулю 1

Модуль 2. Методы МО

В модуле 4 лабораторные работы. Реализовывать можно на любом языке. По каждой лабораторной необходимо сделать небольшой отчёт с результатами выполнения работы. По завершению модуля - большой отчёт.
该模块中有 4 个实验室作品。 可以用任何语言实现。 每个实验室都有必要制作一份简短的工作结果报告。 完成该模块后 - 一份大型报告。

Лабораторная 4. Линейная регрессия

Линейная регрессия. Теоретическая часть (1)

Задание

Лабораторная 5. Метод k-ближайших соседей

Задание

Выбор датасета:

Четный номер в группе - Датасет о вине

Нечетный номер в группе - Датасет про обезьян

Лабораторная 6. Деревья решений

Деревья решений. Теоретическая часть (1)

Задание

  1. Для студентов с четным порядковым номером в группе – датасет с классификацией грибов, а нечетным – датасет с данными про оценки студентов инженерного и педагогического факультетов (для данного датасета нужно ввести метрику: студент успешный/неуспешный на основании грейда)
    对于组中人数为偶数的学生 - 包含蘑菇分类 的数据集

    和奇数 – 包含工程和教育学院学生成绩数据的数据集(对于此数据集您需要输入指标:根据成绩成功/不成功的学生)

  2. Отобрать случайным образом sqrt(n) признаков
    随机 sqrt(n) 特征
  3. Реализовать без использования сторонних библиотек построение дерева решений (numpy и pandas использовать можно, использовать списки для реализации дерева - нельзя)
    不使用第三方库实现决策树的构建(可以使用numpy和pandas,但不能使用lists来实现树)
  4. Провести оценку реализованного алгоритма с использованием Accuracy, precision и recall
    使用准确度、精确度和召回率评估所实现的算法
  5. Построить AUC-ROC и AUC-PR (в пунктах 4 и 5 использовать библиотеки нельзя)
    构建 AUC-ROC 和 AUC-PR(步骤 4 和 5 中不能使用库)

Лабораторная 7. Логистическая регрессия

логистическая регрессия.docx

  1. Выбор датасета:
    • Датасет о пассажирах Титаника: Titanic Dataset
    • Датасет о диабете: Diabetes Dataset
    • Загрузите выбранный датасет и выполните предварительную обработку данных.
    • Разделите данные на обучающий и тестовый наборы в соотношении, которое вы считаете подходящим.
    • Реализуйте логистическую регрессию “с нуля” без использования сторонних библиотек, кроме NumPy и Pandas. Ваша реализация логистической регрессии должна включать в себя:
    • Функцию для вычисления гипотезы (sigmoid function).
    • Функцию для вычисления функции потерь (log loss).
    • Метод обучения, который включает в себя градиентный спуск.
    • Возможность варьировать гиперпараметры, такие как коэффициент обучения (learning rate) и количество итераций.
  2. Исследование гиперпараметров:
    • Проведите исследование влияния гиперпараметров на производительность модели. Варьируйте следующие гиперпараметры:
      • Коэффициент обучения (learning rate).
      • Количество итераций обучения.
      • Метод оптимизации (например, градиентный спуск или оптимизация Ньютона).
  3. Оценка модели:
    • Для каждой комбинации гиперпараметров оцените производительность модели на тестовом наборе данных, используя метрики, такие как accuracy, precision, recall и F1-Score.

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