resubLoss

Регрессионная потеря реституции

    Описание

    пример

    L = resubLoss(Mdl) возвращает регрессионные потери путем реподституции (L) или регрессионые потери в выборке для обученной регрессионой модели Mdl использование обучающих данных, хранящихся в Mdl.X и соответствующие ответы, сохраненные в Mdl.Y.

    Толкование L зависит от функции потерь ('LossFun') и схемы взвешивания (Mdl.W). В целом лучшие модели дают меньшие значения потерь. Значение по умолчанию 'LossFun' значение 'mse' (средняя квадратичная невязка).

    пример

    L = resubLoss(Mdl,Name,Value) задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера, 'IncludeInteractions',false задает, чтобы исключить условия взаимодействия из обобщенной аддитивной модели Mdl.

    Примеры

    свернуть все

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

    Загрузите 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
              NumObservations: 100
    
    
      Properties, Methods
    
    

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

    Вычислите потери на реституцию, используя среднюю квадратичную невязку (MSE).

    L = resubLoss(Mdl)
    L = 4.1957
    

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

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

    load carbig

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

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

    Разделите набор данных на два набора: один, содержащий обучающие данные, и другой, содержащий новые, незащищенные тестовые данные. Резервируйте 10 наблюдений для нового набора тестовых данных.

    rng('default') % For reproducibility
    n = size(X,1);
    newInds = randsample(n,10);
    inds = ~ismember(1:n,newInds);
    XNew = X(newInds,:);
    YNew = Y(newInds);

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

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

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

    Вычислите MSE реституции (то есть MSE в выборке) как с терминами взаимодействия, так и без Mdl. Чтобы исключить условия взаимодействия, задайте 'IncludeInteractions',false.

    resubl = resubLoss(Mdl)
    resubl = 0.0292
    
    resubl_nointeraction = resubLoss(Mdl,'IncludeInteractions',false)
    resubl_nointeraction = 4.7330
    

    Вычислите MSE регрессии как с терминами взаимодействия, так и без для набора тестовых данных. Используйте объект модели, эффективный для памяти, для расчетов.

    CMdl = compact(Mdl);

    CMdl является CompactRegressionGAM объект модели.

    l = loss(CMdl,XNew,YNew)
    l = 12.8604
    
    l_nointeraction = loss(CMdl,XNew,YNew,'IncludeInteractions',false)
    l_nointeraction = 15.6741
    

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

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

    свернуть все

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

    МодельОбъект модели
    Обобщенная аддитивная модельRegressionGAM
    Модель нейронной сетиRegressionNeuralNetwork

    Аргументы в виде пар имя-значение

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

    Пример: resubLoss(Mdl,'IncludeInteractions',false) исключает условия взаимодействия из обобщенной аддитивной модели Mdl.

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

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

    Пример: 'IncludeInteractions',false

    Типы данных: logical

    Функция потерь, заданная как 'mse' или указатель на функцию.

    • 'mse' - Средневзвешенная квадратичная невязка.

    • Указатель на функцию - Чтобы задать пользовательскую функцию потерь, используйте указатель на функцию. Функция должна иметь следующую форму:

      lossval = lossfun(Y,YFit,W)

      • Выходной аргумент lossval является скаляром с плавающей точкой.

      • Вы задаете имя функции (lossfun).

      • Y - это линейный n численный вектор наблюдаемых откликов, где n - количество наблюдений в Tbl или X.

      • YFit является длинным n числовым вектором соответствующих предсказанных откликов.

      • W является n -by-1 числовым вектором весов наблюдений.

    Пример: 'LossFun', @ lossfun

    Типы данных: char | string | function_handle

    Подробнее о

    свернуть все

    Средневзвешенная квадратичная невязка

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

    Средневзвешенная квадратичная невязка вычисляется следующим образом:

    mse=j=1nwj(f(xj)yj)2j=1nwj,

    где:

    • n - количество строк данных.

    • xj - j строка данных.

    • yj - это истинная реакция на xj.

    • f (xj) является предсказанием отклика модели Mdl к xj.

    • w - вектор весов наблюдений.

    Алгоритмы

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

    МодельОбъект модели (Mdl)loss Функция объекта
    Обобщенная аддитивная модельRegressionGAMloss
    Модель нейронной сетиRegressionNeuralNetworkloss

    См. также

    Введенный в R2021a