/python

Course Advanced Python at FTDS (HSE)

Primary LanguageJupyter Notebook

main.py - код API, модуль для работы с ML-моделями.

FlaskTest.ipynb - использование сервиса для работы с ML-алгоритмами.

API реализован при помощи библиотеки flask: декораторы route позволяют гибко
настроить поведение рассматриваемого модуля в соответствии с
HTTP-методом (POST, GET, PUT, DELETE) и указанным URL.

В основе модуля лежит класс MyModel, являющийся оберткой над ML-моделями
разных типов, образуя тем самым абстракцию «модель».
Обработка ошибок: методы класса проверяют корректность входных данных, но не
корректируют ход выполнения программы, но выбрасывают сообщение об ошибке.

Методы класса:

update(params) – обновить параметры (атрибуты класса) модели.

get_uid() – для разграничения атрибутов класса и их значения в рамках класса,
а также контроля доступа к внутренней структуре экземпляра –
рекомендуется использовать геттер, а не читать поле напрямую.

set_uid(uid) – устанавливает UID экземпляра (сеттер).

have_clf() – значение флага «у модели есть обученный классификатор»
(другими словами, ранее к модели был корректно применён метод fit).

get_info() – возвращает словарь, описывающий состояние модели; словарь содержит
только интерпретируемые описания (то есть это не обратимая сериализация экземпляра).

fit(x, y) – обучение модели.

unfit() – перезапись дескриптора модели состоянием None, т.е. сообщаем, что
экземпляр без обученной модели (см. также метод have_clf).

predict(x, proba) – вернуть прогноз модели.

Объект, соответствующий абстракции «совокупность моделей» обеспечивается
классом MyModelsList.

Методы класса:

get(uid) – возвращает экземпляр класса по его UID.

get_all() – возвращает список описаний всех содержащихся в Совокупности моделей.

create(data) – создаёт модель.

update(uid, data) – обновляет параметры (в широком смысле) модели.

delete(uid) – удаляет модель.