Задание: Прикладной программист. Алгоритм выбора оптимальной 3D зависимости из списка (Дистанционная работа)
Имеется:
- Набор значений X, Y, Z. Всего около 1000 точек.
- Набор математических зависимостей, описывающих взаимосвязь параметров между X, Y и Z. Всего около 500 общеизвестных уравнений.
Общие требования.
Необходимо написать алгоритм, который:
По всем уравнениям определит наиболее подходящие коэффициенты в уравнениях для заданного массива значений.
При подобранных коэффициентах определит следующие параметры каждого уравнения:
- r2
- adjusted r2
- std error
- Max error
- F-statistic
Далее эти параметры будут использоваться пользователем для выбора наилучшей зависимости.
Время расчета для всех уравнений и для тестовых данных 1000 значений для всех уравнений не должно превышать 1-2 секунды.
Языки программирования: Python или C++ (т.к. будет встраиваться в большое ПО).
Технические требования:
Требуется добавить поддержку подбора коэффициентов 3D уравнений в существующее решение (Python 3.11) и постараться сохранить структуру и стиль существующего кода. А именно:
• расширить базу уравнений трёхмерными функциями
• дописать парсер Excel, если потребуется
• расширить функционал методов get_solutions и evaluate_solver_equation для работы с 3D трендами. Возможность подбора 3D в get_solutions должна быть отключаемой: 2D+3D или только 2D
• написать тест для нового функционала на основе unittest
Текущий 2D солвер запускается тестом из файла test_equations_solver.py
Существующий алгоритм поиска 2D зависимости будет представлен в личном чате по запросу при реальном желании исполнителя выполнить задачу.