exponenta event banner

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-на-1 числовым вектором весов наблюдения.

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

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

    Подробнее

    свернуть все

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

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

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

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

    где:

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

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

    • yj - истинный ответ на xj.

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

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

    Алгоритмы

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

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

    См. также

    Представлен в R2021a