Экспортируйте модель регрессии, чтобы предсказать новые данные

Модель экспорта к рабочей области

После того, как вы создадите модели регрессии в интерактивном режиме в приложении Regression Learner, можно экспортировать лучшую модель в рабочую область. Затем можно использовать, который обучил модель делать предсказания с помощью новых данных.

Примечание

Итоговый экспорт модели Regression Learner всегда обучается с помощью полного набора данных. Схема валидации, которую вы используете только, влияет на способ, которым приложение вычисляет метрики валидации. Можно использовать метрики валидации и различные графики, которые визуализируют результаты выбрать лучшую модель для проблемы регрессии.

Вот шаги для экспорта модели к MATLAB® рабочая область:

  1. В приложении выберите модель, которую вы хотите экспортировать в панели Models.

  2. На вкладке Regression Learner, в разделе Export, нажатии кнопки одной из опций экспорта:

    • Чтобы включать данные, используемые для обучения модель, нажмите Export Model и выберите Export Model.

      Вы экспортируете обученную модель в рабочую область как структура, содержащая объект модели регрессии.

    • Чтобы исключить обучающие данные, нажмите Export Model и выберите Export Compact Model. Эта опция экспортирует модель с ненужными данными, удаленными, если это возможно. Для некоторых моделей это - компактный объект, который не включает обучающие данные, но можно все еще использовать его для того, чтобы сделать предсказания на новых данных.

  3. В диалоговом окне Export Model проверяйте имя своей экспортируемой переменной и отредактируйте его, если вы хотите. Затем нажмите OK. Имя по умолчанию для вашей экспортируемой модели, trainedModel, постепенно увеличивается каждый раз, когда вы экспортируете, чтобы не перезаписывать ваши модели (например, trainedModel1).

    Новая переменная (например, trainedModel) появляется в вашей рабочей области.

    Информация об отображениях приложения об экспортируемой модели в командном окне. Считайте сообщение, чтобы изучить, как сделать предсказания с новыми данными.

Сделайте предсказания для новых данных

После того, как вы экспортируете модель в рабочую область от Regression Learner или запустите код, сгенерированный из приложения, вы получаете trainedModel структура, которую можно использовать, чтобы сделать предсказания с помощью новых данных. Структура содержит объект модели и функцию для предсказания. Структура позволяет вам сделать предсказания для моделей, которые включают анализ главных компонентов (PCA).

  1. Используйте экспортируемую модель, чтобы сделать предсказания для новых данных, T:

    yfit = trainedModel.predictFcn(T)
    где trainedModel имя вашей экспортируемой переменной.

    Снабдите данными T с тем же форматом и типом данных как обучающие данные, используемые в приложении (таблица или матрица).

    • Если вы предоставляете таблицу, то гарантируете, что она содержит те же имена предиктора как ваши обучающие данные. predictFcn игнорирует дополнительные переменные в таблицах. Переменные форматы и типы должны совпадать с исходными обучающими данными.

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

    Выход yfit содержит предсказание для каждой точки данных.

  2. Исследуйте поля экспортируемой структуры. Для предсказаний создания справки, введите:

    trainedModel.HowToPredict

Также можно извлечь объект модели из экспортируемой структуры для последующего анализа. Если вы используете преобразование функции, такое как PCA в приложении, необходимо учесть это преобразование при помощи информации в полях PCA структуры.

Сгенерируйте код MATLAB, чтобы обучить модель с новыми данными

После того, как вы создадите модели регрессии в интерактивном режиме в приложении Regression Learner, можно сгенерировать код MATLAB для лучшей модели. Затем можно использовать код, чтобы обучить модель с новыми данными.

Сгенерируйте код MATLAB к:

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

  • Создайте скрипты для учебных моделей, не будучи должен изучить синтаксис различных функций.

  • Исследуйте код, чтобы изучить, как обучить модели программно.

  • Измените код для последующего анализа, например, чтобы установить опции, которые вы не можете изменить в приложении.

  • Повторите свой анализ различных данных и автоматизируйте обучение.

Сгенерировать код и использовать его, чтобы обучить модель с новыми данными:

  1. В приложении, от панели Models, выбирают модель, для которой вы хотите сгенерировать код.

  2. На вкладке Regression Learner, в разделе Export, нажимают Generate Function.

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

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

    Скопируйте первую строку сгенерированного кода, исключая слово function, и отредактируйте trainingData входной параметр, чтобы отразить имя переменной ваших обучающих данных или новых данных. Точно так же отредактируйте responseData входной параметр (если применимо).

    Например, чтобы переобучить модель регрессии, обученную с cartable набор данных, введите:

    [trainedModel,validationRMSE] = trainRegressionModel(cartable)

    Сгенерированный код возвращает trainedModel структура, которая содержит те же поля как структура, которую вы создаете, когда вы экспортируете модель от Regression Learner до рабочей области.

Если вы хотите автоматизировать обучение та же модель с новыми данными или изучить, как программно обучить модели, исследовать сгенерированный код. Код показывает вам как:

  • Обработайте данные в правильную форму.

  • Обучите модель и задайте все опции модели.

  • Выполните перекрестную проверку.

  • Вычислите статистику.

  • Вычислите предсказания валидации и баллы.

Примечание

Если вы генерируете код MATLAB из обученной optimizable модели, сгенерированный код не включает процесс оптимизации.

Сгенерируйте код С для предсказания

Если вы обучаете одну из моделей в этой таблице с помощью Regression Learner, можно сгенерировать код С для предсказания.

Тип моделиЛежание в основе объекта модели
Линейная регрессияLinearModel или CompactLinearModel
Дерево решенийRegressionTree или CompactRegressionTree
Машина опорных векторовRegressionSVM или CompactRegressionSVM
Гауссова регрессия процессаRegressionGP или CompactRegressionGP
АнсамбльRegressionEnsemble, CompactRegressionEnsemble, или RegressionBaggedEnsemble

Генерация кода C требует:

  • Лицензия MATLAB Coder™

  • Соответствующая модель

  1. Например, обучите древовидную модель в Regression Learner, и затем экспортируйте модель в рабочую область.

    Найдите базовый объект модели регрессии в экспортируемой структуре. Исследуйте поля структуры, чтобы найти объект модели, например, S.RegressionTree, где S имя вашей структуры.

    Базовый объект модели зависит от того, экспортировали ли вы компактную модель. Объектом модели может быть RegressionTree или CompactRegressionTree объект.

  2. Используйте функцию saveLearnerForCoder подготовить модель к генерации кода: saveLearnerForCoder(Mdl,filename). Например:

    saveLearnerForCoder(S.RegressionTree,'myTree')

  3. Создайте функцию, которая загружает сохраненную модель и делает предсказания на новых данных. Например:

    function yfit = predictY (X) %#codegen
    %PREDICTY Predict responses using tree model
    %  PREDICTY uses the measurements in X 
    %  and the tree model in the file myTree.mat, and then 
    %  returns predicted responses in yfit.
    
    CompactMdl = loadLearnerForCoder('myTree'); 
    yfit = predict(CompactMdl,X);
    end
  4. Сгенерируйте MEX-функцию от своей функции. Например:

    codegen predictY.m -args {data}
    %#codegen директива компиляции указывает, что код MATLAB предназначается для генерации кода. Чтобы гарантировать, что MEX-функция может использовать тот же вход, задайте данные в рабочей области в качестве аргументов к функции с помощью -args опция. Задайте data когда матрица, содержащая только столбцы предиктора раньше, обучала модель.

  5. Используйте MEX-функцию, чтобы сделать предсказания. Например:

    yfit = predictY_mex(data);

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

Если вы использовали PCA в приложении, используйте информацию в полях PCA экспортируемой структуры, чтобы принять во внимание это преобразование. Не имеет значения, импортировали ли вы таблицу или матрицу в приложение, настолько же долго как X содержит столбцы матрицы в том же порядке. Прежде, чем сгенерировать код, выполните эти шаги:

  1. Сохраните поля PCACenters и PCACoefficients обученной структуры регрессии, S, к файлу используя следующую команду:

    save('pcaInfo.mat','-struct','S','PCACenters','PCACoefficients');

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

    function yfit = predictY (X) %#codegen
    %PREDICTY Predict responses using tree model
    %  PREDICTY uses the measurements in X 
    %  and the tree model in the file myTree.mat, 
    %  and then returns predicted responses in yfit.
    % If you used manual feature selection in the app, ensure that X
    % contains only the columns you included in the model.
    
    CompactMdl = loadLearnerForCoder('myTree'); 
    pcaInfo = coder.load('pcaInfo.mat','PCACenters','PCACoefficients');
    PCACenters = pcaInfo.PCACenters;
    PCACoefficients = pcaInfo.PCACoefficients;
    
    % Performs PCA transformation 
    pcaTransformedX = bsxfun(@minus,X,PCACenters)*PCACoefficients;
    
    yfit = predict(CompactMdl,pcaTransformedX);
    end

Для получения дополнительной информации о рабочем процессе генерации кода C и ограничениях, смотрите Генерацию кода. Для примеров смотрите saveLearnerForCoder и loadLearnerForCoder.

Разверните предсказания Используя MATLAB Compiler

После того, как вы экспортируете модель в рабочую область от Regression Learner, можно развернуть его с помощью MATLAB Compiler™.

Предположим, что вы экспортируете обученную модель в рабочее пространство MATLAB на основе инструкций в Модели Экспорта к Рабочей области с именем trainedModel. Чтобы развернуть предсказания, выполните эти шаги.

  • Сохраните trainedModel структура в .mat файле.

    save mymodel trainedModel
  • Запишите код, который будет скомпилирован. Этот код должен загрузить обученную модель и использовать ее, чтобы сделать предсказание. Это должно также иметь прагму, таким образом, компилятор распознает, что код Statistics and Machine Learning Toolbox™ необходим в скомпилированном приложении. Эта прагма может быть любой учебной функцией модели, используемой в Regression Learner (например, fitrtree).

    function ypred = mypredict(tbl)
    %#function fitrtree
    load('mymodel.mat');
    ypred = trainedModel.predictFcn(tbl);
    end
  • Скомпилируйте как автономное приложение.

    mcc -m mypredict.m
    

Модель экспорта для развертывания на MATLAB Production Server

После того, как вы обучаете модель в Regression Learner, можно экспортировать модель для развертывания на MATLAB Production Server™ (требует MATLAB Compiler SDK™).

  • Выберите обученную модель в панели Models. На вкладке Regression Learner, в разделе Export, нажимают Export Model и выбирают Export Model for Deployment.

  • В диалоговом окне Select Project File for Model Deployment выберите местоположение и имя для вашего файла проекта.

  • В автоматически сгенерированном predictFunction.m файл, смотрите и исправьте код по мере необходимости.

  • Используйте приложение Production Server Compiler, чтобы группировать вашу функцию модели и предсказания. Можно симулировать развертывание модели на MATLAB Production Server путем нажатия кнопки Test Client в разделе Test вкладки Compiler, и затем группировать код путем нажатия кнопки Package в разделе Package.

Для примера смотрите, Развертывают Модель, Обученную в Regression Learner к MATLAB Production Server. Для получения дополнительной информации смотрите, Создают Развертываемый Архив для MATLAB Production Server (MATLAB Production Server).

Смотрите также

Функции

Классы

Похожие темы