resubPredict

Предскажите ответы для обучающих данных с помощью обученной модели регрессии

    Описание

    пример

    yFit = resubPredict(Mdl) возвращает вектор из предсказанных ответов для обученной модели Mdl регрессии использование данных о предикторе сохранено в Mdl.X.

    пример

    yFit = resubPredict(Mdl,Name,Value) задает опции с помощью одних или нескольких аргументов name-value. Например, 'IncludeInteractions',true задает, чтобы включать периоды взаимодействия в расчеты для обобщенных аддитивных моделей. Этот синтаксис применяется только к обобщенным аддитивным моделям и Гауссовым моделям регрессии процесса.

    [yFit,ySD,yInt] = resubPredict(___) также возвращает стандартные отклонения и интервалы предсказания переменной отклика, оцененной при каждом наблюдении в данных о предикторе Mdl.X, использование любой из комбинаций входных аргументов в предыдущих синтаксисах. Этот синтаксис применяется только к обобщенным аддитивным моделям для который IsStandardDeviationFit true, и к Гауссовым моделям регрессии процесса, для который PredictMethod не 'bcd'.

    Примеры

    свернуть все

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

    Загрузите patients набор данных.

    load patients

    Составьте таблицу, которая содержит переменные предикторы (Age, Diastolic, Smoker, Weight, Gender, SelfAssessedHealthStatus) и переменная отклика (Systolic).

    tbl = table(Age,Diastolic,Smoker,Weight,Gender,SelfAssessedHealthStatus,Systolic);

    Обучите одномерный GAM, который содержит линейные члены для предикторов в tbl.

    Mdl = fitrgam(tbl,"Systolic")
    Mdl = 
      RegressionGAM
                PredictorNames: {1x6 cell}
                  ResponseName: 'Systolic'
         CategoricalPredictors: [3 5 6]
             ResponseTransform: 'none'
                     Intercept: 122.7800
        IsStandardDeviationFit: 0
               NumObservations: 100
    
    
      Properties, Methods
    
    

    Mdl RegressionGAM объект модели.

    Предскажите ответы для набора обучающих данных.

    yFit = resubPredict(Mdl);

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

    t = table(tbl.Systolic,yFit, ...
        'VariableNames',{'Observed Value','Predicted Value'});
    head(t)
    ans=8×2 table
        Observed Value    Predicted Value
        ______________    _______________
    
             124              124.75     
             109              109.48     
             125              122.89     
             117              115.87     
             122              121.61     
             121              122.02     
             130              126.39     
             115              115.95     
    
    

    Обучите модель Gaussian process regression (GPR) при помощи fitrgp функция. Затем предскажите ответы для обучающих данных и оцените интервалы предсказания ответов при каждом наблюдении в обучающих данных при помощи resubPredict функция.

    Сгенерируйте обучающий набор данных.

    rng(1) % For reproducibility
    n = 100000;
    X = linspace(0,1,n)';
    X = [X,X.^2];
    y = 1 + X*[1;2] + sin(20*X*[1;-2]) + 0.2*randn(n,1);

    Обучите модель GPR с помощью экспоненциальной функции ядра в квадрате. Оцените параметры при помощи подмножества регрессоров ('sr') метод приближения, и делает предсказания с помощью подмножества данных ('sd') метод. Используйте 50 точек в активном наборе и задайте 'sgma' (разреженное жадное матричное приближение) метод для активного выбора набора. Поскольку шкалы первых и вторых предикторов отличаются, стандартизируют набор данных.

    gprMdl = fitrgp(X,y,'KernelFunction','squaredExponential', ...
        'FitMethod','sr','PredictMethod','sd', ...
        'ActiveSetSize',50,'ActiveSetMethod','sgma','Standardize',true);

    fitrgp принимает любую комбинацию подбора кривой, предсказания и активных методов выбора набора. Однако, если вы обучаете модель с помощью метода предсказания спуска координаты блока ('PredictMethod','bcd'), вы не можете использовать модель, чтобы вычислить стандартные отклонения предсказанных ответов; поэтому, вы также не можете использовать модель, чтобы вычислить интервалы предсказания. Для получения дополнительной информации смотрите Советы.

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

    [ypred,~,yci] = resubPredict(gprMdl);

    Постройте истинные ответы, предсказанные ответы и интервалы предсказания.

    figure
    plot(y,'r')
    hold on
    plot(ypred,'b')
    plot(yci(:,1),'k--')
    plot(yci(:,2),'k--')
    legend('True responses','GPR predictions','95% prediction limits','Location','Best')
    xlabel('X')
    ylabel('y')
    hold off

    Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent True responses, GPR predictions, 95% prediction limits.

    Вычислите потерю среднеквадратической ошибки на обучающих данных с помощью обученной модели GPR.

    L = resubLoss(gprMdl)
    L = 0.0523
    

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

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

    load carbig

    Задайте Acceleration, Displacement, Horsepower, и Weight как переменные предикторы (X) и MPG как переменная отклика (Y).

    X = [Acceleration,Displacement,Horsepower,Weight];
    Y = MPG;

    Обучите обобщенную аддитивную модель, которая содержит все доступные линейные члены и периоды взаимодействия в X.

    Mdl = fitrgam(X,Y,'Interactions','all');

    Mdl RegressionGAM объект модели.

    Предскажите ответы, использующие и линейные термины и периоды взаимодействия, и затем использующие только линейные члены. Чтобы исключить периоды взаимодействия, задайте 'IncludeInteractions',false.

    yFit = resubPredict(Mdl);
    yFit_nointeraction = resubPredict(Mdl,'IncludeInteractions',false);

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

    t = table(Mdl.Y,yFit,yFit_nointeraction, ...
        'VariableNames',{'Observed Response', ...
        'Predicted Response','Predicted Response Without Interactions'});
    head(t)
    ans=8×3 table
        Observed Response    Predicted Response    Predicted Response Without Interactions
        _________________    __________________    _______________________________________
    
               18                  18.026                           17.22                 
               15                  15.003                          15.791                 
               18                  17.663                           16.18                 
               16                  16.178                          15.536                 
               17                  17.107                          17.361                 
               15                  14.943                          14.424                 
               14                  14.119                          14.981                 
               14                  13.864                          13.498                 
    
    

    Входные параметры

    свернуть все

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

    МодельОбъект модели регрессии
    Гауссова модель регрессии процессаRegressionGP
    Обобщенная аддитивная модель (GAM)RegressionGAM
    Модель нейронной сетиRegressionNeuralNetwork

    Аргументы name-value

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: 'Alpha',0.01,'IncludeInteractions',false задает доверительный уровень как 99% и исключает периоды взаимодействия из расчетов для обобщенной аддитивной модели.

    Уровень значения для доверительного уровня интервалов предсказания yIntВ виде числового скаляра в области значений [0,1]. Доверительный уровень yInt равно   100(1 – Alpha)%.

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

    Пример: 'Alpha',0.01

    Типы данных: single | double

    Отметьте, чтобы включать периоды взаимодействия модели в виде true или false. Этот аргумент допустим только для обобщенной аддитивной модели. Таким образом, можно задать этот аргумент только когда Mdl RegressionGAM.

    Значением по умолчанию является true если Mdl содержит периоды взаимодействия. Значением должен быть false если модель не содержит периоды взаимодействия.

    Типы данных: логический

    Выходные аргументы

    свернуть все

    Предсказанные ответы, возвращенные как вектор из длины n, где n является количеством наблюдений в данных о предикторе (Mdl.X).

    Стандартные отклонения переменной отклика, оцененной при каждом наблюдении в данных о предикторе MdlX, возвращенный как вектор-столбец длины n, где n является количеством наблюдений в MdlX. iэлемент th ySD(i) содержит стандартное отклонение iответ th для iнаблюдение th Mdl.X(i,:), предполагаемое использование обученной модели стандартного отклонения в Mdl.

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

    Интервалы предсказания переменной отклика, оцененной при каждом наблюдении в данных о предикторе MdlX, возвращенный как n-by-2 матрица, где n является количеством наблюдений в MdlX. iстрока th yInt(i,:) содержит 100 (1 – Alpha)% интервал предсказания iответ th для iнаблюдение th Mdl.X(i,:). Alpha значение является вероятностью, что интервал предсказания не содержит истинное значение отклика Mdl.Y(i). Первый столбец yInt содержит нижние пределы интервалов предсказания, и второй столбец содержит верхние пределы.

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

    Алгоритмы

    resubPredict предсказывает ответы согласно соответствию predict функция объекта (Mdl). Для описания модели специфичного смотрите predict страницы ссылки на функцию в следующей таблице.

    МодельОбъект модели регрессии (Mdl)predict Объектная функция
    Гауссова модель регрессии процессаRegressionGPpredict
    Обобщенная аддитивная модельRegressionGAMpredict
    Модель нейронной сетиRegressionNeuralNetworkpredict

    Альтернативная функциональность

    Чтобы вычислить предсказанные ответы для новых данных о предикторе, используйте соответствие predict функция объекта (Mdl).

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

    Введенный в R2021a