В этом примере показано, как обучить модель в Regression Learner и экспортировать его для развертывания на MATLAB® Production Server™. Этот рабочий процесс требует MATLAB Compiler SDK™.
В Командном окне симулируйте 100 наблюдений из модели регрессии с четырьмя переменными предикторами. Создайте случайный матричный X
, чьи строки соответствуют наблюдениям и чьи столбцы соответствуют переменным предикторам. Добавьте отсутствующие значения в матрицу путем случайной установки приблизительно 2% значений в каждом столбце как NaN
s. Создайте переменную отклика y
от переменных в X
.
rng("default")
numRows = 100;
numCols = 4;
X = rand(numRows,numCols);
randIdx = randi(numRows*numCols,floor(0.02*numRows)*numCols,1);
X(randIdx) = NaN;
y = 10*X(:,1) + 5*X(:,2) + 3*X(:,3) + 7*X(:,4) + 0.1*randn(numRows,1);
Из Командного окна откройте приложение Regression Learner. Заполните диалоговое окно New Session from Arguments с матрицей предиктора X
и переменная отклика y
.
regressionLearner(X,y)
Чтобы принять выборы в диалоговом окне New Session from Arguments и продолжиться, нажмите Start Session.
Обучите все предварительно установленные модели. На вкладке Regression Learner, в разделе Model Type, кликают по стреле, чтобы открыть галерею. В группе Get Started нажмите All. В разделе Training нажмите Train. Приложение обучает все предварительно установленные модели и отображает модели в панели Models.
Совет
Если у вас есть Parallel Computing Toolbox™, можно обучить все модели (All) одновременно путем нажатия кнопки Use Parallel в разделе Training перед нажатием Train. После того, как вы нажимаете Train, диалоговое окно Opening Parallel Pool открывается и остается открытым, в то время как приложение открывает параллельный пул рабочих. В это время вы не можете взаимодействовать с программным обеспечением. После того, как пул открывается, приложение обучает все модели одновременно.
Отображения приложения график отклика для первой модели. Синие точки являются истинными значениями, и желтые точки являются ожидаемыми значениями. Панель Models слева показывает валидации RMSE (среднеквадратическая ошибка) для каждой модели.
Сортировка моделей на основе валидации RMSE. В панели Models откройте список Sort by и выберите RMSE (Validation)
. Приложение обрисовывает в общих чертах метрику для модели (или моделей) с самой низкой валидацией RMSE.
Выберите модель в панели Models с самой низкой валидацией RMSE.
Экспортируйте выбранную модель для развертывания на MATLAB Production Server. На вкладке Regression Learner, в разделе Export, нажимают Export Model и выбирают Export Model for Deployment.
В диалоговом окне Select Project File for Model Deployment выберите местоположение и имя для вашего файла проекта. В данном примере используйте название проекта по умолчанию RegressionLearnerDeployedModel.prj
. Нажмите Save.
Программное обеспечение открывает приложение Production Server Compiler и автоматически сгенерированный predictFunction.m
файл.
Во вкладке Compiler приложения Production Server Compiler раздел Exported Functions включает файлы modelInformation.m
и predictFunction.m
. Раздел Additional files required for your archive to run включает файлы processInputData.m
и TrainedRegressionModel.mat
. Для примера, где необходимо обновить код в некоторых из этих файлов, чтобы включать шаги предварительной обработки, смотрите, Развертывают Модель, Обученную в Classification Learner к MATLAB Production Server. В данном примере смотрите predictFunction.m
код и близко файл.
Прежде, чем группировать ваш код для развертывания на MATLAB Production Server, можно симулировать развертывание модели с помощью клиента MATLAB. Завершение этого процесса требует открытия другого экземпляра MATLAB. Для примера, который показывает, как использовать демонстрационный Java® клиент для отправки данных к функции MATLAB, развернутой на сервере, смотрите, Оценивают Развернутые Модели Машинного обучения Используя Клиент Java (MATLAB Production Server).
В приложении Production Server Compiler нажмите кнопку Test Client в разделе Test по вкладке Compiler.
На вкладке Test, в разделе Server Actions, нажимают кнопку Start. Отметьте адрес, перечисленный в панели Server Address, которая в этом примере является http://localhost:9910/DeployedRegressionModel
.
Откройте новый экземпляр MATLAB.
В новом экземпляре MATLAB автоматически открывается приложение Production Server Compiler. Закройте этот экземпляр приложения.
В Командном окне нового экземпляра MATLAB загрузите данные о предикторе, которые имеют тот же формат как обучающие данные, используемые в Regression Learner.
rng("default")
numRows = 100;
numCols = 4;
X = rand(numRows,numCols);
randIdx = randi(numRows*numCols,floor(0.02*numRows)*numCols,1);
X(randIdx) = NaN;
Отправьте данные в MATLAB Production Server. Используйте адрес сервера, отображенный в приложении Production Server Compiler.
Поскольку X
числовая матрица, аргумент не требует последующей обработки прежде чем быть отправленным в MATLAB Production Server. Необходимо преобразовать категориальные переменные и таблицы к массивам ячеек и структурам, соответственно, прежде, чем отправить их в MATLAB Production Server. Для примера смотрите, Развертывают Модель, Обученную в Classification Learner к MATLAB Production Server.
jsonData = mps.json.encoderequest({X},"Nargout",1, ... "OutputFormat","large"); URL = "http://localhost:9910/DeployedRegressionModel/predictFunction"; options = weboptions("MediaType","application/json","Timeout",30); response = webwrite(URL,jsonData,options);
В исходном экземпляре MATLAB, в открытом приложении Production Server Compiler, панель MATLAB Execution Requests под вкладкой Test показывает успешный запрос между сервером и клиентом MATLAB.
В Командном окне нового экземпляра MATLAB извлеките предсказанные ответы из response
переменная. Преобразуйте предсказанные ответы на числовой вектор и проверяйте, что значения правильны.
cellResults = response.lhs.mwdata; numericResults = arrayfun(@str2double,string(cellResults));
response.lhs.mwdata
изменения в зависимости от присутствия NaN
значения. Например, response.lhs.mwdata
числовой вектор, когда предсказанные ответы не включают NaN
значения.В исходном экземпляре MATLAB, в приложении Production Server Compiler, нажимают Stop в разделе Server Actions по вкладке Test. В разделе Close нажмите Close Test.
Используйте приложение Production Server Compiler, чтобы группировать вашу функцию модели и предсказания. На вкладке Compiler, в разделе Package, нажимают кнопку Package.
В диалоговом окне Package проверьте, что опция Open output folder when process completes выбрана.
После концов процесса развертывания исследуйте сгенерированный выход.
for_redistribution
— Папка, содержащая DeployedRegressionModel.ctf
файл
for_testing
— Папка, содержащая сырые данные, сгенерировала файлы, требуемые создать инсталлятор
PackagingLog.html
— Файл журнала сгенерирован MATLAB Compiler SDK