exponenta event banner

RegressionPartitionedModel

Пакет: classreg.learning.partition

Модель перекрестной регрессии

Описание

RegressionPartitionedModel представляет собой набор регрессионных моделей, обученных на перекрестно проверенных складках. Оцените качество регрессии путем перекрестной проверки с использованием одного или нескольких методов «kfold»: kfoldPredict, kfoldLoss, и kfoldfun. Каждый метод «kfold» использует модели, обученные на кратных наблюдениях, для прогнозирования ответа на внеплановые наблюдения. Например, предположим, что выполняется перекрестная проверка с использованием пяти сгибов. В этом случае каждая тренировочная складка содержит примерно 4/5 данных, а каждая тестовая складка содержит примерно 1/5 данных. Первая модель, сохраненная в Trained{1} был обучен X и Y с исключением первой 1/5, вторая модель хранится в Trained{2} был обучен X и Y с исключением второй 1/5 и так далее. При звонке kfoldPredict, он вычисляет прогнозы для первой 1/5 данных с использованием первой модели, для второй 1/5 данных с использованием второй модели и так далее. Короче говоря, ответ для каждого наблюдения вычисляется kfoldPredict использование модели, обученной без этого наблюдения.

Строительство

CVMdl = crossval(Mdl) создает перекрестно проверенную регрессионную модель из регрессионной модели (Mdl).

В качестве альтернативы:

  • CVNetMdl = fitrnet(X,Y,Name,Value)

  • CVTreeMdl = fitrtree(X,Y,Name,Value)

создать модель с перекрестной проверкой при Name является либо 'CrossVal', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition'. Дополнительные сведения о синтаксисе см. в разделе fitrnet и fitrtree.

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

Mdl

Регрессионная модель, заданная как одна из следующих:

  • Модель регрессии нейронной сети, обученная с использованием fitrnet

  • Дерево регрессии, обученное использованию fitrtree

Свойства

BinEdges

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

Программа содержит числовые предикторы только при указании 'NumBins' аргумент «имя-значение» в качестве положительного целого скаляра при обучении модели с учащимися дерева. BinEdges пустое свойство, если 'NumBins' пустое значение (по умолчанию).

Можно воспроизвести привязанные данные предиктора Xbinned с помощью BinEdges свойство обучаемой модели mdl.

X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x) 
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]); 
    Xbinned(:,j) = xbinned;
end
Xbinned содержит индексы ячеек в диапазоне от 1 до числа ячеек для числовых предикторов. Xbinned значения равны 0 для категориальных предикторов. Если X содержит NaNs, затем соответствующее Xbinned значения NaNs.

CategoricalPredictors

Индексы категориального предиктора, указанные как вектор положительных целых чисел. Предполагая, что данные предиктора содержат наблюдения в строках, CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не категоричен, то это свойство пустое ([]).

CrossValidatedModel

Имя перекрестно проверенной модели, символьный вектор.

Kfold

Количество складок, используемых в модели с перекрестной проверкой, положительное целое число.

ModelParameters

Параметры хранения объекта Mdl.

NumObservations

Количество наблюдений в данных обучения, хранящихся в X и Y, указывается как числовой скаляр.

Partition

Раздел класса cvpartition используется в модели с перекрестной проверкой.

PredictorNames

Массив ячеек имен для переменных предиктора в порядке их появления в X.

ResponseName

Имя переменной ответа Y, вектор символов.

ResponseTransform

Дескриптор функции для преобразования необработанных значений отклика (среднеквадратичная ошибка). Дескриптор функции должен принимать матрицу значений отклика и возвращать матрицу того же размера. Вектор символов по умолчанию 'none' средства @(x)x, или нет трансформации.

Добавить или изменить ResponseTransform функция, использующая точечную нотацию:

CVMdl.ResponseTransform = @function

Trained

Обученные ученики, клеточный массив моделей компактной регрессии.

W

Чешуйчатое weights, вектор с длиной n, количество наблюдений в X.

X

Матрица или таблица предикторных значений.

Y

Вектор числового столбца. Каждая запись в Y - значение ответа соответствующего наблюдения в X.

Функции объекта

kfoldLossПотеря для перекрестно проверенной секционированной регрессионной модели
kfoldPredictПрогнозирование ответов для наблюдений в модели перекрестной регрессии
kfoldfunФункция перекрестной проверки для регрессии

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Загрузите образцы данных. Создание переменной X содержащий Horsepower и Weight данные.

load carsmall
X = [Horsepower Weight];

Создайте дерево регрессии с использованием данных образца.

cvtree = fitrtree(X,MPG,'crossval','on');

Оценка ошибки перекрестной проверки carsmall данные с использованием Horsepower и Weight в качестве прогнозирующих переменных для пробега (MPG).

L = kfoldLoss(cvtree)
L = 25.5338