Предскажите, что ответы Используя RegressionTree предсказывают блок

В этом примере показано, как использовать блок RegressionTree Predict для предсказания ответа в Simulink®. Блок принимает наблюдение (данные о предикторе) и возвращает предсказанный ответ для наблюдения с помощью обученной модели дерева регрессии.

Обучите модель регрессии

Загрузите carbig набор данных, который содержит измерения автомобилей, сделанных в 1970-х и в начале 1980-х. Создайте матрицу, содержащую переменные предикторы и вектор из переменной отклика.

load carbig
X = [Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight];
Y = MPG;

Обучите модель дерева регрессии.

treeMdl = fitrtree(X,Y);

treeMdl RegressionTree модель.

Создайте модель Simulink

Этот пример предоставляет модели Simulink slexCarDataRegressionTreePredictExample.slx, который включает блок RegressionTree Predict. Можно открыть модель 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 и добавьте блок RegressionTree Predict. Добавьте блоки Inport и Outport и соедините их с блоком RegressionTree Predict.

Дважды кликните блок RegressionTree Predict, чтобы открыть диалоговое окно Block Parameters. Можно задать имя переменной рабочей области, которая содержит обученную древовидную модель. Именем переменной по умолчанию является treeMdl. Нажмите Кнопку Обновить. Диалоговое окно отображается, опции раньше обучали древовидную модель treeMdl в соответствии с обученной моделью машинного обучения.

Блок RegressionTree Predict ожидает наблюдение, содержащее 6 значений предиктора. Дважды кликните блок Inport и установите размерности Порта на 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);

Импортировать данные сигнала из рабочей области:

  • Откройте диалоговое окно Configuration Parameters. На вкладке Modeling нажмите Model Settings.

  • В панели Импорта/Экспорта Данных установите флажок Input и введите carsmallInput в смежном текстовом поле.

  • В панели Решателя, под Временем симуляции, Временем остановки набора к carsmallInput.time(end). При выборе Решателя, Типе набора к Fixed-step, и Решатель набора к discrete (no continuous states).

Для получения дополнительной информации смотрите Данные сигнала Загрузки для Симуляции (Simulink).

Симулируйте модель.

sim(SimMdlName);

Когда блок Inport обнаруживает наблюдение, он направляет наблюдение в блок RegressionTree Predict. Можно использовать Инспектора Данных моделирования (Simulink), чтобы просмотреть записанные данные блока Outport.

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

Похожие темы