iOpt - фреймворк с открытым исходным кодом для автоматического выбора значений параметров как для математических моделей сложных промышленных процессов, так и для используемых в промышленности методов ИИ и МО. Фреймворк распространяется под лицензией 3-Clause BSD.
- Автоматический выбор значений параметров математических моделей и методов ИИ и МО, используемых в промышленности.
- Интеллектуальное управление процессом выбора оптимальных параметров для промышленных задач.
- Интеграция с внешними библиотеками или фреймворками искусственного интеллекта и машинного обучения, а также предметными моделями.
- Автоматизация предварительного анализа исследуемых моделей, например, выделение различных классов зависимостей модели от разных групп параметров.
- Визуализация процесса выбора оптимальных параметров.
git clone https://github.com/UNN-ITMM-Software/iOpt
cd iOpt
pip install virtualenv
virtualenv ioptenv
source ioptenv/bin/activate
python setup.py install
git clone https://github.com/UNN-ITMM-Software/iOpt
cd iOpt
pip install virtualenv
virtualenv ioptenv
ioptenv\Scripts\activate.bat
python setup.py install
Использование фреймворка iOpt для минимизации функции Растригина.
from iOpt.problems.rastrigin import Rastrigin
from iOpt.solver import Solver
from iOpt.solver_parametrs import SolverParameters
from iOpt.method.listener import StaticNDPaintListener, ConsoleFullOutputListener
from subprocess import Popen, PIPE, STDOUT
if __name__ == "__main__":
"""
Минимизация тестовой функции Растригина с визуализацией
"""
#Создание тестовой задачи
problem = Rastrigin(2)
#Параметры решателя
params = SolverParameters(r=2.5, eps=0.01, itersLimit=300, refineSolution=True)
#Создание решателя
solver = Solver(problem, parameters=params)
#Вывод результатов в консоль в процессе решения
cfol = ConsoleFullOutputListener(mode='full')
solver.AddListener(cfol)
#3D визуализация по окончании решения
spl = StaticNDPaintListener("rastrigin.png", "output", varsIndxs=[0,1], mode="surface", calc="interpolation")
solver.AddListener(spl)
#Запуск решения задачи
sol = solver.Solve()
Продемонстрируем использование фреймворка iOpt при настройке гиперпараметров одного из методов машинного обучения. В методе опорных векторов (SVC) найдем оптимальные вещественные гиперпараметры (C - параметр регуляризации, gamma - коэффициент ядра) в задаче классификации рака молочной железы (подробное описание данных).
import numpy as np
from sklearn.utils import shuffle
from sklearn.datasets import load_breast_cancer
from iOpt.method.listener import StaticNDPaintListener, AnimationNDPaintListener, ConsoleFullOutputListener
from iOpt.solver import Solver
from iOpt.solver_parametrs import SolverParameters
from examples.Machine_learning.SVC._2D.Problems import SVC_2d
def load_breast_cancer_data():
dataset = load_breast_cancer()
x_raw, y_raw = dataset['data'], dataset['target']
inputs, outputs = shuffle(x_raw, y_raw ^ 1, random_state=42)
return inputs, outputs
if __name__ == "__main__":
x, y = load_breast_cancer_data()
regularization_value_bound = {'low': 1, 'up': 6}
kernel_coefficient_bound = {'low': -7, 'up': -3}
problem = SVC_2d.SVC_2D(x, y, regularization_value_bound, kernel_coefficient_bound)
method_params = SolverParameters(r=np.double(3.0), itersLimit=100)
solver = Solver(problem, parameters=method_params)
apl = AnimationNDPaintListener("svc2d_anim.png", "output", varsIndxs=[0, 1], toPaintObjFunc=False)
solver.AddListener(apl)
spl = StaticNDPaintListener("svc2d_stat.png", "output", varsIndxs=[0, 1], mode="surface", calc="interpolation")
solver.AddListener(spl)
cfol = ConsoleFullOutputListener(mode='full')
solver.AddListener(cfol)
solver_info = solver.Solve()
Последняя стабильная версия фреймворка доступна в ветке main. Репозиторий включает следующие каталоги:
- Каталог iOpt содержит ядро фреймворка в виде классов на языке Python.
- Каталог examples содержит примеры использования фреймворка как для решения модельных, так и прикладных задач.
- Модульные тесты размещены в каталоге test.
- Исходные файлы документации находятся в каталоге docs.
Детальное описание API фреймворка iOpt доступно на Read the Docs