В этом примере показано, как использовать блок прогнозирования RegingTree для прогнозирования ответа в Simulink ®. Блок принимает наблюдение (данные предиктора) и возвращает предсказанный отклик для наблюдения с использованием обученной модели регрессионного дерева .
Загрузить carbig набор данных, содержащий замеры автомобилей, сделанные в 1970-х и начале 1980-х годов. Создайте матрицу, содержащую переменные предиктора и вектор переменной отклика.
load carbig
X = [Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight];
Y = MPG;Обучение модели регрессионного дерева.
treeMdl = fitrtree(X,Y);
treeMdl является RegressionTree модель.
В этом примере представлена модель Simulink slexCarDataRegressionTreePredictExample.slx, который включает в себя блок прогнозирования RegingTree. Можно открыть модель Simulink или создать новую модель, как описано в этом разделе.
Открытие модели Simulink slexCarDataRegressionTreePredictExample.slx.
SimMdlName = 'slexCarDataRegressionTreePredictExample';
open_system(SimMdlName)
PreLoadFcn функция обратного вызова slexCarDataRegressionTreePredictExample включает код для загрузки данных образца, обучения древовидной модели и создания входного сигнала для модели Simulink. При открытии модели Simulink программа запускает код в PreLoadFcn перед загрузкой модели Simulink. Чтобы просмотреть функцию обратного вызова, в разделе Настройка (Setup) на вкладке Моделирование (Modeling) щелкните Параметры модели (Model Settings) и выберите Свойства модели (Model Properties). Затем на вкладке Callbacks выберите PreLoadFcn функция обратного вызова на панели Обратные вызовы модели.
Чтобы создать новую модель Simulink, откройте шаблон Пустой модели (Blank Model) и добавьте блок Прогнозировать дерево (RegingTree Predict). Добавьте блоки Inport и Outport и подключите их к блоку RegingTree Predict.
Чтобы открыть диалоговое окно «Параметры блока», дважды щелкните блок «Прогнозирование дерева». Можно указать имя переменной рабочей области, содержащей обученную древовидную модель. Имя переменной по умолчанию: treeMdl. "Нажмите кнопку ""Обновить""". В диалоговом окне отображаются опции, используемые для обучения модели дерева. treeMdl в разделе Обучаемая модель машинного обучения.

Блок прогнозирования дерева RegingTree ожидает наблюдения, содержащего 6 предикторных значений. Дважды щелкните блок «Inport» и установите для параметра «Port dimensions» значение 6 на вкладке «Signal Attributes».
Создайте входной сигнал в виде массива структуры для модели Simulink. Структурный массив должен содержать следующие поля:
time - моменты времени, в которые наблюдения входят в модель. Ориентация должна соответствовать наблюдениям в данных предиктора. Так, в этом примере, time должен быть вектором столбца.
signals - Структурный массив 1 к 1, описывающий входные данные и содержащий поля values и dimensions, где values является матрицей данных предиктора, и dimensions - количество переменных предиктора.
Создайте соответствующий структурный массив для slexCarDataRegressionTreePredictExample модель из carsmall набор данных.
load carsmall
testX = [Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight];
testX = rmmissing(testX);
carsmallInput.time = (0:size(testX,1)-1)';
carsmallInput.signals(1).values = testX;
carsmallInput.signals(1).dimensions = size(testX,2);Чтобы импортировать данные сигнала из рабочей области:
Откройте диалоговое окно «Параметры конфигурации». На вкладке Моделирование (Modeling) щелкните Параметры модели (Model Settings).
На панели Импорт/экспорт данных установите флажок Ввод и введите carsmallInput в соседнем текстовом поле.
На панели Решатель (Solver) в разделе Время моделирования (Simulation time) задайте для параметра Время остановки (Stop time) значение carsmallInput.time(end). В разделе Выбор решателя (Solver selection) задайте для параметра Тип (Type) значение Fixed-stepи установите для решателя значение discrete (no continuous states).
Дополнительные сведения см. в разделе Загрузка данных сигналов для моделирования (Simulink).
Моделирование модели.
sim(SimMdlName);
Когда блок Inport обнаруживает наблюдение, он направляет его в блок прогнозирования RegingTree. Инспектор данных моделирования (Simulation Data Inspector, Simulink) можно использовать для просмотра зарегистрированных данных блока исходящего трафика.
Прогнозирование дерева RegingedTree